UNITY_BUILD_RELOCATABLEΒΆ
Added in version 3.32.
By default, the unity file generated when UNITY_BUILD
is enabled
uses absolute paths to reference the original source files. This causes the
unity file to result in a different output depending on the location of the
source files.
When this property is set to true, the #include
lines inside the generated
unity source files will attempt to use relative paths to the original source
files if possible in order to standardize the output of the unity file.
The unity file's path to the original source file will use the following priority:
relative path to the generated unity file if the source file exists directly or in subfolder under the
CMAKE_BINARY_DIR
relative path to
CMAKE_SOURCE_DIR
if the source file exists directly or in subfolder under theCMAKE_SOURCE_DIR
absolute path to the source file.
This target property does not guarantee a consistent unity file across different environments as the final priority is an absolute path.
Example usage:
add_library(example_library
source1.cxx
source2.cxx
source3.cxx)
set_target_properties(example_library PROPERTIES
UNITY_BUILD True
UNITY_BUILD_RELOCATABLE TRUE)