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
。