UNITY_BUILD_MODE | |
---------------- | |
.. versionadded:: 3.18 | |
CMake provides different algorithms for selecting which sources are grouped | |
together into a *bucket*. Selection is decided by this property, | |
which has the following acceptable values: | |
``BATCH`` | |
When in this mode CMake determines which files are grouped together. | |
The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper limit on | |
how many sources can be combined per unity source file. | |
Example usage: | |
.. code-block:: cmake | |
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`` | |
When in this mode each target explicitly specifies how to group | |
source files. Each source file that has the same | |
:prop_sf:`UNITY_GROUP` value will be grouped together. Any sources | |
that don't have this property will be compiled individually. The | |
:prop_tgt:`UNITY_BUILD_BATCH_SIZE` property is ignored when using | |
this mode. | |
Example usage: | |
.. code-block:: cmake | |
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" | |
) | |
If no explicit :prop_tgt:`UNITY_BUILD_MODE` has been specified, CMake will | |
default to ``BATCH``. |