我有一个名为proj1
的CMake项目,我想将该项目用作另一个项目proj2
中的外部项目。现在,proj1
的{{1}}中的(相关)命令是:
CMakeLists.txt
,我想在install(
TARGETS proj1
ARCHIVE
DESTINATION lib
EXPORT proj1_library
INCLUDES DESTINATION include
CONFIGURATIONS Release RelWithDebugInfo
)
中使用此静态库,而无需明确地“猜测”它的安装位置为proj2
。我希望能够从proj1
(使用proj1
获得该目标)中,然后在ExternalProject
命令中直接或间接使用它。
我该怎么做?而且-我是否只需要对add_target_libraries()
或proj2
的{{1}}进行更改?
答案 0 :(得分:0)
导出目标是正确的方法。
为此,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