aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2017-12-04 07:53:19 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-04 07:55:32 -0800
commite5fb5f07ba9fe0dc40fc2d6039973dab5794f876 (patch)
tree96835f310868674e5ea02d41690233c5502f819d /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
parent8e9b2895763eb9c38b0307fdff3268c0eee221a2 (diff)
Fix getBuildFiles to not assume BUILD is the name of the build file.
Fixes #4056. Change-Id: Ia7425c2146f15e9293605ee3da53007805e82275 PiperOrigin-RevId: 177813070
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
index b3fd6e92b5..5a005827b0 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.pkgcache.CompileOneDependencyTransformer;
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.pkgcache.LoadingPhaseRunner;
import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent;
+import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TargetParsingCompleteEvent;
import com.google.devtools.build.lib.pkgcache.TargetProvider;
import com.google.devtools.build.lib.pkgcache.TestFilter;
@@ -45,6 +46,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
import javax.annotation.Nullable;
/**
@@ -53,6 +55,12 @@ import javax.annotation.Nullable;
*/
final class TargetPatternPhaseFunction implements SkyFunction {
+ private final AtomicReference<PathPackageLocator> pkgPath;
+
+ public TargetPatternPhaseFunction(AtomicReference<PathPackageLocator> pkgPath) {
+ this.pkgPath = pkgPath;
+ }
+
@Override
public TargetPatternPhaseValue compute(SkyKey key, Environment env) throws InterruptedException {
TargetPatternPhaseKey options = (TargetPatternPhaseKey) key.argument();
@@ -74,7 +82,7 @@ final class TargetPatternPhaseFunction implements SkyFunction {
}
// Determine targets to build:
- ResolvedTargets<Target> targets = getTargetsToBuild(env, options);
+ ResolvedTargets<Target> targets = getTargetsToBuild(env, options, pkgPath.get());
// If the --build_tests_only option was specified or we want to run tests, we need to determine
// the list of targets to test. For that, we remove manual tests and apply the command-line
@@ -197,7 +205,8 @@ final class TargetPatternPhaseFunction implements SkyFunction {
* @param options the command-line arguments in structured form
*/
private static ResolvedTargets<Target> getTargetsToBuild(
- Environment env, TargetPatternPhaseKey options) throws InterruptedException {
+ Environment env, TargetPatternPhaseKey options, PathPackageLocator pkgPath)
+ throws InterruptedException {
List<TargetPatternKey> patternSkyKeys = new ArrayList<>();
for (TargetPatternSkyKeyOrException keyOrException :
TargetPatternValue.keys(
@@ -249,7 +258,7 @@ final class TargetPatternPhaseFunction implements SkyFunction {
.filter(TargetUtils.tagFilter(options.getBuildTargetFilter()))
.build();
if (options.getCompileOneDependency()) {
- TargetProvider targetProvider = new EnvironmentBackedRecursivePackageProvider(env);
+ TargetProvider targetProvider = new EnvironmentBackedRecursivePackageProvider(env, pkgPath);
try {
return new CompileOneDependencyTransformer(targetProvider)
.transformCompileOneDependency(env.getListener(), result);