【发布时间】:2019-09-06 13:56:52
【问题描述】:
我有一个带有 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
有没有办法通过ExternalProject_Add/CONFIGURE_COMMAND 将CPPFLAGS="-fPIC" env 传递给configure?
【问题讨论】:
-
您是否尝试过以与在命令行、环境变量等上相同的方式指定命令到
ExternalProject_Add()?如果 CMake 生成一个 shell 来处理命令,那么它应该可以正常工作(而不是直接启动命令)。文档不清楚 CMake 使用哪种方法。 -
当然,如果
CMake不自动使用shell 来运行命令,那么您可以通过使命令类似于/bin/sh -c 'CPPFLAGS="-fPIC" ./configure --prefix=output'来明确地这样做。这在某种程度上是特定于平台的,但无论如何,如果没有 Bourne shell 版本,configure将无法工作。 -
你找到方法了吗?我也有同样的问题
-
@JonasVautherin 是的,我做到了,但完全忘记提及了。我必须在我的代码中找到它。
标签: cmake build-process build-automation autotools