aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-09-13 21:24:40 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-14 18:46:43 +0200
commitca216f5eb4b1f1892219db0f578495bbbdbaa875 (patch)
tree2cd1853f5424c44dc57e986ee0bd5e3f4ad3bc50 /src
parentd1bd9d6637a7201e31e94683a9bc12cc59ac3651 (diff)
Introduce empty "toolchain_category" rule for labels that will be used as
categories of toolchains for the purpose of toolchain selection. Up to now, we've used the native toolchain_type rule for this purpose. That rule depends on a number of configuration fragments that supply build variables - we don't want toolchains to need to depend on those fragments as well. E.g. toolchain_type depends on JvmConfiguration, but we would like toolchains to work with --experimental_disable_jvm. PiperOrigin-RevId: 168577759
Diffstat (limited to 'src')
-rw-r--r--src/create_embedded_tools.py2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java14
3 files changed, 14 insertions, 4 deletions
diff --git a/src/create_embedded_tools.py b/src/create_embedded_tools.py
index 699edd09f5..8b013cee44 100644
--- a/src/create_embedded_tools.py
+++ b/src/create_embedded_tools.py
@@ -31,6 +31,8 @@ output_paths = [
('*tools/jdk/BUILD*', lambda x: 'tools/jdk/BUILD'),
('*tools/platforms/platforms.BUILD', lambda x: 'platforms/BUILD'),
('*tools/platforms/*', lambda x: 'platforms/' + os.path.basename(x)),
+ ('*tools/build_defs/toolchains/*',
+ lambda x: 'tools/build_defs/toolchains/' + os.path.basename(x)),
('*JavaBuilder*_deploy.jar', lambda x: 'tools/jdk/' + os.path.basename(x)),
('*JacocoCoverage*_deploy.jar',
lambda x: 'tools/jdk/JacocoCoverage_deploy.jar'),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
index 87f43cc057..5273d32226 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -89,7 +89,7 @@ public class CppHelper {
/** Returns label used to select resolved cc_toolchain instances based on platform. */
public static Label getCcToolchainType(String toolsRepository) {
- return Label.parseAbsoluteUnchecked(toolsRepository + "//tools/cpp:toolchain_type");
+ return Label.parseAbsoluteUnchecked(toolsRepository + "//tools/cpp:toolchain_category");
}
private CppHelper() {
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 b938e5fe93..2cf84b62d6 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,6 +78,7 @@ public final class BazelMockCcSupport extends MockCcSupport {
"/bazel_tools_workspace/tools/cpp/BUILD",
"package(default_visibility=['//visibility:public'])",
"cc_library(name = 'stl')",
+ "toolchain_type(name = 'toolchain_type')",
"cc_library(name = 'malloc')",
"cc_toolchain_suite(",
" name = 'toolchain',",
@@ -145,16 +146,17 @@ public final class BazelMockCcSupport extends MockCcSupport {
" name = 'link_dynamic_library',",
" srcs = ['link_dynamic_library.sh'],",
")",
- "toolchain_type(name = 'toolchain_type')",
+ "load('//tools/build_defs/toolchains:toolchain_category.bzl', 'toolchain_category')",
+ "toolchain_category(name = 'toolchain_category')",
"toolchain(",
" name = 'toolchain_cc-compiler-piii',",
- " toolchain_type = ':toolchain_type',",
+ " toolchain_type = ':toolchain_category',",
" toolchain = '//third_party/crosstool/mock:cc-compiler-piii',",
" target_compatible_with = [':mock_value'],",
")",
"toolchain(",
" name = 'dummy_cc_toolchain',",
- " toolchain_type = ':toolchain_type',",
+ " toolchain_type = ':toolchain_category',",
" toolchain = ':dummy_cc_toolchain_impl',",
")",
"load(':dummy_toolchain.bzl', 'dummy_toolchain')",
@@ -165,6 +167,12 @@ public final class BazelMockCcSupport extends MockCcSupport {
" toolchain = platform_common.ToolchainInfo()",
" return [toolchain]",
"dummy_toolchain = rule(_dummy_toolchain_impl, attrs = {})");
+ config.create("/bazel_tools_workspace/tools/build_defs/toolchains/BUILD");
+ config.create(
+ "/bazel_tools_workspace/tools/build_defs/toolchains/toolchain_category.bzl",
+ "def _toolchain_category_impl(ctx):",
+ " ctx = ctx",
+ "toolchain_category = rule(_toolchain_category_impl, attrs = {})");
config.create(
"/bazel_tools_workspace/tools/cpp/CROSSTOOL",
readCrosstoolFile());