首页 > 解决方案 > 使用 gradle 构建时将环境变量传递给 cmake

问题描述

我的工作流程如下:

  1. 执行定义临时环境
    变量的脚本(export FOO=bar/setx FOO=bar)。
  2. 通过 android studio 或命令行启动 Gradle 构建(./gradlew assemble)
  3. 调用了 cmake 的本机构建,但未能读取先前导出的环境变量(使用 $ENV{FOO})。

我知道环境变量是每个进程(和子进程)的,Gradle 可能会调用一个新的 shell 导致丢失的变量。

我试过的:

  1. 将所有这些变量添加到 ~/.bashrc 目前不是一种选择,但它会解决问题。
  2. 在构建之前从 Gradle 任务运行脚本(设置环境变量的脚本)。
  3. 使用:

    task addEnvVar(type: Exec) {
        environment "FOO", "bar"
        commandLine "doit"
    }
    

    preBuild.dependsOn addEnvVar

有什么建议我可以如何处理我的情况吗?谢谢!

标签: androidandroid-studiocmakeandroid-ndkandroid-gradle-plugin

解决方案


推荐阅读