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
文件吗?或者至少举个例子?