aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/apple
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-11-29 11:22:41 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-29 11:24:16 -0800
commit00bece2ac9d458f1afba8f9932a65eceb8df55d8 (patch)
tree4a7acad6b8d09d2a7505f32f8c1ee514508a7c05 /src/main/java/com/google/devtools/build/lib/rules/apple
parent17810adb392c3e38c5021cee14c5160fdaf2adef (diff)
Improve error messaging for invalid values of the --xcode_version flag.
RELNOTES: None. PiperOrigin-RevId: 177337384
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java
index 1b6e998d3c..abb00c0a21 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java
@@ -14,11 +14,14 @@
package com.google.devtools.build.lib.rules.apple;
+import static java.util.stream.Collectors.joining;
+
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
+import com.google.common.collect.Streams;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
@@ -173,14 +176,23 @@ public class XcodeConfig implements RuleConfiguredTargetFactory {
if (explicitVersion != null) {
return explicitVersion;
} else {
- throw new XcodeConfigException(
- String.format("%s matches no alias in the config", versionOverrideFlag));
+ throw new XcodeConfigException(String.format(
+ "--xcode_version=%s specified, but '%s' is not an available Xcode version. "
+ + "available versions: [%s]",
+ versionOverrideFlag, versionOverrideFlag,
+ printableXcodeVersions(xcodeVersionRules)));
}
}
return defaultVersion;
}
+ private static String printableXcodeVersions(Iterable<XcodeVersionRuleData> xcodeVersions) {
+ return Streams.stream(xcodeVersions)
+ .map(versionData -> versionData.getVersion().toString())
+ .collect(joining(", "));
+ }
+
/**
* Returns a map where keys are "names" of xcode versions as defined by the configuration target,
* and values are the rule data objects which contain information regarding that xcode version.