我正在使用cmake的PackageConfigHelpers'
configure_package_config_file(
Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION
....
PATH_VARS
my_paths
)
如果my_path
由多个路径组成,例如:
set(my_paths path1 path2)
配置文件最终只会以路径1为前缀,我最终会得到:
${PACKAGE_PREFIX_DIR}path1;path2.
导致path2无法定位。有没有办法解决这个问题,同时仍然使用PackageConfigHelpers
提供的功能?
答案 0 :(得分:0)
应将每条路径分配给自己的变量,并且应为PATH_VARS
选项强制使用这些变量:
set(path1_var <...> CACHE ...)
set(path2_var <...> CACHE ...)
configure_package_config_file(
"Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION
....
PATH_VARS
path1_var
path2_var
)
每个变量都应在Config.cmake.in
中用于特定类型的可交付成果。
来自configure_package_config_file的文档:
变量&lt; var1&gt;到&lt; varN&gt;作为PATH_VARS给出的是包含安装目的地的变量。对于它们中的每一个,宏将创建辅助变量PACKAGE_&lt; var ...&gt;。必须在FooConfig.cmake.in文件中使用这些辅助变量来设置安装位置。它们由CONFIGURE_PACKAGE_CONFIG_FILE()计算,因此它们始终相对于包的安装位置。