我正在尝试将一个不使用 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_CURRENT_SOURCE_DIR}/configure_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。规则”,已经有一个自定义规则。
从
CONFIGURE_COMMAND
中删除 ExternalProject_Add
没有效果。
我该怎么做?
虽然
ExternalProject_Add_StepDependencies
确实允许文件路径,但正确的方法是添加依赖于所有感兴趣文件的中间自定义目标。