cmake使用find_package找不到已安装的组件(安装COMPONENT!= find_package COMPONENT?)

时间:2017-08-16 20:39:06

标签: cmake

我已经使用cmake 3.2近一年了,取得了很好的成功。

我正在尝试单独安装'headers'和'library'组件,然后使用find_package来要求每个组件。使用自定义目标安装工作正常。但是,为刚刚安装的软件包/组件添加COMPONENT关键字时,find_package失败。

    install(FILES
       include/sum.h
       ...
       include/sumvmtypes.h
       DESTINATION ${APP_INCLUDE_INSTALL_DIR}/sum
       COMPONENT headers
    )

    add_custom_target(install_headers
       COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=headers 
           -P "${CMAKE_BINARY_DIR}/cmake_install.cmake" )

我正在使用PackageConfigHelper为项目创建包配置文件,它一直运行正常。

configure_package_config_file(${PACKAGE_NAME}-config.cmake.in
   ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}-config.cmake
   INSTALL_DESTINATION ${CMAKE_INSTALL_DIR}/${PACKAGE_NAME}
   PATH_VARS NEOS_INCLUDE_INSTALL_DIR LIB_INSTALL_DIR INCLUDE_INSTALL_DIR APP_INCLUDE_INSTALL_DIR )

我将用于检查组件的宏添加到... cmake.in文件中。

check_required_components(neo_sumlib)

作为调试步骤,我确保< package> _FIND_COMPONENTS确实在cmake配置中包含'headers'。即使它可以毫无问题地找到< package> .cmake文件,但未设置< package> _< comp> _FOUND。

这是我的想法。 install命令的COMPONENTS与find_package命令的COMPONENTS不同。是 find_package 的COMPONENTS是否真的在寻找< package> _< component>库,而不是安装定义的组件?

感谢 杰里

0 个答案:

没有答案