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。