aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/BazelSkyframeExecutorConstants.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java14
3 files changed, 24 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BazelSkyframeExecutorConstants.java b/src/main/java/com/google/devtools/build/lib/skyframe/BazelSkyframeExecutorConstants.java
index 198c10fb74..9fb17e97d8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BazelSkyframeExecutorConstants.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BazelSkyframeExecutorConstants.java
@@ -17,13 +17,14 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.skyframe.PackageLookupFunction.CrossRepositoryLabelViolationStrategy;
import com.google.devtools.build.lib.skyframe.PackageLookupValue.BuildFileName;
-class BazelSkyframeExecutorConstants {
+/** Hardcoded constants describing bazel-on-skyframe behavior. */
+public class BazelSkyframeExecutorConstants {
private BazelSkyframeExecutorConstants() {
}
- static final CrossRepositoryLabelViolationStrategy CROSS_REPOSITORY_LABEL_VIOLATION_STRATEGY =
- CrossRepositoryLabelViolationStrategy.ERROR;
+ public static final CrossRepositoryLabelViolationStrategy
+ CROSS_REPOSITORY_LABEL_VIOLATION_STRATEGY = CrossRepositoryLabelViolationStrategy.ERROR;
- static final ImmutableList<BuildFileName> BUILD_FILES_BY_PRIORITY =
+ public static final ImmutableList<BuildFileName> BUILD_FILES_BY_PRIORITY =
ImmutableList.of(BuildFileName.BUILD_DOT_BAZEL, BuildFileName.BUILD);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 953c828f04..9d5a1b0634 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -52,6 +52,8 @@ import com.google.devtools.build.lib.skyframe.GlobFunction;
import com.google.devtools.build.lib.skyframe.PackageFunction;
import com.google.devtools.build.lib.skyframe.PackageFunction.CacheEntryWithGlobDeps;
import com.google.devtools.build.lib.skyframe.PackageLookupFunction;
+import com.google.devtools.build.lib.skyframe.PackageLookupFunction.CrossRepositoryLabelViolationStrategy;
+import com.google.devtools.build.lib.skyframe.PackageLookupValue.BuildFileName;
import com.google.devtools.build.lib.skyframe.PackageValue;
import com.google.devtools.build.lib.skyframe.PrecomputedFunction;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -108,8 +110,6 @@ public abstract class AbstractPackageLoader implements PackageLoader {
protected final ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions;
protected final AtomicReference<PathPackageLocator> pkgLocatorRef;
protected final ExternalFilesHelper externalFilesHelper;
- protected final AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackagesRef =
- new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
protected final CachingPackageLocator packageManager;
protected final BlazeDirectories directories;
private final int legacyGlobbingThreads;
@@ -307,7 +307,9 @@ public abstract class AbstractPackageLoader implements PackageLoader {
protected abstract String getName();
protected abstract ImmutableList<EnvironmentExtension> getEnvironmentExtensions();
- protected abstract PackageLookupFunction makePackageLookupFunction();
+ protected abstract CrossRepositoryLabelViolationStrategy
+ getCrossRepositoryLabelViolationStrategy();
+ protected abstract ImmutableList<BuildFileName> getBuildFilesByPriority();
protected abstract ImmutableMap<SkyFunctionName, SkyFunction> getExtraExtraSkyFunctions();
protected final ImmutableMap<SkyFunctionName, SkyFunction> makeFreshSkyFunctions() {
@@ -338,7 +340,12 @@ public abstract class AbstractPackageLoader implements PackageLoader {
new FileSymlinkInfiniteExpansionUniquenessFunction())
.put(SkyFunctions.FILE, new FileFunction(pkgLocatorRef))
.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction())
- .put(SkyFunctions.PACKAGE_LOOKUP, makePackageLookupFunction())
+ .put(
+ SkyFunctions.PACKAGE_LOOKUP,
+ new PackageLookupFunction(
+ /*deletedPackagesRef=*/ new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()),
+ getCrossRepositoryLabelViolationStrategy(),
+ getBuildFilesByPriority()))
.put(SkyFunctions.BLACKLISTED_PACKAGE_PREFIXES, new BlacklistedPackagePrefixesFunction())
.put(SkyFunctions.CONTAINING_PACKAGE_LOOKUP, new ContainingPackageLookupFunction())
.put(SkyFunctions.AST_FILE_LOOKUP, new ASTFileLookupFunction(ruleClassProvider))
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index 62335dd0d4..aa88fd59dc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -19,8 +19,8 @@ import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider;
import com.google.devtools.build.lib.packages.PackageFactory.EnvironmentExtension;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
+import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
import com.google.devtools.build.lib.skyframe.LocalRepositoryLookupFunction;
-import com.google.devtools.build.lib.skyframe.PackageLookupFunction;
import com.google.devtools.build.lib.skyframe.PackageLookupFunction.CrossRepositoryLabelViolationStrategy;
import com.google.devtools.build.lib.skyframe.PackageLookupValue.BuildFileName;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
@@ -76,11 +76,13 @@ public class BazelPackageLoader extends AbstractPackageLoader {
}
@Override
- protected PackageLookupFunction makePackageLookupFunction() {
- return new PackageLookupFunction(
- deletedPackagesRef,
- CrossRepositoryLabelViolationStrategy.ERROR,
- ImmutableList.of(BuildFileName.BUILD_DOT_BAZEL, BuildFileName.BUILD));
+ protected CrossRepositoryLabelViolationStrategy getCrossRepositoryLabelViolationStrategy() {
+ return BazelSkyframeExecutorConstants.CROSS_REPOSITORY_LABEL_VIOLATION_STRATEGY;
+ }
+
+ @Override
+ protected ImmutableList<BuildFileName> getBuildFilesByPriority() {
+ return BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY;
}
@Override