Update ANDROID_DEFAULT_CROSSTOOL to default to //external:android/crosstool. Remove the constant.
--
MOS_MIGRATED_REVID=115555161
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 9cd7a56..d33baeb 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.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 @@
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 @@
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 @@
this.packageFactory = pkgFactory;
this.binTools = binTools;
this.projectFileProvider = projectFileProvider;
+ this.invocationPolicy = invocationPolicy;
this.ruleClassProvider = ruleClassProvider;
this.configurationFactory = configurationFactory;
@@ -215,6 +219,21 @@
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 @@
skyframeExecutor.setEventBus(null);
}
+ @Nullable
+ public InvocationPolicy getInvocationPolicy() {
+ return invocationPolicy;
+ }
+
/**
* Conditionally enable profiling.
*/
@@ -1305,6 +1329,7 @@
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 @@
}
}
+ 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 @@
return this;
}
+ public Builder setInvocationPolicy(InvocationPolicy invocationPolicy) {
+ this.invocationPolicy = invocationPolicy;
+ return this;
+ }
+
public Builder setDirectories(BlazeDirectories directories) {
this.directories = directories;
return this;