Change uses of cc_toolchain_type back to plain toolchain_type.
This is a prequisite to removing cc_toolchain_type entirely.
PiperOrigin-RevId: 198402472
diff --git a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
index 760d090..0139ddf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
@@ -30,6 +30,7 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Options;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Options.MakeVariableSource;
+import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.cmdline.Label;
import java.util.TreeMap;
@@ -82,7 +83,10 @@
ResolvedToolchainProviders providers =
(ResolvedToolchainProviders)
ruleContext.getToolchainContext().getResolvedToolchainProviders();
- providers.getForToolchainType(ruleContext.getLabel()).addGlobalMakeVariables(fragmentBuilder);
+ ToolchainInfo toolchainInfo = providers.getForToolchainType(ruleContext.getLabel());
+ if (toolchainInfo != null) {
+ toolchainInfo.addGlobalMakeVariables(fragmentBuilder);
+ }
} else {
Class<? extends BuildConfiguration.Fragment> fragmentClass =
fragmentMap.get(ruleContext.getLabel());
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
index ecd0814..7ba9f8a 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java
@@ -78,7 +78,7 @@
"/bazel_tools_workspace/tools/cpp/BUILD",
"package(default_visibility=['//visibility:public'])",
"cc_library(name = 'stl')",
- "cc_toolchain_type(name = 'toolchain_type')",
+ "toolchain_type(name = 'toolchain_type')",
"cc_library(name = 'malloc')",
"cc_toolchain_suite(",
" name = 'toolchain',",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
index 70fe4e0..649eed1 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
@@ -17,15 +17,11 @@
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
-import com.google.devtools.build.lib.analysis.ToolchainContext.ResolvedToolchainProviders;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.analysis.util.ScratchAttributeWriter;
-import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.util.MockPlatformSupport;
-import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider;
import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
import com.google.devtools.build.lib.testutil.TestConstants;
-import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -50,62 +46,6 @@
}
@Test
- public void testMakeVariablesFromToolchain() throws Exception {
- MockPlatformSupport.addMockPiiiPlatform(
- mockToolsConfig, analysisMock.ccSupport().getMockCrosstoolLabel());
- useConfiguration(
- "--enabled_toolchain_types="
- + TestConstants.TOOLS_REPOSITORY
- + "//tools/cpp:toolchain_type",
- "--experimental_platforms=//mock_platform:mock-piii-platform",
- "--extra_toolchains=//mock_platform:toolchain_cc-compiler-piii",
- "--make_variables_source=toolchain");
- ConfiguredTarget cc =
- getConfiguredTarget(TestConstants.TOOLS_REPOSITORY + "//tools/cpp:toolchain_type");
- assertThat(cc.get(TemplateVariableInfo.PROVIDER).getVariables())
- .containsEntry("TARGET_CPU", "piii");
- }
-
- @Test
- public void testGlibcVersionSetInEnv() throws Exception {
- MockPlatformSupport.addMockPiiiPlatform(
- mockToolsConfig, analysisMock.ccSupport().getMockCrosstoolLabel());
- useConfiguration(
- "--enabled_toolchain_types="
- + TestConstants.TOOLS_REPOSITORY
- + "//tools/cpp:toolchain_type",
- "--experimental_platforms=//mock_platform:mock-piii-platform",
- "--extra_toolchains=//mock_platform:toolchain_cc-compiler-piii",
- "--make_variables_source=toolchain");
- ConfiguredTarget toolchainType =
- getConfiguredTarget(TestConstants.TOOLS_REPOSITORY + "//tools/cpp:toolchain_type");
- Map<String, String> makeVariables =
- toolchainType.get(TemplateVariableInfo.PROVIDER).getVariables();
-
- ConfiguredTarget target =
- ScratchAttributeWriter.fromLabelString(this, "cc_library", "//lib")
- .setList("srcs", "a.cc")
- .write();
-
- ResolvedToolchainProviders providers =
- (ResolvedToolchainProviders)
- getRuleContext(target).getToolchainContext().getResolvedToolchainProviders();
- CcToolchainProvider toolchainProvider =
- (CcToolchainProvider)
- providers.getForToolchainType(
- Label.parseAbsolute(TestConstants.TOOLS_REPOSITORY + "//tools/cpp:toolchain_type"));
-
- String targetLibc = toolchainProvider.getTargetLibc();
- String glibcVersion = makeVariables.get("GLIBC_VERSION");
- assertThat(glibcVersion).isNotNull();
- if (targetLibc.startsWith("glibc-")) {
- assertThat(glibcVersion).isEqualTo(targetLibc.substring("glibc-".length()));
- } else {
- assertThat(glibcVersion).isEqualTo(targetLibc);
- }
- }
-
- @Test
public void testCcTargetsDependOnCcToolchainAutomatically() throws Exception {
MockPlatformSupport.addMockPiiiPlatform(
mockToolsConfig, analysisMock.ccSupport().getMockCrosstoolLabel());
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 74f6145..3883aae 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -998,6 +998,7 @@
CoreRules.INSTANCE.init(builder);
CoreWorkspaceRules.INSTANCE.init(builder);
PlatformRules.INSTANCE.init(builder);
+ ToolchainRules.INSTANCE.init(builder);
GenericRules.INSTANCE.init(builder);
CcRules.INSTANCE.init(builder);
// Some tests use genrules so they need the shell toolchain (//tools/sh:toolchain_type) so
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD
index 68886db..e6319b2 100644
--- a/tools/cpp/BUILD
+++ b/tools/cpp/BUILD
@@ -17,7 +17,7 @@
licenses(["notice"]) # Apache 2.0
# The toolchain type used to distinguish cc toolchains.
-cc_toolchain_type(name = "toolchain_type")
+toolchain_type(name = "toolchain_type")
# It is frequently necessary to constrain platforms based on the cc compiler type.
constraint_setting(name = "cc_compiler")