aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-06-12 11:12:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-12 11:13:38 -0700
commit967eebbc8b0cbaa01b281dbad1f14c2f30742195 (patch)
tree7caa9db1b8b032cdc3da0728418ebc8fd20257f0 /src/main/java/com/google/devtools/build
parentfe785e107d0f05bf8529d1460e017cbf5de184ec (diff)
Add skylarkbuildapi bootstraps for apple, cpp, platform, and testing packages
RELNOTES: None. PiperOrigin-RevId: 200246780
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/ObjcRules.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestingSupportRules.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/AppleBootstrap.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/PlatformBootstrap.java35
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java35
10 files changed, 152 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index b3723d09f4..ceb0f5b6b9 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -653,6 +653,8 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/rules/objc",
"//src/main/java/com/google/devtools/build/lib/rules/platform",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+ "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple",
+ "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
index b8067877b4..f4efdad6a6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
@@ -37,6 +37,7 @@ import com.google.devtools.build.lib.rules.cpp.CpuTransformer;
import com.google.devtools.build.lib.rules.cpp.FdoPrefetchHintsRule;
import com.google.devtools.build.lib.rules.cpp.FdoProfileRule;
import com.google.devtools.build.lib.rules.platform.PlatformRules;
+import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcBootstrap;
/**
* Rules for C++ support in Bazel.
@@ -50,8 +51,6 @@ public class CcRules implements RuleSet {
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
- builder.addSkylarkAccessibleTopLevels("cc_common", CcModule.INSTANCE);
-
builder.addConfig(CppOptions.class, new CppConfigurationLoader(CpuTransformer.IDENTITY));
builder.addBuildInfoFactory(new CppBuildInfo());
@@ -75,6 +74,8 @@ public class CcRules implements RuleSet {
builder.addRuleDefinition(new CcIncludeScanningRule());
builder.addRuleDefinition(new FdoProfileRule());
builder.addRuleDefinition(new FdoPrefetchHintsRule());
+
+ builder.addSkylarkBootstrap(new CcBootstrap(new CcModule()));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/ObjcRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/ObjcRules.java
index 712327040d..7807d6811f 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/ObjcRules.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/ObjcRules.java
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.rules.objc.ObjcLibraryRule;
import com.google.devtools.build.lib.rules.objc.ObjcProtoAspect;
import com.google.devtools.build.lib.rules.objc.ObjcProtoLibraryRule;
import com.google.devtools.build.lib.rules.objc.ObjcRuleClasses;
+import com.google.devtools.build.lib.skylarkbuildapi.apple.AppleBootstrap;
/**
* Rules for Objective-C support in Bazel.
@@ -65,8 +66,6 @@ public class ObjcRules implements RuleSet {
ObjcProtoAspect objcProtoAspect = new ObjcProtoAspect();
builder.addBuildInfoFactory(new ObjcBuildInfoFactory());
- builder.addSkylarkAccessibleTopLevels(
- "apple_common", new AppleSkylarkCommon(objcProtoAspect));
builder.addConfig(ObjcCommandLineOptions.class, new ObjcConfigurationLoader());
builder.addConfig(AppleCommandLineOptions.class, new AppleConfiguration.Loader());
@@ -105,6 +104,8 @@ public class ObjcRules implements RuleSet {
builder.addRuleDefinition(new XcodeConfigRule());
builder.addRuleDefinition(new XcodeConfigAliasRule());
builder.addRuleDefinition(new XcodeVersionRule());
+
+ builder.addSkylarkBootstrap(new AppleBootstrap(new AppleSkylarkCommon(objcProtoAspect)));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
index 3971d9766f..d6b450debd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcModuleApi;
/** A module that contains Skylark utilities for C++ support. */
public class CcModule implements CcModuleApi {
- public static final CcModule INSTANCE = new CcModule();
@Override
public Provider getCcToolchainProvider() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
index f535fccbdc..770cb955b1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSe
import com.google.devtools.build.lib.analysis.PlatformConfigurationLoader;
import com.google.devtools.build.lib.analysis.PlatformOptions;
import com.google.devtools.build.lib.rules.core.CoreRules;
+import com.google.devtools.build.lib.skylarkbuildapi.platform.PlatformBootstrap;
/**
* Rules for supporting different platforms in Bazel.
@@ -42,7 +43,7 @@ public class PlatformRules implements RuleSet {
builder.addRuleDefinition(new ToolchainRule());
- builder.addSkylarkAccessibleTopLevels("platform_common", new PlatformCommon());
+ builder.addSkylarkBootstrap(new PlatformBootstrap(new PlatformCommon()));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestingSupportRules.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestingSupportRules.java
index 26a1d52826..80698956b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestingSupportRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestingSupportRules.java
@@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
import com.google.devtools.build.lib.rules.core.CoreRules;
+import com.google.devtools.build.lib.skylarkbuildapi.test.TestingBootstrap;
/** Rules exposing testing infrastructure to Skylark */
public final class TestingSupportRules implements RuleSet {
@@ -28,7 +29,7 @@ public final class TestingSupportRules implements RuleSet {
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
- builder.addSkylarkAccessibleTopLevels("testing", new SkylarkTestingModule());
+ builder.addSkylarkBootstrap(new TestingBootstrap(new SkylarkTestingModule()));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/AppleBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/AppleBootstrap.java
new file mode 100644
index 0000000000..2f34f6d862
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/apple/AppleBootstrap.java
@@ -0,0 +1,35 @@
+// Copyright 2018 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.skylarkbuildapi.apple;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
+
+/**
+ * {@link Bootstrap} for skylark objects related to apple rules.
+ */
+public class AppleBootstrap implements Bootstrap {
+
+ private final AppleCommonApi<?, ?, ?, ?> appleCommon;
+
+ public AppleBootstrap(AppleCommonApi<?, ?, ?, ?> appleCommon) {
+ this.appleCommon = appleCommon;
+ }
+
+ @Override
+ public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
+ builder.put("apple_common", appleCommon);
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java
new file mode 100644
index 0000000000..4286d3dbe2
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java
@@ -0,0 +1,35 @@
+// Copyright 2018 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.skylarkbuildapi.cpp;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
+
+/**
+ * {@link Bootstrap} for skylark objects related to cpp rules.
+ */
+public class CcBootstrap implements Bootstrap {
+
+ private final CcModuleApi ccModule;
+
+ public CcBootstrap(CcModuleApi ccModule) {
+ this.ccModule = ccModule;
+ }
+
+ @Override
+ public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
+ builder.put("cc_common", ccModule);
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/PlatformBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/PlatformBootstrap.java
new file mode 100644
index 0000000000..2f5d01c353
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/platform/PlatformBootstrap.java
@@ -0,0 +1,35 @@
+// Copyright 2018 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.skylarkbuildapi.platform;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
+
+/**
+ * {@link Bootstrap} for skylark objects related to platforms.
+ */
+public class PlatformBootstrap implements Bootstrap {
+
+ private final PlatformCommonApi platformCommon;
+
+ public PlatformBootstrap(PlatformCommonApi platformCommon) {
+ this.platformCommon = platformCommon;
+ }
+
+ @Override
+ public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
+ builder.put("platform_common", platformCommon);
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
new file mode 100644
index 0000000000..40607aaa5f
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
@@ -0,0 +1,35 @@
+// Copyright 2018 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.skylarkbuildapi.test;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
+
+/**
+ * {@link Bootstrap} for skylark objects related to testing.
+ */
+public class TestingBootstrap implements Bootstrap {
+
+ private final TestingModuleApi testingModule;
+
+ public TestingBootstrap(TestingModuleApi testingModule) {
+ this.testingModule = testingModule;
+ }
+
+ @Override
+ public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
+ builder.put("testing", testingModule);
+ }
+}