【问题标题】:CMake and Config/Modules find_packageCMake 和配置/模块 find_package
【发布时间】:2014-07-21 18:48:22
【问题描述】:

我正在开发一个库,现在尝试通过 cmake find_package 关键字使其可用。

使用配置模式可以正常工作。 我已将 cmake 生成的 CPackConfig.cmake 命名为 log++Config.cmake 放在我的 lib 的安装文件夹中,它可以在我的项目中找到。美好的。 但这种方法并不令人满意。我需要定义自己的变量,例如链接所需的 lib 依赖项和一些自定义宏,但没有找到将其嵌入到 CPackConfig.cmake 中的任何方法。

所以现在我尝试使用find_package的模块模式。我担心的是,我找不到任何方法让 cmake 使用我的 Findlog++.cmake 而不将它放在 cmake 安装文件夹中(这非常难看)。 我发现一些帖子告诉我把这个文件放在我的项目根目录中,但这几乎和修改 cmake 本身一样难看。

有没有办法让我的 Findlog++.cmake 文件位于我的 lib 文件夹中的某个位置,并让 cmake 在不设置 CMAKE_MODULE_PATH 变量的情况下找到它?

【问题讨论】:

    标签: c++ cmake


    【解决方案1】:

    您似乎对 CPack 和“配置文件包”感到困惑。首先,了解它们是分开的和不同的。然后阅读

    http://www.cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html#creating-packages

    http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html

    了解使用要求和包含宏等。

    【讨论】:

    • 也许我错过了重点,但这并不能回答我的问题。我正在寻找一种方法,在通过 find_package 调用配置时向我的 lib 的最终用户提供我自己的变量(例如 LIBLOGPP_LIBRARIES)和宏
    • 然后将 set(LIBLOGPP_LIBRARIES 不管什么) 添加到 log++Config.cmake。但是请阅读链接以了解为什么您可能不想这样做,因为您可以导出 IMPORTED 目标。
    猜你喜欢
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2019-12-20
    相关资源
    最近更新 更多