Pull PrerequisitePackageFunction out from TransitiveDependencyState. This will be used later as a serialization dependency. PiperOrigin-RevId: 566617390 Change-Id: If88b0f629580575b2a73f0af162b6a7e6ea7ca3d
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD index 4e63fef..dca5e68 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD +++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -2787,6 +2787,7 @@ "//src/main/java/com/google/devtools/build/lib/skyframe:build_configuration", "//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_and_data", "//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_key", + "//src/main/java/com/google/devtools/build/lib/skyframe:prerequisite_package_function", "//third_party:guava", "//third_party:jsr305", ],
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveDependencyState.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveDependencyState.java index 8a015c7..fa489eb 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveDependencyState.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveDependencyState.java
@@ -29,6 +29,7 @@ import com.google.devtools.build.lib.skyframe.BuildConfigurationKey; import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; +import com.google.devtools.build.lib.skyframe.PrerequisitePackageFunction; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -38,16 +39,6 @@ /** Groups state associated with transitive dependencies. */ public final class TransitiveDependencyState { - /** - * Directly retrieves packages of dependencies from Skyframe without adding a dependency edge. - * - * <p>See further discussion at {@link #prerequisitePackages}. - */ - public interface PrerequisitePackageFunction { - @Nullable - Package getExistingPackage(PackageIdentifier id) throws InterruptedException; - } - private final NestedSetBuilder<Cause> transitiveRootCauses; /**
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java index 3db4b9c..9902f3f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -43,7 +43,6 @@ import com.google.devtools.build.lib.analysis.TargetAndConfiguration; import com.google.devtools.build.lib.analysis.ToolchainCollection; import com.google.devtools.build.lib.analysis.TransitiveDependencyState; -import com.google.devtools.build.lib.analysis.TransitiveDependencyState.PrerequisitePackageFunction; import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue; import com.google.devtools.build.lib.analysis.config.ConfigConditions; import com.google.devtools.build.lib.analysis.config.DependencyEvaluationException;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD index 1528b5a..1b7ae1b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -158,6 +158,7 @@ ":prepare_deps_of_targets_under_directory_value", ":prepare_test_suites_under_directory_function", ":prepare_test_suites_under_directory_value", + ":prerequisite_package_function", ":progress_event_suppressing_environment", ":progress_suppressing_event_handler", ":recursive_filesystem_traversal", @@ -241,7 +242,6 @@ "//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_factory", "//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options", "//src/main/java/com/google/devtools/build/lib/analysis:config/invalid_configuration_exception", - "//src/main/java/com/google/devtools/build/lib/analysis:config/optioninfo", "//src/main/java/com/google/devtools/build/lib/analysis:config/starlark_defined_config_transition", "//src/main/java/com/google/devtools/build/lib/analysis:config/starlark_transition_cache", "//src/main/java/com/google/devtools/build/lib/analysis:config/toolchain_type_requirement", @@ -1976,6 +1976,16 @@ ) java_library( + name = "prerequisite_package_function", + srcs = ["PrerequisitePackageFunction.java"], + deps = [ + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/com/google/devtools/build/lib/packages", + "//third_party:jsr305", + ], +) + +java_library( name = "process_package_directory", srcs = ["ProcessPackageDirectory.java"], deps = [
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 6224ff7..9d79bd6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -35,7 +35,6 @@ import com.google.devtools.build.lib.analysis.ResolvedToolchainContext; import com.google.devtools.build.lib.analysis.TargetAndConfiguration; import com.google.devtools.build.lib.analysis.ToolchainCollection; -import com.google.devtools.build.lib.analysis.TransitiveDependencyState.PrerequisitePackageFunction; import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue; import com.google.devtools.build.lib.analysis.config.ConfigConditions; import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/DependencyResolver.java index 2f72d8f..568eb39 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/DependencyResolver.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/DependencyResolver.java
@@ -36,7 +36,6 @@ import com.google.devtools.build.lib.analysis.ToolchainCollection; import com.google.devtools.build.lib.analysis.ToolchainContext; import com.google.devtools.build.lib.analysis.TransitiveDependencyState; -import com.google.devtools.build.lib.analysis.TransitiveDependencyState.PrerequisitePackageFunction; import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrerequisitePackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrerequisitePackageFunction.java new file mode 100644 index 0000000..857042f --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrerequisitePackageFunction.java
@@ -0,0 +1,30 @@ +// Copyright 2023 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.skyframe; + +import com.google.devtools.build.lib.cmdline.PackageIdentifier; +import com.google.devtools.build.lib.packages.Package; +import javax.annotation.Nullable; + +/** + * Looks up previously loaded packages. + * + * <p>Used by {@link ConfiguredTargetFunction} to lookup packages of dependencies. + */ +public interface PrerequisitePackageFunction { + + /** Directly retrieves packages of dependencies from Skyframe without adding a dependency edge. */ + @Nullable // Null if the package not available. + Package getExistingPackage(PackageIdentifier id) throws InterruptedException; +}