UNITY_BUILD_RELOCATABLE¶
4.0 版本新增。
默认情况下,启用 UNITY_BUILD 时生成的 unity 文件使用绝对路径来引用原始源文件。这会导致 unity 文件根据源文件的位置产生不同的输出。
当此属性设置为 true 时,如果可能,生成的 unity 源文件中的 #include 行将尝试使用相对路径引用原始源文件,以标准化 unity 文件的输出。
unity 文件到原始源文件的路径遵循以下优先级:
如果源文件直接位于
CMAKE_BINARY_DIR或其下的子文件夹中,则使用相对于 unity 文件的路径。如果源文件直接位于
CMAKE_SOURCE_DIR或其下的子文件夹中,则使用相对于CMAKE_SOURCE_DIR的路径。源文件的绝对路径。
此目标属性不保证在不同环境中生成一致的 unity 文件,因为最终优先级是绝对路径。
用法示例
add_library(example_library
source1.cxx
source2.cxx
source3.cxx)
set_target_properties(example_library PROPERTIES
UNITY_BUILD True
UNITY_BUILD_RELOCATABLE TRUE)