diff options
author | cparsons <cparsons@google.com> | 2018-03-06 16:15:11 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-06 16:18:46 -0800 |
commit | e2d200f32a7242898a5c976837bd3b8e6dfed62c (patch) | |
tree | 98a6fb3b0bbe3d8438aff9206d5ff77cf19870c3 /src/main/java/com/google/devtools/build/lib/rules/apple | |
parent | a854d6c0d3d222bbd4ff2a532d48ddd91718908c (diff) |
Expose an actions provider on RuleConfiguredTarget instances.
Given a target (for example from a skylark aspect), one will be able to access a list of actions that the target generated using "target.actions". This is without additional memory footprint.
Actions themselves are not fully exposed to skylark (and thus there isn't much meaning to gather from them in skylark yet). Access methods will follow soon.
RELNOTES: None.
PiperOrigin-RevId: 188098079
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple')
4 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD index a40e8f8ad9..4ad39bc4f1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD @@ -17,6 +17,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib:packages-internal", "//src/main/java/com/google/devtools/build/lib:skylarkinterface", "//src/main/java/com/google/devtools/build/lib:syntax", + "//src/main/java/com/google/devtools/build/lib/actions", "//src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/concurrent", 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 abb00c0a21..d9ae4a09c4 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 @@ -22,6 +22,7 @@ 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.actions.MutableActionGraph.ActionConflictException; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory; @@ -50,7 +51,7 @@ public class XcodeConfig implements RuleConfiguredTargetFactory { @Override public ConfiguredTarget create(RuleContext ruleContext) - throws InterruptedException, RuleErrorException { + throws InterruptedException, RuleErrorException, ActionConflictException { AppleConfiguration appleConfig = ruleContext.getFragment(AppleConfiguration.class); AppleCommandLineOptions appleOptions = appleConfig.getOptions(); XcodeVersionRuleData defaultVersion = ruleContext.getPrerequisite( diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfigAlias.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfigAlias.java index a2d89f201b..677ff91a57 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfigAlias.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfigAlias.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.apple; import com.google.common.collect.ImmutableMap; +import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; import com.google.devtools.build.lib.analysis.AliasProvider; import com.google.devtools.build.lib.analysis.BaseRuleClasses; import com.google.devtools.build.lib.analysis.ConfiguredTarget; @@ -38,7 +39,7 @@ import com.google.devtools.build.lib.rules.AliasConfiguredTarget; public class XcodeConfigAlias implements RuleConfiguredTargetFactory { @Override public ConfiguredTarget create(RuleContext ruleContext) - throws InterruptedException, RuleErrorException { + throws InterruptedException, RuleErrorException, ActionConflictException { ConfiguredTarget actual = (ConfiguredTarget) ruleContext.getPrerequisite( XcodeConfigRule.XCODE_CONFIG_ATTR_NAME, Mode.TARGET); return new AliasConfiguredTarget( diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersion.java index f341cbca45..6529c5b014 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersion.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersion.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.rules.apple; +import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory; @@ -27,7 +28,7 @@ public class XcodeVersion implements RuleConfiguredTargetFactory { @Override public ConfiguredTarget create(RuleContext ruleContext) - throws InterruptedException, RuleErrorException { + throws InterruptedException, RuleErrorException, ActionConflictException { XcodeVersionRuleData ruleData = new XcodeVersionRuleData(ruleContext.getLabel(), ruleContext.getRule()); |