如何将环境变量传递给ExternalProject_Add CONFIGURE_COMMAND?

时间:2019-04-16 12:50:50

标签: cmake build-process build-automation autotools

我有一个带有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

1 个答案:

答案 0 :(得分:1)

可以通过cmake(configurecommand 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