aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java4
-rw-r--r--tools/cpp/CROSSTOOL.tpl16
2 files changed, 18 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
index dec9d7c761..d8bd7f7697 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
@@ -225,11 +225,11 @@ public class BazelCppRuleClasses {
Subject to <a href="${link make-variables}">"Make" variable</a> substitution and
<a href="${link common-definitions#sh-tokenization}">Bourne shell tokenization</a>.
Each string, which must consist of a single Bourne shell token,
- is prepended with <code>-D</code> and added to
+ is prepended with <code>-D</code> (or <code>/D</code> on Windows) and added to
<code>COPTS</code>.
Unlike <a href="#cc_binary.copts"><code>copts</code></a>, these flags are added for the
target and every rule that depends on it! Be very careful, since this may have
- far-reaching effects. When in doubt, add "-D" flags to
+ far-reaching effects. When in doubt, add "-D" (or <code>/D</code> on Windows) flags to
<a href="#cc_binary.copts"><code>copts</code></a> instead.
<!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
.add(attr("defines", STRING_LIST))
diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl
index fbd4b114f9..4906e01fa7 100644
--- a/tools/cpp/CROSSTOOL.tpl
+++ b/tools/cpp/CROSSTOOL.tpl
@@ -347,6 +347,22 @@ toolchain {
name: 'compile_action_flags_in_flag_set'
}
+ feature {
+ name: "preprocessor_defines"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "/D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+
action_config {
config_name: 'c-compile'
action_name: 'c-compile'