diff options
author | 2017-11-29 11:22:41 -0800 | |
---|---|---|
committer | 2017-11-29 11:24:16 -0800 | |
commit | 00bece2ac9d458f1afba8f9932a65eceb8df55d8 (patch) | |
tree | 4a7acad6b8d09d2a7505f32f8c1ee514508a7c05 /src/main/java/com/google/devtools/build/lib/rules/apple | |
parent | 17810adb392c3e38c5021cee14c5160fdaf2adef (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.java | 16 |
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. |