aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
diff options
context:
space:
mode:
authorGravatar Luis Fernando Pino Duque <lpino@google.com>2016-02-25 14:25:19 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-02-25 17:31:19 +0000
commitb1b28b68d88aa1d36e2252cab7437aac7993dbc8 (patch)
treec2b5b98f149df137e27faaa623ea3f42402ac14e /src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
parent3d207d03e49ca22ffba93567b616d1d36c96294e (diff)
Update ANDROID_DEFAULT_CROSSTOOL to default to //external:android/crosstool. Remove the constant.
-- MOS_MIGRATED_REVID=115555161
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 9cd7a56edc..d33baeb7f7 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -71,6 +71,7 @@ import com.google.devtools.build.lib.runtime.commands.RunCommand;
import com.google.devtools.build.lib.runtime.commands.ShutdownCommand;
import com.google.devtools.build.lib.runtime.commands.TestCommand;
import com.google.devtools.build.lib.runtime.commands.VersionCommand;
+import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
import com.google.devtools.build.lib.server.RPCServer;
import com.google.devtools.build.lib.server.ServerCommand;
import com.google.devtools.build.lib.server.signal.InterruptSignalHandler;
@@ -168,6 +169,8 @@ public final class BlazeRuntime {
private final BinTools binTools;
private final WorkspaceStatusAction.Factory workspaceStatusActionFactory;
private final ProjectFile.Provider projectFileProvider;
+ @Nullable
+ private final InvocationPolicy invocationPolicy;
// Workspace state (currently exactly one workspace per server)
private final BlazeDirectories directories;
@@ -187,7 +190,7 @@ public final class BlazeRuntime {
TimestampGranularityMonitor timestampGranularityMonitor,
SubscriberExceptionHandler eventBusExceptionHandler,
BinTools binTools, ProjectFile.Provider projectFileProvider,
- Iterable<BlazeCommand> commands) {
+ InvocationPolicy invocationPolicy, Iterable<BlazeCommand> commands) {
// Server state
this.blazeModules = blazeModules;
overrideCommands(commands);
@@ -196,6 +199,7 @@ public final class BlazeRuntime {
this.packageFactory = pkgFactory;
this.binTools = binTools;
this.projectFileProvider = projectFileProvider;
+ this.invocationPolicy = invocationPolicy;
this.ruleClassProvider = ruleClassProvider;
this.configurationFactory = configurationFactory;
@@ -215,6 +219,21 @@ public final class BlazeRuntime {
setupExecRoot();
}
+ private static InvocationPolicy createInvocationPolicyFromModules(
+ InvocationPolicy initialInvocationPolicy,
+ Iterable<BlazeModule> modules) {
+ InvocationPolicy.Builder builder = InvocationPolicy.newBuilder();
+ builder.mergeFrom(initialInvocationPolicy);
+ // Merge the policies from the modules
+ for (BlazeModule module : modules) {
+ InvocationPolicy modulePolicy = module.getInvocationPolicy();
+ if (modulePolicy != null) {
+ builder.mergeFrom(module.getInvocationPolicy());
+ }
+ }
+ return builder.build();
+ }
+
@Nullable CoverageReportActionFactory getCoverageReportActionFactory() {
CoverageReportActionFactory firstFactory = null;
for (BlazeModule module : blazeModules) {
@@ -266,6 +285,11 @@ public final class BlazeRuntime {
skyframeExecutor.setEventBus(null);
}
+ @Nullable
+ public InvocationPolicy getInvocationPolicy() {
+ return invocationPolicy;
+ }
+
/**
* Conditionally enable profiling.
*/
@@ -1305,6 +1329,7 @@ public final class BlazeRuntime {
private BinTools binTools;
private UUID instanceId;
private final List<BlazeCommand> commands = new ArrayList<>();
+ private InvocationPolicy invocationPolicy = InvocationPolicy.getDefaultInstance();
public BlazeRuntime build() throws AbruptExitException {
Preconditions.checkNotNull(directories);
@@ -1453,10 +1478,13 @@ public final class BlazeRuntime {
}
}
+ invocationPolicy = createInvocationPolicyFromModules(invocationPolicy, blazeModules);
+
return new BlazeRuntime(directories, workspaceStatusActionFactory, skyframeExecutor,
pkgFactory, ruleClassProvider, configurationFactory,
clock, startupOptionsProvider, ImmutableList.copyOf(blazeModules),
- timestampMonitor, eventBusExceptionHandler, binTools, projectFileProvider, commands);
+ timestampMonitor, eventBusExceptionHandler, binTools, projectFileProvider,
+ invocationPolicy, commands);
}
public Builder setBinTools(BinTools binTools) {
@@ -1464,6 +1492,11 @@ public final class BlazeRuntime {
return this;
}
+ public Builder setInvocationPolicy(InvocationPolicy invocationPolicy) {
+ this.invocationPolicy = invocationPolicy;
+ return this;
+ }
+
public Builder setDirectories(BlazeDirectories directories) {
this.directories = directories;
return this;