aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-06-14 01:05:44 +0000
committerGravatar Yue Gan <yueg@google.com>2016-06-14 08:15:53 +0000
commit92d6ec07cfd405e19077164afa38a7501e735520 (patch)
treee38e26aa53e469ba43ec8a5b0046ffaf7746e65c /src
parentc1bfef68f9c444244b42284801a6024414c21f4a (diff)
Allow a config_setting() to match against the default grte_top.
-- MOS_MIGRATED_REVID=124792198
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index dd1b3da2a7..0d60a44401 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -107,6 +107,13 @@ public class CppOptions extends FragmentOptions {
public static class LibcTopConverter implements Converter<LibcTop> {
@Override
public LibcTop convert(String input) throws OptionsParsingException {
+ if (input.equals("default")) {
+ // This is needed for defining config_setting() values, the syntactic form
+ // of which must be a String, to match absence of a --grte_top option.
+ // "--grte_top=default" works on the command-line too,
+ // but that's an inconsequential side-effect, not the intended purpose.
+ return null;
+ }
if (!input.startsWith("//")) {
throw new OptionsParsingException("Not a label");
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
index f5e9543acd..3005c077be 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
@@ -245,6 +245,13 @@ public class ConfigSettingTest extends BuildViewTestCase {
}
@Test
+ public void testSelectForDefaultGrteTop() throws Exception {
+ scratchConfiguredTarget("a", "a",
+ "config_setting(name='cs', values={'grte_top': 'default'})",
+ "sh_library(name='a', srcs=['a.sh'], deps=select({':cs': []}))");
+ }
+
+ @Test
public void testRequiredConfigFragmentMatcher() throws Exception {
scratch.file("test/BUILD",
"config_setting(",