C++ 在CurrentProject中使用ExternalProject的目标
假设我有两个CMake项目——一个ExternalProject E和我当前的project p。E提供了两种与之交互的方式——它创建了一个C++ 在CurrentProject中使用ExternalProject的目标,c++,cmake,C++,Cmake,假设我有两个CMake项目——一个ExternalProject E和我当前的project p。E提供了两种与之交互的方式——它创建了一个pkg config文件和.CMake文件。我希望使用这两个选项中的任何一个来解决在P中使用E的问题 在p的构建中,我需要实现以下步骤: 构建E 安装E。此步骤将创建pkg配置文件(E.pc)或CMake导出的目标文件(ETargets.CMake) 使用P中的E.pc或ETargets.cmake来包含E的标题并链接E的库 我无法使用以下选项使生成正常工作
pkg config
文件和.CMake
文件。我希望使用这两个选项中的任何一个来解决在P中使用E的问题
在p的构建中,我需要实现以下步骤:
E.pc
)或CMake导出的目标文件(ETargets.CMake
)E.pc
或ETargets.cmake
来包含E的标题并链接E的库include(ETargets.cmake)
在P的CMakeLists.txt中。这不起作用,因为etarget.cmake
在配置时不存在add_custom_命令
和add_custom_目标
处理生成文件的详细路径。这可能/可能不起作用,但无论如何它都会在我的构建中引入大量的锅炉板.cmake
或.pc
文件(详细信息见答案)这两种解决方案都将一些工作外包给CMake build之外,因此并不令人满意。我假设您考虑过使用
ExternalProject\u Add
?ExternalProject_Add(E)在构建时构建项目E。所以,.cmake和.pc文件不能用于配置P(我尝试过的选项中的第1点),所以您需要在配置项目时构建并安装E项目。为此,您可以使用普通的execute\u进程
。或者,您可以通过项目A中的add_子目录
使用项目E。