1

根据文档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不明确设置的情况下使用?

4

1 回答 1

4

您引用的所有目录都可以在ExternalProject_Add命令中使用<...>符号:

CONFIGURE_COMMAND <SOURCE_DIR>/configure

出于某种原因,此功能在函数描述的末尾进行了ExternalProject_Add_Step描述,而不是在函数中ExternalProject_Add

于 2018-09-05T08:55:37.933 回答