如何解决cmake configure_package_config_file没有正确添加PATH_VARS
我有两个位于同一catkin工作区下的软件包
我有A包和B包,其中B需要获取A的包含文件和库文件。
在A的var o365Subnet = JsonConvert.DeserializeObject<ConvertJson>(o365Latest);
var o365Final = o365Subnet.latest;
TableOperation tableOperation = TableOperation.InsertOrMerge(o365Subnet.latest);
中,我有
CMakeLists.txt
并按照以下说明定义set(TEST_VAR "TEST")
configure_package_config_file(
fooConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/fooConfig.cmake
INSTALL_DESTINATION ...
PATH_VARS
TEST_VAR)
fooConfig.cmake.in
通过上述代码,我应该能够使用B中的set(foo_VERSION 0.0.1)
@PACKAGE_INIT@
set_and_check(foo_TEST "@PACKAGE_TEST_VAR@")
check_required_components(foo)
个关键字
find_package
在我期望的情况下,
find_package(foo REQUIRED)
不能为空(自动填写),并且
foo_LIBRARIES
不能为空,因为我是通过foo_TEST
提供的
但是我看到了以下结果
PATH_VARS
要更深入地了解行为,我直接将${foo_FOUND} - TRUE
${foo_TEST} - EMPTY !!!
${foo_INCLUDE_DIRS} - .../build/foo/usr/include
${foo_LIBRARIES} - EMPTY !!!
添加到生成的message
中并打印出fooConfig.cmake
变量。但是,我注意到它是空的。
总结一下,我想了解
- 为什么
foo_TEST
设置不正确 - 在B的CMakeLists.txt中是否
${foo_LIBRARIES}
为空。 - 为什么
${foo_TEST}
内${foo_TEST}
不可用
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。