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

Build 如何导出目标,然后通过ExternalProject在另一个项目中使用它?,build,cmake,buildconfiguration,external-project,Build,Cmake,Buildconfiguration,External Project,我有一个名为proj1的CMake项目,我想在另一个项目proj2中将其用作外部项目。现在,proj1的CMakeLists.txt中的(相关)命令是: install( TARGETS proj1 ARCHIVE DESTINATION lib EXPORT proj1_library INCLUDES DESTINATION include CONFIGURATIONS Release RelWithDebugInfo ) 我想在proj2中

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

install(
    TARGETS proj1
    ARCHIVE
    DESTINATION lib
    EXPORT proj1_library
    INCLUDES DESTINATION include
    CONFIGURATIONS Release RelWithDebugInfo
)
我想在
proj2
中使用这个静态库,而不需要明确地“猜测”它安装在
proj1
的位置。我希望能够从
proj1
(我使用
ExternalProject
获得该目标),然后在
add\u target\u libraries()
命令中直接或间接使用它


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

导出目标是正确的方法

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

我建议您阅读CMake文档的以下部分,它涵盖了不同的概念并提供了一个示例。看


[1] SDK:

谢谢,但是-在SO答案中,习惯上提供一个就地答案而不是链接。您能描述一下如何生成和使用这样一个
.cmake
文件吗?或者至少举个例子?