Skip to content

Commit d1d35b2

Browse files
kotlajacopybara-github
authored andcommitted
Expose PackageSpecificationInfo provider as a top level symbol
PiperOrigin-RevId: 558757374 Change-Id: I09ba247ebb611efcebb4ee9f774d1687edd91dd1
1 parent 1e9334c commit d1d35b2

File tree

5 files changed

+39
-5
lines changed

5 files changed

+39
-5
lines changed

src/main/java/com/google/devtools/build/lib/analysis/PackageSpecificationProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@
2424
import com.google.devtools.build.lib.packages.PackageGroup;
2525
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
2626
import com.google.devtools.build.lib.packages.Provider;
27+
import com.google.devtools.build.lib.starlarkbuildapi.PackageSpecificationProviderApi;
2728
import java.util.Optional;
2829

2930
/**
3031
* A {@link TransitiveInfoProvider} that describes a set of transitive package specifications used
3132
* in package groups.
3233
*/
33-
public class PackageSpecificationProvider extends NativeInfo implements TransitiveInfoProvider {
34+
public class PackageSpecificationProvider extends NativeInfo
35+
implements TransitiveInfoProvider, PackageSpecificationProviderApi {
3436

3537
private static final String STARLARK_NAME = "PackageSpecificationInfo";
3638

src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.devtools.build.lib.actions.ActionEnvironment;
2525
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
2626
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
27+
import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;
2728
import com.google.devtools.build.lib.analysis.PlatformConfiguration;
2829
import com.google.devtools.build.lib.analysis.ShellConfiguration;
2930
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
@@ -522,6 +523,14 @@ public ImmutableList<RuleSet> requires() {
522523
}
523524
};
524525

526+
static final RuleSet PACKAGING_RULES =
527+
new RuleSet() {
528+
@Override
529+
public void init(ConfiguredRuleClassProvider.Builder builder) {
530+
builder.addBzlToplevel("PackageSpecificationInfo", PackageSpecificationProvider.PROVIDER);
531+
}
532+
};
533+
525534
private static final ImmutableSet<RuleSet> RULE_SETS =
526535
ImmutableSet.of(
527536
BAZEL_SETUP,
@@ -542,6 +551,7 @@ public ImmutableList<RuleSet> requires() {
542551
J2ObjcRules.INSTANCE,
543552
TestingSupportRules.INSTANCE,
544553
VARIOUS_WORKSPACE_RULES,
554+
PACKAGING_RULES,
545555
// This rule set is a little special: it needs to depend on every configuration fragment
546556
// that has Make variables, so we put it last.
547557
ToolchainRules.INSTANCE);

src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import com.google.common.collect.ImmutableList;
1717
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
1818
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
19-
import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;
2019
import com.google.devtools.build.lib.analysis.StaticallyLinkedMarkerProvider;
2120
import com.google.devtools.build.lib.bazel.rules.cpp.BazelCcBinaryRule;
2221
import com.google.devtools.build.lib.bazel.rules.cpp.BazelCcImportRule;
@@ -109,8 +108,6 @@ public void init(ConfiguredRuleClassProvider.Builder builder) {
109108
builder.addStarlarkBuiltinsInternal(
110109
"PropellerOptimizeInfo", PropellerOptimizeProvider.PROVIDER);
111110
builder.addStarlarkBuiltinsInternal("MemProfProfileInfo", MemProfProfileProvider.PROVIDER);
112-
builder.addStarlarkBuiltinsInternal(
113-
"PackageSpecificationInfo", PackageSpecificationProvider.PROVIDER);
114111
builder.addStarlarkBuiltinsInternal("cc_common", bazelCcModule);
115112
builder.addStarlarkBootstrap(
116113
new CcBootstrap(
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright 2023 The Bazel Authors. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
package com.google.devtools.build.lib.starlarkbuildapi;
15+
16+
import com.google.devtools.build.docgen.annot.DocCategory;
17+
import com.google.devtools.build.lib.starlarkbuildapi.core.StructApi;
18+
import net.starlark.java.annot.StarlarkBuiltin;
19+
20+
/** Provider which describes a set of transitive package specifications used in package groups. */
21+
@StarlarkBuiltin(
22+
name = "PackageSpecificationInfo",
23+
doc = "Information about transitive package specifications used in package groups.",
24+
category = DocCategory.PROVIDER)
25+
public interface PackageSpecificationProviderApi extends StructApi {}

src/main/starlark/builtins_bzl/common/cc/cc_toolchain_attrs.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ load(":common/cc/semantics.bzl", "semantics")
1919
FdoProfileInfo = _builtins.internal.FdoProfileInfo
2020
FdoPrefetchHintsInfo = _builtins.internal.FdoPrefetchHintsInfo
2121
PropellerOptimizeInfo = _builtins.internal.PropellerOptimizeInfo
22-
PackageSpecificationInfo = _builtins.internal.PackageSpecificationInfo
22+
PackageSpecificationInfo = _builtins.toplevel.PackageSpecificationInfo
2323
CcToolchainConfigInfo = _builtins.toplevel.CcToolchainConfigInfo
2424
MemProfProfileInfo = _builtins.internal.MemProfProfileInfo
2525

0 commit comments

Comments
 (0)