diff options
author | janakr <janakr@google.com> | 2017-09-29 21:11:53 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-10-02 10:31:16 +0200 |
commit | ae32398146a05ecbe60966b0fe16e409e7b3e3ae (patch) | |
tree | 46cd486fb8277c98cdc11a4f427dc370c58354a7 /src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java | |
parent | 5cc6246d429f7d9119b97ce263b4fd6893222e92 (diff) |
Don't symlink into the execroot if possible in SymlinkAction: instead, symlink directly to the target artifact. Also offer the option to not provide the package roots to create the execroot: we would like to avoid the execroot if possible.
PiperOrigin-RevId: 170515263
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java index 56477bdbcd..20f1035990 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java @@ -30,6 +30,7 @@ import com.google.devtools.build.lib.actions.ArtifactOwner; import com.google.devtools.build.lib.actions.ArtifactPrefixConflictException; import com.google.devtools.build.lib.actions.MutableActionGraph; import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; +import com.google.devtools.build.lib.actions.PackageRoots; import com.google.devtools.build.lib.analysis.AnalysisFailureEvent; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.BuildView; @@ -46,7 +47,6 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.ExtendedEventHandler; @@ -241,8 +241,12 @@ public final class SkyframeBuildView { goodCts.add(ctValue.getConfiguredTarget()); packages.addTransitive(ctValue.getTransitivePackages()); } - ImmutableMap<PackageIdentifier, Path> packageRoots = - LoadingPhaseRunner.collectPackageRoots(packages.build().toCollection()); + Path singleSourceRoot = skyframeExecutor.getForcedSingleSourceRootIfNoExecrootSymlinkCreation(); + PackageRoots packageRoots = + singleSourceRoot == null + ? new MapAsPackageRoots( + LoadingPhaseRunner.collectPackageRoots(packages.build().toCollection())) + : new PackageRootsNoSymlinkCreation(singleSourceRoot); if (!result.hasError() && badActions.isEmpty()) { return new SkyframeAnalysisResult( |