代码之家  ›  专栏  ›  技术社区  ›  Christian

如何在Bazel中创建和使用自定义构建标志?

  •  1
  • Christian  · 技术社区  · 7 年前

    我有一个带有条件属性的规则:

    some_rule(
      name = "my_rule",
      some_attr = select({
        ":ts_diagnostics_mode_extended": ["--extendedDiagnostics"]
      }),
    )
    

    config_setting(
       name = "ts_diagnostics_mode_extended",
       values = { "define": "ts_diagnostics_mode=extended_diagnostics" }
    )
    

    但是,在使用 bazel build :my_target --define ts_diagnostics_mode=extended_diagnostics
    Configurable attribute "some_attr" doesn't match this configuration (would a default condition help?).

    少了什么?

    2 回复  |  直到 7 年前
        1
  •  2
  •   kevingessner    7 年前

    --define config_setting define_values ,因为它们是多值的。我认为这会奏效:

    config_setting(
        name = "ts_diagnostics_mode_extended",
        define_values = { "ts_diagnostics_mode": "extended_diagnostics" }
    )
    
        2
  •  1
  •   Greg E    7 年前

    define_values 确实有效,你最初的例子 values 也应该有用。 config_setting 有多个条目。

    看到这条线了吗 define_values 文档:

    --define 仍然可以出现在 价值观