aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2017-01-09 12:26:28 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-01-09 13:22:26 +0000
commit692f57613b3b4c85b735c6ad71e44f66f82574db (patch)
tree60420c06b6c3a003a1fbf9b036903a0cdc77f0c7 /src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java
parentf9f41c739dfc13f028259dbd24628eeec78bb043 (diff)
Move ExecutionInfoSpecifier to lib.actions
We were previously jumping through hoops to avoid cyclic dependencies. It's unclear why the class was here in the first place rather than in lib.actions. -- PiperOrigin-RevId: 143948959 MOS_MIGRATED_REVID=143948959
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java b/src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java
new file mode 100644
index 0000000000..e7038a0472
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java
@@ -0,0 +1,34 @@
+// Copyright 2016 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.actions;
+
+import java.util.Map;
+
+/**
+ * An action that specifies requirements for its execution.
+ */
+public interface ExecutionInfoSpecifier {
+
+ /**
+ * Returns execution data for this action. This is used to signal hardware requirements to the
+ * execution (ex. "requires-darwin"). This is a workaround to allow execution on platforms other
+ * than that specified by the host configuration. The ability to choose seperate platforms by
+ * action can provide a performance advantage.
+ *
+ * <p>Restrictions are mapped to arbitrary values (typically "") so as to be consistent with
+ * {@link com.google.devtools.build.lib.actions.Spawn#getExecutionInfo()}.
+ */
+ Map<String, String> getExecutionInfo();
+}