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
。