我们在源代码中将供应商代码用作第三方项目。这个聚会项目托管在不同的服务器上。
我们的应用程序需要包含第三方项目的头文件。到目前为止,应用程序cmake依赖于外部项目,直到完成外部项目安装,应用程序才会开始构建。
从逻辑上讲,一旦下载了第三方项目并且头文件可用,应用程序就可以开始构建。 要达到相同的目的,我可以采取依赖于configure / download的步骤
ExternalProject_Add_Step(CopyHeaderFileStep DEPENDS配置)
但是,由于这只是一个步骤而不是目标,因此我无法在应用程序CMake中指定CopyHeaderFileStep的依赖项。
我完全查看了cmake第三方文档,但没有帮助。这里有什么出路吗?
答案 0 :(得分:1)
但是,由于这只是一个步骤,而不是目标,因此我无法在应用程序CMake中指定CopyHeaderFileStep的依赖项。
正是出于这个目的,有一个函数ExternalProject_Add_StepTargets
,该函数为ExternalProject的步骤创建常规的CMake目标。来自documentation:
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)