根据文档,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>
在以下示例中,我想将 COIN-OR-CLP 添加为具有自定义项的外部项目,CONFIGURE_COMMAND
因为 CLP 使用 Autotools。这行得通。
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
不明确设置的情况下使用?