From 692f57613b3b4c85b735c6ad71e44f66f82574db Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Mon, 9 Jan 2017 12:26:28 +0000 Subject: 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 --- .../build/lib/actions/ExecutionInfoSpecifier.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java (limited to 'src/main/java/com/google/devtools/build/lib/actions/ExecutionInfoSpecifier.java') 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. + * + *

Restrictions are mapped to arbitrary values (typically "") so as to be consistent with + * {@link com.google.devtools.build.lib.actions.Spawn#getExecutionInfo()}. + */ + Map getExecutionInfo(); +} -- cgit v1.2.3