如何导出目标,然后通过ExternalProject在另一个项目中使用它?

时间:2018-08-02 22:32:09

标签: build cmake buildconfiguration external-project

我有一个名为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}}进行更改?

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