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

标签 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" env 到 configureExternalProject_Add/CONFIGURE_COMMAND ?

最佳答案

可以通过执行 configure 来完成。通过 cmake 命令 ( cmake --help ) command mode :

-E                           = CMake command mode.

所以不要调用 configure我们可以直接通过cmake命令模式使用环境变量执行它:
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

关于cmake - 如何将环境变量传递给 ExternalProject_Add CONFIGURE_COMMAND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708589/

相关文章:

makefile - 高工作值(value)的缺点

tfs - 有没有更好的方法来查看团队构建日志?

powershell - TeamCity 自定义内部版本号 - AssemblyInfo 修补程序

java - 远程运行 Java 项目

xcode - 如何自动安装 Xcode?

iphone - 我可以强制要求设备或模拟器始终用于构建特定目标吗?

编译 OpenCL HelloWorld 程序 : Linker Error

cmake - 如何在MSYS2中安装配置 'cmake'?

c++ - 在 cmake 中使用自定义编译器标志?

javascript - 使用min的好处?