0

我们在源代码中使用供应商代码作为第三方项目。该派对项目托管在不同的服务器上。

我们的应用程序需要包含来自第三方项目的头文件。到目前为止,应用程序cmake依赖于外部项目,直到外部项目安装完成,应用程序才会开始构建。

逻辑上,一旦第三方项目被下载并且头文件可用,应用程序就可以开始构建。为了达到同样的效果,我可以有一个取决于配置/下载的步骤

ExternalProject_Add_Step(CopyHeaderFileStep DEPENDS 配置)

但是,由于它只是一个步骤,而不是目标,因此我无法在我的应用程序 CMake 中指定 CopyHeaderFileStep 的依赖关系。

我仔细查看了 cmake 第三方文档,但没有任何帮助。这里有什么出路吗?

4

1 回答 1

1

但是,由于它只是一个步骤,而不是目标,因此我无法在我的应用程序 CMake 中指定 CopyHeaderFileStep 的依赖关系。

正是为了这个目的,有一个函数ExternalProject_Add_StepTargets可以为 ExternalProject 的步骤创建正常的 CMake 目标。从文档

ExternalProject_Add_StepTargets()函数为列出的步骤生成目标。每个创建的目标的名称将采用<name>-<step>.

例子:

# Create targets for steps
ExternalProject_Add_StepTargets(extProject # External project name
    CopyHeaderFileStep # List of steps, for which targets will be created
)

# Depend on these targets in outer code
add_dependencies(myApp extProject-CopyHeaderFileStep)
于 2018-09-17T13:13:17.990 回答