UNITY_BUILD_MODE¶
在版本 3.18 中添加。
CMake 提供不同的算法用于选择哪些源文件被组合到一个bucket 中。选择由这个属性决定,其具有以下可接受的值
BATCH
在此模式中,CMake 确定哪些文件组合在一起。
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 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
。