UNITY_BUILD_MODE

在版本 3.18 加入。

CMake 提供了不同的演算法來選擇哪些來源檔要群組到一個bucket(儲存桶)中。 選擇方式由此屬性決定,此屬性可接受以下值:

BATCH

在此模式下,CMake 會決定哪些檔案要群組在一起。UNITY_BUILD_BATCH_SIZE 屬性控制每個 unity 來源檔可以組合的來源檔數量上限。

使用範例

add_library(example_library
            source1.cxx
            source2.cxx
            source3.cxx
            source4.cxx)

set_target_properties(example_library PROPERTIES
                      UNITY_BUILD_MODE BATCH
                      UNITY_BUILD_BATCH_SIZE 2
                      )
GROUP

在此模式下,每個目標明確指定如何群組來源檔。 具有相同 UNITY_GROUP 值的每個來源檔將會群組在一起。 任何沒有此屬性的來源檔將會個別編譯。UNITY_BUILD_BATCH_SIZE 屬性在使用此模式時會被忽略。

使用範例

add_library(example_library
            source1.cxx
            source2.cxx
            source3.cxx
            source4.cxx)

set_target_properties(example_library PROPERTIES
                      UNITY_BUILD_MODE GROUP
                      )

set_source_files_properties(source1.cxx source2.cxx source3.cxx
                            PROPERTIES UNITY_GROUP "bucket1"
                            )
set_source_files_properties(source4.cxx
                            PROPERTIES UNITY_GROUP "bucket2"
                            )

如果沒有明確指定 UNITY_BUILD_MODE,CMake 將預設為 BATCH