aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java27
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java12
4 files changed, 30 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
index a25592afc8..52e7dba46d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
@@ -111,8 +111,7 @@ public class ConfiguredTargetQueryEnvironment
private static final Function<SkyKey, ConfiguredTargetKey> SKYKEY_TO_CTKEY =
skyKey -> (ConfiguredTargetKey) skyKey.argument();
private static final ImmutableList<TargetPatternKey> ALL_PATTERNS;
- private static final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey>
- CONFIGURED_TARGET_KEY_EXTRACTOR = ConfiguredTargetKey::of;
+ private final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> configuredTargetKeyExtractor;
/** Common query functions and cquery specific functions. */
public static final ImmutableList<QueryFunction> FUNCTIONS = populateFunctions();
@@ -151,6 +150,19 @@ public class ConfiguredTargetQueryEnvironment
this.pkgPath = pkgPath;
this.walkableGraphSupplier = walkableGraphSupplier;
this.accessor = new ConfiguredTargetAccessor(walkableGraphSupplier.get());
+ this.configuredTargetKeyExtractor =
+ element -> {
+ try {
+ return ConfiguredTargetKey.of(
+ element,
+ element.getConfigurationKey() == null
+ ? null
+ : ((BuildConfigurationValue) graph.getValue(element.getConfigurationKey()))
+ .getConfiguration());
+ } catch (InterruptedException e) {
+ throw new IllegalStateException("Interruption unexpected in configured query");
+ }
+ };
}
private void beforeEvaluateQuery() throws InterruptedException, QueryException {
@@ -556,7 +568,8 @@ public class ConfiguredTargetQueryEnvironment
@Override
public ImmutableList<ConfiguredTarget> getNodesOnPath(ConfiguredTarget from, ConfiguredTarget to)
throws InterruptedException {
- return SkyQueryUtils.getNodesOnPath(from, to, this::getFwdDeps, ConfiguredTargetKey::of);
+ return SkyQueryUtils.getNodesOnPath(
+ from, to, this::getFwdDeps, configuredTargetKeyExtractor::extractKey);
}
@Override
@@ -581,26 +594,26 @@ public class ConfiguredTargetQueryEnvironment
@Override
public ThreadSafeMutableSet<ConfiguredTarget> createThreadSafeMutableSet() {
return new ThreadSafeMutableKeyExtractorBackedSetImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR,
+ configuredTargetKeyExtractor,
ConfiguredTarget.class,
SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override
public <V> MutableMap<ConfiguredTarget, V> createMutableMap() {
- return new MutableKeyExtractorBackedMapImpl<>(CONFIGURED_TARGET_KEY_EXTRACTOR);
+ return new MutableKeyExtractorBackedMapImpl<>(configuredTargetKeyExtractor);
}
@Override
public Uniquifier<ConfiguredTarget> createUniquifier() {
return new UniquifierImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
+ configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override
public MinDepthUniquifier<ConfiguredTarget> createMinDepthUniquifier() {
return new MinDepthUniquifierImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
+ configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
index 92874215cd..957036707e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
@@ -43,12 +43,6 @@ public class ConfiguredTargetKey extends ActionLookupKey {
this.configurationKey = configurationKey;
}
- /** Use {@link #of(ConfiguredTarget, BuildConfiguration)} instead of this. */
- @Deprecated
- public static ConfiguredTargetKey of(ConfiguredTarget configuredTarget) {
- return of(configuredTarget, configuredTarget.getConfiguration());
- }
-
private static Label getLabel(ConfiguredTarget configuredTarget) {
AliasProvider aliasProvider = configuredTarget.getProvider(AliasProvider.class);
return aliasProvider != null
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 6c7f29319a..8205af49d7 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -476,7 +476,8 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
.getDerivedArtifact(
label.getPackageFragment().getRelative(packageRelativePath),
getTargetConfiguration().getBinDirectory(label.getPackageIdentifier().getRepository()),
- ConfiguredTargetKey.of(owner));
+ ConfiguredTargetKey.of(
+ owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey())));
}
protected Set<SkyKey> getSkyframeEvaluatedTargetKeys() {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index bcad79f2f6..7d394a78e1 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -1124,7 +1124,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
return getPackageRelativeDerivedArtifact(
packageRelativePath,
owner.getConfiguration().getBinDirectory(RepositoryName.MAIN),
- ConfiguredTargetKey.of(owner));
+ ConfiguredTargetKey.of(
+ owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey())));
}
/**
@@ -1200,8 +1201,10 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
* just be "foo.o".
*/
protected Artifact getGenfilesArtifact(String packageRelativePath, ConfiguredTarget owner) {
- ConfiguredTargetKey configKey = ConfiguredTargetKey.of(owner);
- return getGenfilesArtifact(packageRelativePath, configKey, owner.getConfiguration());
+ BuildConfiguration configuration =
+ skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey());
+ ConfiguredTargetKey configKey = ConfiguredTargetKey.of(owner, configuration);
+ return getGenfilesArtifact(packageRelativePath, configKey, configuration);
}
/**
@@ -1283,7 +1286,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
return getDerivedArtifact(
PathFragment.create(rootRelativePath),
targetConfig.getBinDirectory(RepositoryName.MAIN),
- ConfiguredTargetKey.of(owner));
+ ConfiguredTargetKey.of(
+ owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey())));
}
protected Action getGeneratingActionForLabel(String label) throws Exception {