根据documentation,ExternalProject_Add
自行设置未设置的目录变量。
如果未指定上述..._ DIR选项中的任何一个,则其默认值的计算方式如下。如果指定了PREFIX选项或设置了EP_PREFIX目录属性,则将在指定的前缀下构建并安装一个外部项目:
TMP_DIR = <prefix>/tmp STAMP_DIR = <prefix>/src/<name>-stamp DOWNLOAD_DIR = <prefix>/src SOURCE_DIR = <prefix>/src/<name> BINARY_DIR = <prefix>/src/<name>-build INSTALL_DIR = <prefix>
在下面的示例中,我想使用自定义CONFIGURE_COMMAND
将COIN-OR-CLP添加为外部项目,因为CLP使用自动工具。这行得通。
include(ExternalProject)
ExternalProject_Add(${EXT_PROJ}
PREFIX ${EXT_PROJ}
SVN_REPOSITORY https://projects.coin-or.org/svn/Clp/stable/1.16/
UPDATE_COMMAND svn cleanup # Beause otherwise svn will fail on consecutive runs
CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${EXT_PROJ}/${EXT_PROJ}/src/${EXT_PROJ}/configure
)
但是,我认为使用生成的路径而不是手动传递路径会更干净。
是否有一种方法可以在${SOUCRE_DIR}
中使用ExternalProject_Add
而不进行显式设置?
答案 0 :(得分:1)
您引用的所有目录都可以用ExternalProject_Add
符号在<...>
COMMAND中使用:
CONFIGURE_COMMAND <SOURCE_DIR>/configure
由于某些原因,此功能在ExternalProject_Add_Step
函数说明的末尾而不是在函数ExternalProject_Add
中描述。