cmake第三方项目步骤

时间:2018-09-12 05:56:55

标签: cmake external-project

我们在源代码中将供应商代码用作第三方项目。供应商代码使用Makefile,为此我们为供应商源代码编写了新的CMake add_custom_target。

要将库从供应商特定的build / lib目录复制到我们的CMAKE二进制/库目录,我编写了将所有库复制为

的步骤
  

ExternalProject_Add_Step(CopyStep)

但是我看到每当构建时,CopyStep就会一直执行。只有在库中有更改的情况下,才有什么方法可以控制CopyStep的执行(类似于Make,只要没有代码更改,就不会重建源代码)。

让我知道是否还有其他方法可以进行复制等。

1 个答案:

答案 0 :(得分:0)

要使外部项目的步骤仅在某些文件被更改时才重新执行,请在其中添加 DEPENDS 选项:

ExternalProject_Add_Step(extLibrary CopyStep
    COMMAND cp <BINARY_DIR>/lib/libext.a <...>
    DEPENDS <BINARY_DIR>/lib/libext.a
    )

或者(例如,如果您不想列出您依赖的所有文件),则可以将该步骤作为构建步骤的部分。为此,通过添加适当的命令来修改ExternalProject_Add

ExternalProject_Add(extLibrary
    ...
    BUILD_COMMAND make # Need to explicitely specify build command.
    COMMAND cp -r <BINARY_DIR>/lib <...> # Additional action for the build step
    )