diff options
author | Chris Parsons <cparsons@google.com> | 2017-02-23 21:20:23 +0000 |
---|---|---|
committer | Irina Iancu <elenairina@google.com> | 2017-02-24 08:30:07 +0000 |
commit | ac6b092caafc7e1f7b58b4d2556ad79d6e2145c8 (patch) | |
tree | e583c0e1b3c8a1ec5c0c0301f2b9d5ead1f4c526 /src | |
parent | a2e50847230e72c1782aefe9a3b728d799bee505 (diff) |
Better error messaging if apple cc toolchain cannot locate xcode
--
PiperOrigin-RevId: 148382422
MOS_MIGRATED_REVID=148382422
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java | 11 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java | 5 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java index 4c1d991a15..3ce8d66895 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java @@ -53,17 +53,18 @@ public class AppleCcToolchain extends CcToolchain { public static final String APPLE_SDK_PLATFORM_VALUE_KEY = "apple_sdk_platform_value"; @Override - protected Map<String, String> getBuildVariables(RuleContext ruleContext) { + protected Map<String, String> getBuildVariables(RuleContext ruleContext) + throws RuleErrorException { AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class); - + if (appleConfiguration.getXcodeVersion() == null) { - ruleContext.ruleError("Xcode version must be specified to use an Apple CROSSTOOL"); + ruleContext.throwWithRuleError("Xcode version must be specified to use an Apple CROSSTOOL"); } - + Platform platform = appleConfiguration.getSingleArchPlatform(); Map<String, String> appleEnv = getEnvironment(ruleContext); - + return ImmutableMap.<String, String>builder() .put( XCODE_VERSION_KEY, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index 5ff16981f1..ca9cf8c98f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -345,8 +345,11 @@ public class CcToolchain implements RuleConfiguredTargetFactory { * be overridden by subclasses of CcToolchain. * * @param ruleContext the rule context + * @throws RuleErrorException if there are configuration errors making it impossible to resolve + * certain build variables of this toolchain */ - protected Map<String, String> getBuildVariables(RuleContext ruleContext) { + protected Map<String, String> getBuildVariables(RuleContext ruleContext) + throws RuleErrorException { return ImmutableMap.<String, String>of(); } |