bazelbuild/bazel

.bazelrc does not tokenize according to the Bourne shell as claimed

Open

#11.517 geöffnet am 28. Mai 2020

Auf GitHub ansehen
 (4 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Java (4.465 Forks)batch import
P3area-Windowshelp wantedteam-Documentationteam-OSStype: documentation (cleanup)

Repository-Metriken

Stars
 (25.384 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 22T 20h) (77 gemergte PRs in 30 T)

Beschreibung

Description of the problem / feature request:

.bazelrc appears to be parsed with Python syntax, not Bourne shell syntax.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

  • .bazelrc: build --copt='-DTEST="a\\nc"'
  • WORKSPACE: workspace(name = "bazeltest")
  • BUILD.bazel: cc_test(name = "main", srcs = ["main.cc"])
  • main.cc: #include <stdio.h> int main() { printf("%s\n", TEST); return 0; }
  • bazel run //:main

I expect to see a\nc as g++ '-DTEST="a\\nc"' main.cc -o main.exe && ./main.exe would produce, but instead I see a<newline>c.

What operating system are you running Bazel on?

Windows

What's the output of bazel info release?

release 3.2.0

Have you found anything relevant by searching the web?

The documentation says

Like all UNIX “rc” files, the .bazelrc file is a text file with a line-based grammar. Empty lines and lines starting with # (comments) are ignored. Each line contains a sequence of words, which are tokenized according to the same rules as the Bourne shell.

but this appears to be incorrect as shown above, and I'm not sure what the intended behavior is.

Contributor Guide