CMake:将自定义命令添加到ExternalProject_Add()
我正在生成一个外部项目,但希望在调用configure之前更改一些文件。这是我当前的CMakeLists.txt:CMake:将自定义命令添加到ExternalProject_Add(),cmake,Cmake,我正在生成一个外部项目,但希望在调用configure之前更改一些文件。这是我当前的CMakeLists.txt: ExternalProject_Add( foo URL ${PROJECT_SOURCE_DIR}/ext/foo.tar.gz BUILD_IN_SOURCE 1 #Need copyFromOthers to run here, before configure but after untar CONFIGURE_COMMAND ""
ExternalProject_Add(
foo
URL ${PROJECT_SOURCE_DIR}/ext/foo.tar.gz
BUILD_IN_SOURCE 1
#Need copyFromOthers to run here, before configure but after untar
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add_Step(){
foo copyFromOthers
ExternalProject_Get_Property(foo INSTALL_DIR)
file (COPY <src>/foo_v1.c DESTINATION ${INSTALL_DIR}/foo_v1.c)
file (COPY <src>/foo_v2.c DESTINATION ${INSTALL_DIR}/foo_v2.c)
##....Continues till foo_v10.c
}
ExternalProject\u添加(
福
URL${PROJECT\u SOURCE\u DIR}/ext/foo.tar.gz
在\u源1中生成\u
#需要copyFromOthers在此处运行,在配置之前但在卸载之后
配置\u命令“”
生成命令“”
安装命令“”
)
外部项目添加步骤(){
foo复制他人
外部项目获取属性(foo安装目录)
文件(复制/foo_v1.c目标${INSTALL_DIR}/foo_v1.c)
文件(复制/foo_v2.c DESTINATION${INSTALL_DIR}/foo_v2.c)
##…一直持续到foo_v10.c
}
在ExternalProject_Add()中,是否有方法在URL命令之后调用自定义步骤
我试图将copyFromOthers添加为ExternalProject\u add()的依赖项,但它不断给我提供有关
ExternalProject\u Get\u属性(foo INSTALL\u DIR)
的错误,您可以像这样使用步骤\u TARGETS
参数
ExternalProject_Add(
foo
URL ${PROJECT_SOURCE_DIR}/ext/foo.tar.gz
BUILD_IN_SOURCE 1
#Need copyFromOthers to run here, before configure but after untar
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
STEP_TARGETS download
)
然后,您可以在其他ExternalProject\u Add命令中使用目标“foo download”和DEPENDS
参数:
ExternalProject_Add (<some_target_name>
<...>
DEPENDS foo-download
)
您还可以使用ExternalProject\u Add\u Step
命令向使用ExternalProject\u Add
定义的目标添加步骤。有关更多详细信息,请参阅
add_dependencies (some_target foo)