如何为ExternalProject\u加载项cmake的配置步骤添加对文件的依赖关系
我正在尝试将不使用cmake的外部项目添加到使用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
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)
。