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

问题描述 投票:1回答:1

我有一个带有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的方法?

cmake build-process build-automation autotools
1个回答
0
投票

可以通过cmake(configure)命令模式执行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
)
© www.soinside.com 2019 - 2024. All rights reserved.