首页 > 解决方案 > 如何导出目标,然后通过 ExternalProject 在另一个项目中使用它?

问题描述

我有一个名为 的 CMake 项目proj1,我想将其用作另一个项目中的外部项目proj2proj1现在, 's中的(相关)命令CMakeLists.txt是:

install(
    TARGETS proj1
    ARCHIVE
    DESTINATION lib
    EXPORT proj1_library
    INCLUDES DESTINATION include
    CONFIGURATIONS Release RelWithDebugInfo
)

我想在 中使用这个静态库proj2,而不是明确地“猜测”它的安装位置proj1。我希望能够从中获取此目标proj1(我使用 获取),然后在命令ExternalProject中直接或间接使用它。add_target_libraries()

我该怎么做?而且-我只需要对 's 进行更改proj2还是对proj1's进行更改CMakeLists.txt

标签: buildcmakebuildconfigurationexternal-project

解决方案


导出目标是正确的方法。

为了支持这一点,proj1必须proj1Config.cmake在其构建树和安装树中生成一个(以便可以将开发包proj1用作 SDK [1])

我建议您阅读 CMake 文档的以下部分,它涵盖了不同的概念并提供了一个示例。见https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages

[1] SDK:https ://en.wikipedia.org/wiki/Software_development_kit


推荐阅读