0

我有一个 CMakeLists.txt 文件,其中有多个我需要构建的外部项目。我正在使用 CMake 的 ExternalProject_Add 功能。

我需要在 ExternalProject_Add 项目模块之一中设置环境变量。该项目需要它来执行构建。

我尝试使用 ${CMAKE_COMMAND} -E env 选项,但没有奏效:

CONFIGURE_COMMAND
    ${CMAKE_COMMAND} -E env ANDROID_SDK_ROOT="/home/subbu/Android/Sdk"
    ${CMAKE_COMMAND} -E env ANDROID_API_VERSION="android-22"
    <SOURCE_DIR>/configure
    -prefix <INSTALL_DIR>
    -debug

我无法在网上找到示例。

请指教。

提前感谢您的帮助。

副部

4

1 回答 1

0

我正在为 msgpack 做类似的事情,我能够通过执行以下操作使其工作:

set (MsgpackBundle msgpack-1.4.1.tar.gz)
ExternalProject_Add(MsgpackBuilder
    URL ${CMAKE_CURRENT_SOURCE_DIR}/${MsgpackBundle}
    URL_MD5 ${MsgpackBundleMd5}
    CONFIGURE_COMMAND
    ${CMAKE_COMMAND} -E CFLAGS=${MsgpackCflags}
    ${CMAKE_COMMAND} -E env CXXFLAGS=${MsgpackCflags}
    ${CMAKE_COMMAND} -E env LDFLAGS=${MsgpackLdflags}
    ./configure
         --prefix=${DependenciesInstallDir}
         --host=${MsgpackHost}
         --disable-shared
    BUILD_IN_SOURCE true
    BUILD_COMMAND
    make V=1
    INSTALL_COMMAND
    make install)

MsgpackCflags,MsgpackLdflags是预先计算的,具体取决于目标系统。MsgpackHost由交叉编译工具链(x86_64-linux-gnu 用于主机构建)使用,${DependenciesInstallDir} 也是一个预计算路径,因不同的 os/architecture/build-configuration(调试、发布)元组而异。是MsgpackbundleMd5的结果md5sum msgpack-1.4.1.tar.gz

于 2021-08-07T01:01:35.780 回答