CMake ExternalProject_Add 使用自动设置变量
CMake ExternalProject_Add use automatically set variables
根据 documentation,ExternalProject_Add
自行设置未设置的目录变量。
If any of the above ..._DIR options are not specified, their defaults are computed as follows. If the PREFIX option is given or the EP_PREFIX directory property is set, then an external project is built and installed under the specified 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
)
不过我认为使用生成的路径而不是手动传递它会更干净。
有没有办法在 ExternalProject_Add
中使用 ${SOUCRE_DIR}
而无需明确设置?
您引用的所有目录都可以在 ExternalProject_Add
命令中使用 <...>
表示法:
CONFIGURE_COMMAND <SOURCE_DIR>/configure
出于某种原因,此功能在 ExternalProject_Add_Step
函数描述的末尾进行了描述,而不是在函数 ExternalProject_Add
中描述。
根据 documentation,ExternalProject_Add
自行设置未设置的目录变量。
If any of the above ..._DIR options are not specified, their defaults are computed as follows. If the PREFIX option is given or the EP_PREFIX directory property is set, then an external project is built and installed under the specified 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
)
不过我认为使用生成的路径而不是手动传递它会更干净。
有没有办法在 ExternalProject_Add
中使用 ${SOUCRE_DIR}
而无需明确设置?
您引用的所有目录都可以在 ExternalProject_Add
命令中使用 <...>
表示法:
CONFIGURE_COMMAND <SOURCE_DIR>/configure
出于某种原因,此功能在 ExternalProject_Add_Step
函数描述的末尾进行了描述,而不是在函数 ExternalProject_Add
中描述。