aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-11-04 21:19:43 +0000
committerGravatar John Field <jfield@google.com>2015-11-05 16:50:00 +0000
commita33da62ad294f8c9483aa5685efae0bf3dfadb41 (patch)
tree05bd61e20dc00ddb04853044c19712bc96a4be8d /src
parentfed455e2589d5406adb564899a1f8ae8c7464c23 (diff)
Implement the offset for the new skyframe-based LoadingPhaseRunner.
-- MOS_MIGRATED_REVID=107071400
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java18
3 files changed, 22 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 6980e69b2f..afba144e13 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -72,7 +72,6 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti
import com.google.devtools.build.lib.analysis.config.PatchTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadCompatible;
@@ -1718,9 +1717,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
@Override
public void updatePatternEvaluator(PathFragment relativeWorkingDirectory) {
- if (!relativeWorkingDirectory.equals(PathFragment.EMPTY_FRAGMENT)) {
- throw new UnsupportedOperationException();
- }
+ targetPatternEvaluator.updateOffset(relativeWorkingDirectory);
}
@Override
@@ -1731,7 +1728,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
throws TargetParsingException, LoadingFailedException, InterruptedException {
Stopwatch timer = Stopwatch.createStarted();
SkyKey key = TargetPatternPhaseValue.key(ImmutableList.copyOf(targetPatterns),
- options.compileOneDependency, options.buildTestsOnly, determineTests,
+ targetPatternEvaluator.getOffset(), options.compileOneDependency,
+ options.buildTestsOnly, determineTests,
TestFilter.forOptions(options, eventHandler, ruleClassNames));
EvaluationResult<TargetPatternPhaseValue> evalResult =
buildDriver.evaluate(
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 0c62164f5b..d9485285aa 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
@@ -56,7 +56,7 @@ final class TargetPatternPhaseFunction implements SkyFunction {
// Determine targets to build:
ResolvedTargets<Target> targets = getTargetsToBuild(env,
- options.getTargetPatterns(), options.getCompileOneDependency());
+ options.getTargetPatterns(), options.getOffset(), options.getCompileOneDependency());
// 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
@@ -64,7 +64,8 @@ final class TargetPatternPhaseFunction implements SkyFunction {
// set as build list as well.
ResolvedTargets<Target> testTargets = null;
if (options.getDetermineTests() || options.getBuildTestsOnly()) {
- testTargets = determineTests(env, options.getTargetPatterns(), options.getTestFilter());
+ testTargets = determineTests(env,
+ options.getTargetPatterns(), options.getOffset(), options.getTestFilter());
Preconditions.checkState(env.valuesMissing() || (testTargets != null));
}
@@ -168,10 +169,10 @@ final class TargetPatternPhaseFunction implements SkyFunction {
* {@link LoadingOptions#compileOneDependency}
*/
private static ResolvedTargets<Target> getTargetsToBuild(Environment env,
- List<String> targetPatterns, boolean compileOneDependency) {
+ List<String> targetPatterns, String offset, boolean compileOneDependency) {
List<SkyKey> patternSkyKeys = new ArrayList<>();
for (TargetPatternSkyKeyOrException keyOrException :
- TargetPatternValue.keys(targetPatterns, FilteringPolicies.FILTER_MANUAL, "")) {
+ TargetPatternValue.keys(targetPatterns, FilteringPolicies.FILTER_MANUAL, offset)) {
try {
patternSkyKeys.add(keyOrException.getSkyKey());
} catch (TargetParsingException e) {
@@ -223,10 +224,10 @@ final class TargetPatternPhaseFunction implements SkyFunction {
* @param testFilter the test filter
*/
private static ResolvedTargets<Target> determineTests(Environment env,
- List<String> targetPatterns, TestFilter testFilter) {
+ List<String> targetPatterns, String offset, TestFilter testFilter) {
List<SkyKey> patternSkyKeys = new ArrayList<>();
for (TargetPatternSkyKeyOrException keyOrException :
- TargetPatternValue.keys(targetPatterns, FilteringPolicies.FILTER_TESTS, "")) {
+ TargetPatternValue.keys(targetPatterns, FilteringPolicies.FILTER_TESTS, offset)) {
try {
patternSkyKeys.add(keyOrException.getSkyKey());
} catch (TargetParsingException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
index 0aa55f493d..2c0fd26478 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
@@ -110,11 +110,11 @@ public final class TargetPatternPhaseValue implements SkyValue {
/** Create a target pattern phase value key. */
@ThreadSafe
- public static SkyKey key(ImmutableList<String> targetPatterns, boolean compileOneDependency,
- boolean buildTestsOnly, boolean determineTests, TestFilter testFilter) {
- return new SkyKey(SkyFunctions.TARGET_PATTERN_PHASE,
- new TargetPatternList(
- targetPatterns, compileOneDependency, buildTestsOnly, determineTests, testFilter));
+ public static SkyKey key(ImmutableList<String> targetPatterns, String offset,
+ boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
+ TestFilter testFilter) {
+ return new SkyKey(SkyFunctions.TARGET_PATTERN_PHASE, new TargetPatternList(
+ targetPatterns, offset, compileOneDependency, buildTestsOnly, determineTests, testFilter));
}
/**
@@ -124,15 +124,17 @@ public final class TargetPatternPhaseValue implements SkyValue {
@ThreadSafe
static final class TargetPatternList implements Serializable {
private final ImmutableList<String> targetPatterns;
+ private final String offset;
private final boolean compileOneDependency;
private final boolean buildTestsOnly;
private final boolean determineTests;
private final TestFilter testFilter;
- public TargetPatternList(ImmutableList<String> targetPatterns,
+ public TargetPatternList(ImmutableList<String> targetPatterns, String offset,
boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
TestFilter testFilter) {
this.targetPatterns = targetPatterns;
+ this.offset = offset;
this.compileOneDependency = compileOneDependency;
this.buildTestsOnly = buildTestsOnly;
this.determineTests = determineTests;
@@ -143,6 +145,10 @@ public final class TargetPatternPhaseValue implements SkyValue {
return targetPatterns;
}
+ public String getOffset() {
+ return offset;
+ }
+
public boolean getCompileOneDependency() {
return compileOneDependency;
}