我有一个带有autotools项目的第三方库。我想使用ExternalProject_Add来构建库。
这可以通过以下方式完成:
ExternalProject_Add(project_lib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/configure --prefix=${LIB_OUTPUT}
BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build
)
现在的问题是我需要将环境变量传递给configure
,但是我找不到解决方法。
在控制台中,我将通过以下方式进行操作:
CPPFLAGS="-fPIC" ./configure --prefix=output
是否可以通过CPPFLAGS="-fPIC"
将configure
env传递给ExternalProject_Add/CONFIGURE_COMMAND
?
答案 0 :(得分:1)
可以通过cmake(configure
)command mode执行cmake --help
命令来完成:
-E = CMake command mode.
因此,我们可以直接使用环境变量通过cmake命令模式执行它,而不是直接调用configure
:
ExternalProject_Add(project_lib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env CPPFLAGS=-fPIC ${CMAKE_CURRENT_SOURCE_DIR}/lib/configure --prefix=${LIB_OUTPUT}
BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build
)
[cmake-developers] Setting up environment using ExternalProject_Add