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
。