diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions')
7 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java index 04f74585c2..0b272fbbcb 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java @@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.extra.ExtraActionInfo; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.CollectionUtils; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; @@ -45,6 +46,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; +import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; /** @@ -600,4 +602,10 @@ public abstract class AbstractAction implements Action, SkylarkValue { public SkylarkDict<String, String> getSkylarkSubstitutions() { return null; } + + @Nullable + @Override + public PlatformInfo getExecutionPlatform() { + return null; + } } diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionMetadata.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionMetadata.java index ec94b6c72a..57ad70d90d 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionMetadata.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionMetadata.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.actions; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import javax.annotation.Nullable; @@ -126,4 +127,11 @@ public interface ActionExecutionMetadata extends ActionAnalysisMetadata { */ @ThreadSafe boolean discoversInputs(); + + /** + * Returns the {@link PlatformInfo} platform this action should be executed on. If the execution + * platform is {@code null}, then the host platform is assumed. + */ + @Nullable + PlatformInfo getExecutionPlatform(); } diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD index 9b8d8bc600..608ea70b8d 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/BUILD +++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD @@ -23,6 +23,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib:skylarkinterface", "//src/main/java/com/google/devtools/build/lib:unix", "//src/main/java/com/google/devtools/build/lib:util", + "//src/main/java/com/google/devtools/build/lib/analysis/platform", "//src/main/java/com/google/devtools/build/lib/buildeventstream", "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto", "//src/main/java/com/google/devtools/build/lib/causes", diff --git a/src/main/java/com/google/devtools/build/lib/actions/BaseSpawn.java b/src/main/java/com/google/devtools/build/lib/actions/BaseSpawn.java index bc52055207..437f4b1773 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/BaseSpawn.java +++ b/src/main/java/com/google/devtools/build/lib/actions/BaseSpawn.java @@ -17,11 +17,13 @@ package com.google.devtools.build.lib.actions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; +import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; /** Base implementation of a Spawn. */ @@ -147,4 +149,10 @@ public class BaseSpawn implements Spawn { public String getMnemonic() { return action.getMnemonic(); } + + @Override + @Nullable + public PlatformInfo getExecutionPlatform() { + return action.getExecutionPlatform(); + } } diff --git a/src/main/java/com/google/devtools/build/lib/actions/DelegateSpawn.java b/src/main/java/com/google/devtools/build/lib/actions/DelegateSpawn.java index fd548b66cd..eb09c6ee8e 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/DelegateSpawn.java +++ b/src/main/java/com/google/devtools/build/lib/actions/DelegateSpawn.java @@ -16,7 +16,9 @@ package com.google.devtools.build.lib.actions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import java.util.Collection; +import javax.annotation.Nullable; /** * A delegating spawn that allow us to overwrite certain methods while maintaining the original @@ -84,4 +86,10 @@ public class DelegateSpawn implements Spawn { public String getMnemonic() { return spawn.getMnemonic(); } + + @Override + @Nullable + public PlatformInfo getExecutionPlatform() { + return spawn.getExecutionPlatform(); + } } diff --git a/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java b/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java index 3857783cb5..19cfedb81e 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java +++ b/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java @@ -17,6 +17,8 @@ package com.google.devtools.build.lib.actions; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; +import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; /** @@ -135,4 +137,10 @@ public final class SimpleSpawn implements Spawn { public String getMnemonic() { return owner.getMnemonic(); } + + @Override + @Nullable + public PlatformInfo getExecutionPlatform() { + return null; + } } diff --git a/src/main/java/com/google/devtools/build/lib/actions/Spawn.java b/src/main/java/com/google/devtools/build/lib/actions/Spawn.java index 3a59d9ffb3..7e51517483 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/Spawn.java +++ b/src/main/java/com/google/devtools/build/lib/actions/Spawn.java @@ -16,7 +16,9 @@ package com.google.devtools.build.lib.actions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import java.util.Collection; +import javax.annotation.Nullable; /** * An object representing a subprocess to be invoked, including its command and @@ -107,4 +109,7 @@ public interface Spawn { * Returns a mnemonic (string constant) for this kind of spawn. */ String getMnemonic(); + + @Nullable + PlatformInfo getExecutionPlatform(); } |