为 ExternalProject_Add CONFIGURE_COMMAND 设置 WORKING_DIRECTORY
Set WORKING_DIRECTORY for ExternalProject_Add CONFIGURE_COMMAND
我正在尝试将 Automake 项目添加为外部项目。
Automake 配置脚本(通常 运行 和 ./configure
)包含资源文件的相对路径。该文件是我运行手动配置时找到的,因为我的工作目录在源目录中。但是,当我运行 configure
和ExternalProject_Add
时,它找不到资源文件,因为工作目录是CMAKE_CURRENT_BINARY_DIR
.
ExternalProject_Add(zlib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
CONFIGURE_COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/configure
BUILD_COMMAND make)
如何设置配置步骤的工作目录,以便配置脚本找到所需的文件?
在 ExternalProject_Add
中,配置步骤是在当前构建目录(BINARY_DIR 选项)下执行的,因此您可以设置此选项:
ExternalProject_Add(...
BINARY_DIR <dir>
...
)
对于源内构建(当构建目录与源目录相同时),BUILD_IN_SOURCE 选项可用作设置 的替代方法BINARY_DIR 选项:
ExternalProject_Add(...
BUILD_IN_SOURCE 1
...
)
更多信息请参见 ExternalProject documentation 页面。
我正在尝试将 Automake 项目添加为外部项目。
Automake 配置脚本(通常 运行 和 ./configure
)包含资源文件的相对路径。该文件是我运行手动配置时找到的,因为我的工作目录在源目录中。但是,当我运行 configure
和ExternalProject_Add
时,它找不到资源文件,因为工作目录是CMAKE_CURRENT_BINARY_DIR
.
ExternalProject_Add(zlib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
CONFIGURE_COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/configure
BUILD_COMMAND make)
如何设置配置步骤的工作目录,以便配置脚本找到所需的文件?
在 ExternalProject_Add
中,配置步骤是在当前构建目录(BINARY_DIR 选项)下执行的,因此您可以设置此选项:
ExternalProject_Add(...
BINARY_DIR <dir>
...
)
对于源内构建(当构建目录与源目录相同时),BUILD_IN_SOURCE 选项可用作设置 的替代方法BINARY_DIR 选项:
ExternalProject_Add(...
BUILD_IN_SOURCE 1
...
)
更多信息请参见 ExternalProject documentation 页面。