В соответствии с документацией , 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
без явной его настройки?