我想从一个具有附加属性“my_special_file”的项目中导出并安装库目标:
add_library(my_lib INTERFACE)
# my_file.json will be installed next to the exported .cmake target/package config files.
set_target_properties(my_lib PROPERTIES
my_filepath "relative/to/targets.cmake/my_file.json"
)
set_property(TARGET my_lib APPEND PROPERTY EXPORT_PROPERTIES "my_filepath ")
在这个消耗性的项目中我想写:
get_target_property(my_filepath my_lib my_filepath)
# my_filepath shall now be an absolute file path
或在生成器表达式中:
set(some_variable "$<TARGET_PROPERTY:my_lib,my_filepath>")
如何让CMake导出my_filepath,使其成为安装树下的绝对路径?我不希望我的包的用户连接路径。
1条答案
按热度按时间5anewei61#
事实证明,解决方案非常简单:
转义
${_IMPORT_PREFIX}
会导致CMake仅在阅读导出的.cmake目标文件时解释变量。