Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为ExternalProject\u加载项cmake的配置步骤添加对文件的依赖关系_Cmake - Fatal编程技术网

如何为ExternalProject\u加载项cmake的配置步骤添加对文件的依赖关系

如何为ExternalProject\u加载项cmake的配置步骤添加对文件的依赖关系,cmake,Cmake,我正在尝试将不使用cmake的外部项目添加到使用cmake的项目中: include(ExternalProject) ExternalProject_Add( MatrixSSL SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/matrixssl PREFIX ${CMAKE_CURRENT_BINARY_DIR}/matrixssl CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure_ma

我正在尝试将不使用cmake的外部项目添加到使用cmake的项目中:

include(ExternalProject)

ExternalProject_Add( MatrixSSL
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/matrixssl
  PREFIX ${CMAKE_CURRENT_BINARY_DIR}/matrixssl
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure_matrixssl.sh
  BUILD_COMMAND echo "Built!"
  INSTALL_COMMAND echo "Installing!"
)
这里的脚本
${CMAKE\u CURRENT\u SOURCE\u DIR}/configure\u matrixssl.sh
就可以了 配置该外部项目所需的任何内容(也就是生成Makefile的)

我的问题是,当我编辑
configure_matrixssl.sh
并重新运行“make”时 配置步骤不会重复。因此,我想添加一个 我的脚本上的“配置步骤”;当我的脚本的修改时间较新时 超过配置时间戳文件的修改时间,它应该重新执行 配置步骤

我试过了

ExternalProject_Add_Step( MatrixSSL configure
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configure_matrixssl.sh
)
但这没有效果

然后我试着

ExternalProject_Add_Step( MatrixSSL configure
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure_matrixssl.sh   
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configure_matrixssl.sh
)
但这给了我一个错误

CMake错误:尝试将自定义规则添加到已具有自定义规则的输出“/home/carlo/projects/aicxx/ai evio testsuite/ai evio testsuite objdir/evio/matrixssl/src/matrixssl stamp/matrixssl configure.rule”

ExternalProject\u Add
中删除
CONFIGURE\u命令
无效


如何执行此操作?

ExternalProject\u Add\u StepDependencies
命令。虽然声明“添加的依赖项必须是目标”,但在内部,该函数使用
add\u custom\u命令(APPEND)
,该命令也应适用于文件
ExternalProject\u Add\u StepDependencies(MatrixSSL configure${CMAKE\u CURRENT\u SOURCE\u DIR}/configure\u MatrixSSL.sh)
。有
ExternalProject\u Add\u StepDependencies
命令。虽然声明“添加的依赖项必须是目标”,但在内部,该函数使用
add\u custom\u命令(APPEND)
,该命令也应适用于文件
ExternalProject\u Add\u StepDependencies(MatrixSSL configure${CMAKE\u CURRENT\u SOURCE\u DIR}/configure\u MatrixSSL.sh)