如何知道genrule中的编译模式

How to know the compilation mode in a genrule

我正在使用 bazel 构建我的 android 项目。我需要访问一个环境变量 DEBUG(自定义)来确定 BuildConfig.DEBUG 应该是什么值,但我在 Bazel 的文档中找不到关于此的任何描述。 Bazel 支持吗?或者我可以做些什么来实现我的意图?

非常感谢您的帮助!

PS:我使用genrule规则生成我的BuildConfig.java,但是BuildConfig.DEBUG的值应该由环境变量[=11]决定=]:

genrule(
    name = "build-config-genrule",
    outs = [ "BuildConfig.java" ],
    cmd  = "echo 'package com.qzone;" +
           "public class BuildConfig {" +
           "public static final boolean DEBUG = ???;" +
           "}' > $(@)"
)

您可以在 genrule.cmd:

中使用 $(COMPILATION_MODE) 生成变量

COMPILATION_MODE: "fastbuild", "dbg", or "opt".

Make Variable substitution

编辑:值得一提的是 COMPILATION_MODE 反映了 -c / --compilation_mode flag 的值,但通常无法在命令行上指定您可以在 genrule.cmd 中访问的值.