diff options
author | John Cater <jcater@google.com> | 2017-12-04 07:53:19 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-04 07:55:32 -0800 |
commit | e5fb5f07ba9fe0dc40fc2d6039973dab5794f876 (patch) | |
tree | 96835f310868674e5ea02d41690233c5502f819d /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java | |
parent | 8e9b2895763eb9c38b0307fdff3268c0eee221a2 (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.java | 15 |
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); |