如何使用ExternalProjects单步构建CMake?

时间:2018-12-25 12:19:26

标签: cmake

我想要实现的是一步构建 具有依赖项的整个项目(例如Slicer)。当我 了解,在复杂的CMake项目中,通常的做法是通过以下方式进行构建:

1 $ cmake .. 

它将包括使用ExternalProject_add指定的所有直接依赖项,但是由于它们最初并未安装,因此将没有<DependencyName>Config.cmake文件,因此它将无法在以下位置正确配置主项目文件这次。

2 $ make 

此构建将仅构建依赖项。 构建主项目文件将失败,因为CMake无法执行findPackage(<DependencyName>)

3 $ cmake ..

由于已安装所有直接依赖项,因此CMake能够正确配置主项目文件,并...

4 $ make

...成功。

在我的组织中,我被告知,这就是CMake的工作方式,并且没有办法解决,除了肮脏的骇客,例如在主项目中缓存<DependencyName>Config.cmake或完全不使用ExternalProjects。但是我遇到了一个用于CMake的Artichoke库和一个Slicer项目,该项目使用该库一步一步地构建了至少二十个依赖关系,其中一些依赖关系深于一个层次。

我仍然不完全了解朝鲜蓟的工作原理-(朝鲜蓟的文档对我没有多大帮助),但至少它启发了我再次审视这个问题。

0 个答案:

没有答案