diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime')
5 files changed, 21 insertions, 21 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 27e2ecc6d6..dc67a17f9d 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 @@ -189,9 +189,7 @@ public final class BlazeRuntime { public void initWorkspace(BlazeDirectories directories, BinTools binTools) throws AbruptExitException { Preconditions.checkState(this.workspace == null); - boolean watchFS = startupOptionsProvider != null - && startupOptionsProvider.getOptions(BlazeServerStartupOptions.class).watchFS; - WorkspaceBuilder builder = new WorkspaceBuilder(directories, binTools, watchFS); + WorkspaceBuilder builder = new WorkspaceBuilder(directories, binTools); for (BlazeModule module : blazeModules) { module.workspaceInit(directories, builder); } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java index a68226d446..e22b09b007 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java @@ -51,6 +51,7 @@ import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.common.options.OptionPriority; +import com.google.devtools.common.options.OptionsClassProvider; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; import com.google.devtools.common.options.OptionsProvider; @@ -470,7 +471,7 @@ public final class CommandEnvironment { * * @see DefaultsPackage */ - public void setupPackageCache(PackageCacheOptions packageCacheOptions, + public void setupPackageCache(OptionsClassProvider options, String defaultsPackageContents) throws InterruptedException, AbruptExitException { SkyframeExecutor skyframeExecutor = getSkyframeExecutor(); if (!skyframeExecutor.hasIncrementalState()) { @@ -478,7 +479,7 @@ public final class CommandEnvironment { } skyframeExecutor.sync( reporter, - packageCacheOptions, + options.getOptions(PackageCacheOptions.class), getOutputBase(), getWorkingDirectory(), defaultsPackageContents, @@ -486,7 +487,8 @@ public final class CommandEnvironment { // TODO(bazel-team): this optimization disallows rule-specified additional dependencies // on the client environment! getWhitelistedClientEnv(), - timestampGranularityMonitor); + timestampGranularityMonitor, + options); } public void recordLastExecutionTime() { @@ -516,6 +518,15 @@ public final class CommandEnvironment { CommonCommandOptions options, long execStartTimeNanos, long waitTimeInMs) throws AbruptExitException { commandStartTime -= options.startupTime; + if (runtime.getStartupOptionsProvider().getOptions(BlazeServerStartupOptions.class).watchFS) { + try { + // TODO(ulfjack): Get rid of the startup option and drop this code. + optionsParser.parse("--watchfs"); + } catch (OptionsParsingException e) { + // This should never happen. + throw new IllegalStateException(e); + } + } eventBus.post(new GotOptionsEvent(runtime.getStartupOptionsProvider(), optionsParser)); throwPendingException(); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java index d7f0bfd2f2..241d5690a1 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java @@ -36,7 +36,6 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionName; - import java.util.Map; /** @@ -46,7 +45,6 @@ import java.util.Map; public final class WorkspaceBuilder { private final BlazeDirectories directories; private final BinTools binTools; - private final boolean watchFs; private SkyframeExecutorFactory skyframeExecutorFactory; private WorkspaceStatusAction.Factory workspaceStatusActionFactory; @@ -63,10 +61,9 @@ public final class WorkspaceBuilder { private final ImmutableList.Builder<SkyValueDirtinessChecker> customDirtinessCheckers = ImmutableList.builder(); - WorkspaceBuilder(BlazeDirectories directories, BinTools binTools, boolean watchFs) { + WorkspaceBuilder(BlazeDirectories directories, BinTools binTools) { this.directories = directories; this.binTools = binTools; - this.watchFs = watchFs; } BlazeWorkspace build( @@ -104,10 +101,6 @@ public final class WorkspaceBuilder { workspaceStatusActionFactory, binTools); } - public boolean enableWatchFs() { - return watchFs; - } - /** * Sets a factory for creating {@link SkyframeExecutor} objects. Note that only one factory per * workspace is allowed. @@ -136,7 +129,9 @@ public final class WorkspaceBuilder { /** * Add a {@link DiffAwareness} factory. These will be used to determine which files, if any, - * changed between Blaze commands. + * changed between Blaze commands. Note that these factories are attempted in the order in which + * they are added to this class, so order matters - in order to guarantee a specific order, only + * a single module should add such factories. */ public WorkspaceBuilder addDiffAwarenessFactory(DiffAwareness.Factory factory) { this.diffAwarenessFactories.add(Preconditions.checkNotNull(factory)); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java index b5e596fb88..38c7d78ea8 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java @@ -20,7 +20,6 @@ import com.google.devtools.build.lib.analysis.NoBuildEvent; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.events.Event; -import com.google.devtools.build.lib.pkgcache.PackageCacheOptions; import com.google.devtools.build.lib.runtime.BlazeCommand; import com.google.devtools.build.lib.runtime.BlazeRuntime; import com.google.devtools.build.lib.runtime.Command; @@ -114,8 +113,7 @@ public class InfoCommand implements BlazeCommand { // package path. Since info inherits all the build options, all the necessary information // is available here. env.setupPackageCache( - optionsProvider.getOptions(PackageCacheOptions.class), - runtime.getDefaultsPackageContent(optionsProvider)); + optionsProvider, runtime.getDefaultsPackageContent(optionsProvider)); // TODO(bazel-team): What if there are multiple configurations? [multi-config] configuration = env .getConfigurations(optionsProvider) diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java index 6c689d2baa..c52a3fe0d9 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java @@ -83,9 +83,7 @@ public final class QueryCommand implements BlazeCommand { QueryOptions queryOptions = options.getOptions(QueryOptions.class); try { - env.setupPackageCache( - options.getOptions(PackageCacheOptions.class), - runtime.getDefaultsPackageContent()); + env.setupPackageCache(options, runtime.getDefaultsPackageContent()); } catch (InterruptedException e) { env.getReporter().handle(Event.error("query interrupted")); return ExitCode.INTERRUPTED; |