aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2017-08-01 22:26:37 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-08-02 10:40:10 +0200
commit646cfd81793fc3b87979089aab873310d14e95e6 (patch)
tree1178e4eebd43353445dc582e3024a42f85899f55 /src/test/java/com/google/devtools/build
parent04304925be5cd767db834f442e3ef9f9d91ed4ff (diff)
Simplify copts handling and expose them as a build variable
This cl changes copts to be immutable (and changes addCopts methods into setCopts, so it's simpler to reason about copts) and exposes copts as a build variable. It also introduces CompileBuildVariablesTest, similar to LinkBuildVariablesTest, to test that right build variables are exposed for right actions. RELNOTES: None. PiperOrigin-RevId: 163876774
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL290
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java14
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java1
4 files changed, 307 insertions, 5 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
index b624413c80..42065a3d70 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
@@ -1111,6 +1111,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -1186,6 +1206,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -1205,6 +1226,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -1219,6 +1241,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -1233,6 +1256,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -1247,6 +1271,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -1270,6 +1295,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -1294,6 +1320,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -1306,6 +1333,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -1320,6 +1348,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -2659,6 +2688,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -2734,6 +2783,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -2753,6 +2803,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -2767,6 +2818,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -2781,6 +2833,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -2795,6 +2848,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -2818,6 +2872,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -2842,6 +2897,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -2854,6 +2910,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -2868,6 +2925,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -4211,6 +4269,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -4290,6 +4368,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -4309,6 +4388,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -4323,6 +4403,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -4337,6 +4418,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -4351,6 +4433,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -4374,6 +4457,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -4399,6 +4483,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -4412,6 +4497,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -4426,6 +4512,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -5771,6 +5858,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -5850,6 +5957,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -5869,6 +5977,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -5883,6 +5992,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -5897,6 +6007,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -5911,6 +6022,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -5934,6 +6046,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -5959,6 +6072,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -5972,6 +6086,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -5986,6 +6101,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -7330,6 +7446,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "cpp_linker_flags"
flag_set {
action: "c++-link-executable"
@@ -7438,6 +7574,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7458,6 +7595,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7473,6 +7611,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7488,6 +7627,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7503,6 +7643,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7527,6 +7668,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -7552,6 +7694,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -7565,6 +7708,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -7580,6 +7724,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -8924,6 +9069,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -9003,6 +9168,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -9022,6 +9188,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -9036,6 +9203,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -9050,6 +9218,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -9064,6 +9233,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -9087,6 +9257,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -9112,6 +9283,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "apply_simulator_compiler_flags"
}
action_config {
@@ -9125,6 +9297,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -9139,6 +9312,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -10482,6 +10656,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -10586,6 +10780,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -10605,6 +10800,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -10619,6 +10815,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -10633,6 +10830,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -10647,6 +10845,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -10670,6 +10869,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -10694,6 +10894,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -10706,6 +10907,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -10720,6 +10922,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -12065,6 +12268,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -12169,6 +12392,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -12188,6 +12412,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -12202,6 +12427,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -12216,6 +12442,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -12230,6 +12457,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -12253,6 +12481,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -12277,6 +12506,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -12289,6 +12519,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -12303,6 +12534,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
@@ -13647,6 +13879,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "cpp_linker_flags"
flag_set {
action: "c++-link-executable"
@@ -13780,6 +14032,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13800,6 +14053,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13815,6 +14069,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13830,6 +14085,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13845,6 +14101,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13869,6 +14126,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -13893,6 +14151,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -13905,6 +14164,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -13920,6 +14180,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
implies: "unfiltered_cxx_flags"
}
action_config {
@@ -15264,6 +15525,26 @@ toolchain {
provides: "profile"
}
feature {
+ name: "copts"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "c++-module-compile"
+ action: "c++-module-codegen"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "%{copts}"
+ iterate_over: "copts"
+ }
+ expand_if_all_available: "copts"
+ }
+ }
+ feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -15368,6 +15649,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-compile"
@@ -15387,6 +15669,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-module-compile"
@@ -15401,6 +15684,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-parsing"
@@ -15415,6 +15699,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "c++-header-preprocessing"
@@ -15429,6 +15714,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-compile"
@@ -15452,6 +15738,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc++-compile"
@@ -15476,6 +15763,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "assemble"
@@ -15488,6 +15776,7 @@ toolchain {
implies: "no_objc_arc"
implies: "include_system_dirs"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "preprocess-assemble"
@@ -15502,6 +15791,7 @@ toolchain {
implies: "objc_arc"
implies: "no_objc_arc"
implies: "apple_env"
+ implies: "copts"
}
action_config {
config_name: "objc-archive"
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 8695ac517a..f9f2664b7e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -43,7 +43,6 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.rules.ToolchainType;
-import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.OsUtils;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -149,7 +148,7 @@ public class CcCommonTest extends BuildViewTestCase {
"cc_library(name = 'c_lib',",
" srcs = ['foo.cc'],",
" copts = [ '-Wmy-warning', '-frun-faster' ])");
- MoreAsserts.assertContainsSublist(getCopts("//copts:c_lib"), "-Wmy-warning", "-frun-faster");
+ assertThat(getCopts("//copts:c_lib")).containsAllOf("-Wmy-warning", "-frun-faster");
}
@Test
@@ -160,7 +159,7 @@ public class CcCommonTest extends BuildViewTestCase {
" srcs = ['foo.cc'],",
" copts = ['-Wmy-warning -frun-faster'])");
List<String> copts = getCopts("//copts:c_lib");
- MoreAsserts.assertContainsSublist(copts, "-Wmy-warning", "-frun-faster");
+ assertThat(copts).containsAllOf("-Wmy-warning", "-frun-faster");
assertContainsEvent("each item in the list should contain only one option");
}
@@ -173,7 +172,7 @@ public class CcCommonTest extends BuildViewTestCase {
" srcs = ['foo.cc'],",
" copts = ['-Wmy-warning -frun-faster'])");
List<String> copts = getCopts("//copts:c_lib");
- MoreAsserts.assertContainsSublist(copts, "-Wmy-warning -frun-faster");
+ assertThat(copts).contains("-Wmy-warning -frun-faster");
}
/**
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
index 1324c6c802..67b9f8a0e2 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.rules.cpp;
import static com.google.common.truth.Truth.assertThat;
import com.google.common.base.Predicate;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
@@ -62,4 +63,17 @@ public class CompileBuildVariablesTest extends BuildViewTestCase {
assertThat(variables.getStringVariable(CppModel.OUTPUT_FILE_VARIABLE_NAME))
.contains("x/bin");
}
+
+ @Test
+ public void testPresenceOfCoptsVariable() throws Exception {
+ scratch.file(
+ "x/BUILD", "cc_binary(name = 'bin', srcs = ['bin.cc'], copts = ['-foo', '-bar'])");
+ scratch.file("x/bin.cc");
+
+ Variables variables = getCompileBuildVariables("//x:bin", "bin");
+
+ ImmutableList<String> copts =
+ Variables.toStringList(variables, CppModel.COPTS_VARIABLE_VALUE);
+ assertThat(copts).containsExactly("-foo", "-bar").inOrder();
+ }
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
index 141aacf54f..97abeeb722 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLineTest.java
@@ -104,7 +104,6 @@ public class CompileCommandLineTest extends BuildViewTestCase {
scratchArtifact("a/FakeInput"),
scratchArtifact("a/FakeOutput"),
makeLabel("//a:FakeInput"),
- ImmutableList.<String>of(),
new Predicate<String>() {
@Override
public boolean apply(String s) {