Add --incompatible_use_platforms_repo_for_constraints
This change adds an incompatible flag to disable constrains bundled with Bazel
in @bazel_tools.
Incompatible change issue:
https://github.com/bazelbuild/bazel/issues/8622
Tracking issue:
https://github.com/bazelbuild/bazel/issues/6516
RELNOTES: Incompatible change `--incompatible_use_platforms_repo_for_constraints` has been added. See https://github.com/bazelbuild/bazel/issues/8622 for details.
Closes #8625.
This is encore of https://github.com/bazelbuild/bazel/commit/332379ad6f8c49b0e087b504d73d3483c529e399. Previous implementation failed with dependency cycle with the configuration. In this attempt I don't use selects, but I've put the incompatible flag checking logic directly into the alias rule. Not nice, but get's thing done.
RELNOTES:
PiperOrigin-RevId: 254357477
diff --git a/site/docs/platforms.md b/site/docs/platforms.md
index 4c3079e..777a6eb 100644
--- a/site/docs/platforms.md
+++ b/site/docs/platforms.md
@@ -88,35 +88,36 @@
platform(
name = "linux_x86",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
":glibc_2_25",
],
)
```
Note that it is an error for a platform to specify more than one value of the
-same constraint setting, such as `@bazel_tools//platforms:x86_64` and
-`@bazel_tools//platforms:arm` for `@bazel_tools//platforms:cpu`.
+same constraint setting, such as `@platforms//cpu:x86_64` and
+`@platforms//cpu:arm` for `@platforms//cpu:cpu`.
## Built-in constraints and platforms
Bazel ships with constraint definitions for the most popular CPU architectures
-and operating systems. These are all located in the package
-`@bazel_tools//platforms`:
+and operating systems. These are all located in the repository
+`@platforms`. This repository is developed at
+[github.com/bazelbuild/platforms](https://github.com/bazelbuild/platforms):
-* `:cpu` for the CPU architecture, with values `:x86_32`, `:x86_64`, `:ppc`,
- `:arm`, `:s390x`
-* `:os` for the operating system, with values `:android`, `:freebsd`, `:ios`,
- `:linux`, `:osx`, `:windows`
+* `//cpu:cpu` for the CPU architecture, with values `//cpu:x86_32`,
+ `//cpu:x86_64`, `//cpu:ppc`, `//cpu:arm`, `//cpu:s390x`
+* `//os:os` for the operating system, with values `//os:android`,
+ `//os:freebsd`, `//os:ios`, `//os:linux`, `//os:osx`, `//os:windows`
There are also the following special platform definitions:
-* `:host_platform` - represents the CPU and operating system for the host
- environment
+* `@bazel_tools//platforms:host_platform` - represents the CPU and operating
+ system for the host environment
-* `:target_platform` - represents the CPU and operating system for the target
- environment
+* `@bazel_tools//platforms:target_platform` - represents the CPU and operating
+ system for the target environment
The CPU values used by these two platforms can be specified with the
`--host_cpu` and `--cpu` flags.
diff --git a/site/docs/toolchains.md b/site/docs/toolchains.md
index 998f623..747af15 100644
--- a/site/docs/toolchains.md
+++ b/site/docs/toolchains.md
@@ -104,14 +104,14 @@
config_setting(
name = "on_linux",
constraint_values = [
- "@bazel_tools//platforms:linux",
+ "@platforms//os:linux",
],
)
config_setting(
name = "on_windows",
constraint_values = [
- "@bazel_tools//platforms:windows",
+ "@platforms//os:windows",
],
)
@@ -276,12 +276,12 @@
toolchain(
name = "barc_linux_toolchain",
exec_compatible_with = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
],
target_compatible_with = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
],
toolchain = ":barc_linux",
toolchain_type = ":toolchain_type",
@@ -290,12 +290,12 @@
toolchain(
name = "barc_windows_toolchain",
exec_compatible_with = [
- "@bazel_tools//platforms:windows",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:windows",
+ "@platforms//cpu:x86_64",
],
target_compatible_with = [
- "@bazel_tools//platforms:windows",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:windows",
+ "@platforms//cpu:x86_64",
],
toolchain = ":barc_windows",
toolchain_type = ":toolchain_type",
@@ -336,7 +336,7 @@
platform(
name = "my_target_platform",
constraint_values = [
- "@bazel_tools//platforms:linux",
+ "@platforms//os:linux",
],
)
@@ -351,7 +351,7 @@
```
Bazel will see that `//my_pkg:my_bar_binary` is being built with a platform that
-has `@bazel_tools//platforms:linux` and therefore resolve the
+has `@platforms//os:linux` and therefore resolve the
`//bar_tools:toolchain_type` reference to `//bar_tools:barc_linux_toolchain`.
This will end up building `//bar_tools:barc_linux` but not
`//barc_tools:barc_windows`.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
index c03f9ed..61b9d94 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
@@ -69,6 +69,18 @@
public boolean mergeGenfilesDirectory;
@Option(
+ name = "incompatible_use_platforms_repo_for_constraints",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
+ metadataTags = {
+ OptionMetadataTag.INCOMPATIBLE_CHANGE,
+ OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
+ },
+ help = "If true, constraint settings from @bazel_tools are removed.")
+ public boolean usePlatformsRepoForConstraints;
+
+ @Option(
name = "define",
converter = Converters.AssignmentConverter.class,
defaultValue = "",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java
index 1209c5d..3537991 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java
@@ -81,17 +81,17 @@
static String cpuToConstraint(CPU cpu) {
switch (cpu) {
case X86_32:
- return "@bazel_tools//platforms:x86_32";
+ return "@platforms//cpu:x86_32";
case X86_64:
- return "@bazel_tools//platforms:x86_64";
+ return "@platforms//cpu:x86_64";
case PPC:
- return "@bazel_tools//platforms:ppc";
+ return "@platforms//cpu:ppc";
case ARM:
- return "@bazel_tools//platforms:arm";
+ return "@platforms//cpu:arm";
case AARCH64:
- return "@bazel_tools//platforms:aarch64";
+ return "@platforms//cpu:aarch64";
case S390X:
- return "@bazel_tools//platforms:s390x";
+ return "@platforms//cpu:s390x";
default:
// Unknown, so skip it.
return null;
@@ -102,13 +102,13 @@
static String osToConstraint(OS os) {
switch (os) {
case DARWIN:
- return "@bazel_tools//platforms:osx";
+ return "@platforms//os:osx";
case FREEBSD:
- return "@bazel_tools//platforms:freebsd";
+ return "@platforms//os:freebsd";
case LINUX:
- return "@bazel_tools//platforms:linux";
+ return "@platforms//os:linux";
case WINDOWS:
- return "@bazel_tools//platforms:windows";
+ return "@platforms//os:windows";
default:
// Unknown, so skip it.
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/Alias.java b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
index 5348588..8570039 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/Alias.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
@@ -28,6 +28,7 @@
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.VisibilityProvider;
import com.google.devtools.build.lib.analysis.VisibilityProviderImpl;
+import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.util.FileTypeSet;
@@ -44,6 +45,22 @@
public ConfiguredTarget create(RuleContext ruleContext)
throws InterruptedException, RuleErrorException, ActionConflictException {
ConfiguredTarget actual = (ConfiguredTarget) ruleContext.getPrerequisite("actual", Mode.TARGET);
+
+ // TODO(b/129045294): Remove once the flag is flipped.
+ if (ruleContext.getLabel().getCanonicalForm().startsWith("@bazel_tools//platforms")
+ && ruleContext
+ .getConfiguration()
+ .getOptions()
+ .get(CoreOptions.class)
+ .usePlatformsRepoForConstraints) {
+ throw ruleContext.throwWithRuleError(
+ "Constraints from @bazel_tools//platforms have been "
+ + "removed. Please use constraints from @platforms repository embedded in "
+ + "Bazel, or preferably declare dependency on "
+ + "https://github.com/bazelbuild/platforms. See "
+ + "https://github.com/bazelbuild/bazel/issues/8622 for details.");
+ }
+
return new AliasConfiguredTarget(
ruleContext,
actual,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
index 7522324..25aedb6e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
@@ -327,7 +327,7 @@
config_setting(
name = "64bit_glibc_2_25",
constraint_values = [
- "@bazel_tools//platforms:x86_64",
+ "@platforms//cpu:x86_64",
"//example:glibc_2_25",
]
)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintSettingRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintSettingRule.java
index 511619a..e9416be 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintSettingRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintSettingRule.java
@@ -67,7 +67,7 @@
<p>Each <code>constraint_setting</code> has an extensible set of associated
<code>constraint_value</code>s. Usually these are defined in the same package, but sometimes a
different package will introduce new values for an existing setting. For instance, the predefined
-setting <code>@bazel_tools//platforms:cpu</code> can be extended with a custom value in order to
+setting <code>@platforms//cpu:cpu</code> can be extended with a custom value in order to
define a platform targeting an obscure cpu architecture.
<!-- #END_BLAZE_RULE -->*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintValueRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintValueRule.java
index 43ccf34..2ca844a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintValueRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/ConstraintValueRule.java
@@ -67,7 +67,7 @@
<pre class="code">
constraint_value(
name = "mips",
- constraint_setting = "@bazel_tools//platforms:cpu",
+ constraint_setting = "@platforms//cpu:cpu",
)
</pre>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRule.java
index c54d05a..bafdb7b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRule.java
@@ -49,7 +49,7 @@
<p>Each <code>constraint_value</code> in this list must be for a different
<code>constraint_setting</code>. For example, you cannot define a platform that requires the
- cpu architecture to be both <code>@bazel_tools//platforms:x86_64</code> and
+ cpu architecture to be both <code>@platforms//cpu:x86_64</code> and
<code>@bazel_tools//platforms:arm</code>.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
@@ -130,8 +130,8 @@
platform(
name = "linux_arm",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:arm",
+ "@platforms//os:linux",
+ "@platforms//cpu:arm",
],
)
</pre>
@@ -177,8 +177,8 @@
platform(
name = "parent",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:arm",
+ "@platforms//os:linux",
+ "@platforms//cpu:arm",
],
remote_execution_properties = """
parent properties
@@ -188,7 +188,7 @@
name = "child_a",
parents = [":parent"],
constraint_values = [
- "@bazel_tools//platforms:x86_64",
+ "@platforms//cpu:x86_64",
],
remote_execution_properties = """
child a properties
@@ -210,8 +210,8 @@
<ul>
<li>
- "child_a" has the constraint values "@bazel_tools//platforms:linux" (inherited from the
- parent) and "@bazel_tools//platforms:x86_64" (set directly on the platform). It has the
+ "child_a" has the constraint values "@platforms//os:linux" (inherited from the
+ parent) and "@platforms//cpu:x86_64" (set directly on the platform). It has the
"remote_execution_properties" set to "child a properties"
</li>
<li>
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
index edf34a1..6240424 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
@@ -67,12 +67,14 @@
@Override
public List<String> getWorkspaceContents(MockToolsConfig config) {
String bazelToolWorkspace = config.getPath("/bazel_tools_workspace").getPathString();
+ String bazelPlatformsWorkspace = config.getPath("/platforms").getPathString();
String localConfigPlatformWorkspace =
config.getPath("/local_config_platform_workspace").getPathString();
return new ArrayList<>(
ImmutableList.of(
"local_repository(name = 'bazel_tools', path = '" + bazelToolWorkspace + "')",
+ "local_repository(name = 'platforms', path = '" + bazelPlatformsWorkspace + "')",
"local_repository(name = 'local_config_xcode', path = '/local_config_xcode')",
"local_repository(name = 'com_google_protobuf', path = '/protobuf')",
"bind(name = 'android/sdk', actual='@bazel_tools//tools/android:sdk')",
@@ -99,6 +101,25 @@
config.create("/local_config_xcode/WORKSPACE");
config.create("/protobuf/WORKSPACE");
config.overwrite("WORKSPACE", workspaceContents.toArray(new String[workspaceContents.size()]));
+ config.create("/platforms/WORKSPACE", "workspace(name = 'platforms')");
+ config.create("/platforms/BUILD");
+ config.create(
+ "/platforms/cpu/BUILD",
+ "constraint_setting(name = 'cpu')",
+ "constraint_value(name = 'x86_32', constraint_setting = ':cpu')",
+ "constraint_value(name = 'x86_64', constraint_setting = ':cpu')",
+ "constraint_value(name = 'ppc', constraint_setting = ':cpu')",
+ "constraint_value(name = 'arm', constraint_setting = ':cpu')",
+ "constraint_value(name = 'aarch64', constraint_setting = ':cpu')",
+ "constraint_value(name = 's390x', constraint_setting = ':cpu')");
+
+ config.create(
+ "/platforms/os/BUILD",
+ "constraint_setting(name = 'os')",
+ "constraint_value(name = 'linux', constraint_setting = ':os')",
+ "constraint_value(name = 'osx', constraint_setting = ':os')",
+ "constraint_value(name = 'freebsd', constraint_setting = ':os')",
+ "constraint_value(name = 'windows', constraint_setting = ':os')");
config.create("/bazel_tools_workspace/WORKSPACE", "workspace(name = 'bazel_tools')");
Runfiles runfiles = Runfiles.create();
for (String filename :
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunctionTest.java
index 663d62d..bc509e0 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunctionTest.java
@@ -45,12 +45,12 @@
public static Collection createInputValues() {
return ImmutableList.of(
// CPU value tests.
- new Object[] {CPU.X86_64, "@bazel_tools//platforms:x86_64"},
- new Object[] {CPU.X86_32, "@bazel_tools//platforms:x86_32"},
- new Object[] {CPU.PPC, "@bazel_tools//platforms:ppc"},
- new Object[] {CPU.ARM, "@bazel_tools//platforms:arm"},
- new Object[] {CPU.AARCH64, "@bazel_tools//platforms:aarch64"},
- new Object[] {CPU.S390X, "@bazel_tools//platforms:s390x"});
+ new Object[] {CPU.X86_64, "@platforms//cpu:x86_64"},
+ new Object[] {CPU.X86_32, "@platforms//cpu:x86_32"},
+ new Object[] {CPU.PPC, "@platforms//cpu:ppc"},
+ new Object[] {CPU.ARM, "@platforms//cpu:arm"},
+ new Object[] {CPU.AARCH64, "@platforms//cpu:aarch64"},
+ new Object[] {CPU.S390X, "@platforms//cpu:s390x"});
}
private final CPU testCpu;
@@ -81,10 +81,10 @@
public static Collection createInputValues() {
return ImmutableList.of(
// OS value tests.
- new Object[] {OS.LINUX, "@bazel_tools//platforms:linux"},
- new Object[] {OS.DARWIN, "@bazel_tools//platforms:osx"},
- new Object[] {OS.FREEBSD, "@bazel_tools//platforms:freebsd"},
- new Object[] {OS.WINDOWS, "@bazel_tools//platforms:windows"});
+ new Object[] {OS.LINUX, "@platforms//os:linux"},
+ new Object[] {OS.DARWIN, "@platforms//os:osx"},
+ new Object[] {OS.FREEBSD, "@platforms//os:freebsd"},
+ new Object[] {OS.WINDOWS, "@platforms//os:windows"});
}
private final OS testOs;
@@ -112,9 +112,9 @@
@RunWith(JUnit4.class)
public static class FunctionTest extends BuildViewTestCase {
private static final ConstraintSettingInfo CPU_CONSTRAINT =
- ConstraintSettingInfo.create(Label.parseAbsoluteUnchecked("@bazel_tools//platforms:cpu"));
+ ConstraintSettingInfo.create(Label.parseAbsoluteUnchecked("@platforms//cpu:cpu"));
private static final ConstraintSettingInfo OS_CONSTRAINT =
- ConstraintSettingInfo.create(Label.parseAbsoluteUnchecked("@bazel_tools//platforms:os"));
+ ConstraintSettingInfo.create(Label.parseAbsoluteUnchecked("@platforms//os:os"));
@Test
public void generateConfigRepository() throws Exception {
diff --git a/src/test/shell/bazel/platforms_test.sh b/src/test/shell/bazel/platforms_test.sh
index 6db625a..d33a6c6 100755
--- a/src/test/shell/bazel/platforms_test.sh
+++ b/src/test/shell/bazel/platforms_test.sh
@@ -71,5 +71,12 @@
fail "Bazel failed to build @platforms"
}
+function test_incompatible_use_platforms_repo_for_constraints() {
+ # We test that a built-in @platforms repository is buildable.
+ bazel build --incompatible_use_platforms_repo_for_constraints @bazel_tools//platforms:all &> \
+ $TEST_log && fail "Build passed when we expected an error."
+ expect_log "Constraints from @bazel_tools//platforms have been removed."
+}
+
run_suite "platform mapping test"
diff --git a/src/test/shell/integration/discard_graph_edges_test.sh b/src/test/shell/integration/discard_graph_edges_test.sh
index 926dc79..3bf1f9b 100755
--- a/src/test/shell/integration/discard_graph_edges_test.sh
+++ b/src/test/shell/integration/discard_graph_edges_test.sh
@@ -271,7 +271,7 @@
package_count="$(extract_histogram_count "$histo_file" \
'devtools\.build\.lib\..*\.Package$')"
# A few packages aren't cleared.
- [[ "$package_count" -le 17 ]] \
+ [[ "$package_count" -le 18 ]] \
|| fail "package count $package_count too high"
glob_count="$(extract_histogram_count "$histo_file" "GlobValue$")"
[[ "$glob_count" -le 1 ]] \
diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh
index 73316d4..25ecb73 100755
--- a/src/test/shell/testenv.sh
+++ b/src/test/shell/testenv.sh
@@ -408,7 +408,7 @@
name = "py_toolchain",
toolchain = ":py_runtime_pair",
toolchain_type = "@bazel_tools//tools/python:toolchain_type",
- target_compatible_with = ["@bazel_tools//platforms:windows"],
+ target_compatible_with = ["@platforms//os:windows"],
)
EOF
}
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD
index ad1b12a..e9da96d 100644
--- a/tools/cpp/BUILD
+++ b/tools/cpp/BUILD
@@ -169,10 +169,10 @@
toolchain(
name = "cc-toolchain-ppc",
exec_compatible_with = [
- "@bazel_tools//platforms:ppc",
+ "@platforms//cpu:ppc",
],
target_compatible_with = [
- "@bazel_tools//platforms:ppc",
+ "@platforms//cpu:ppc",
],
toolchain = ":cc-compiler-ppc",
toolchain_type = ":toolchain_type",
@@ -196,10 +196,10 @@
toolchain(
name = "cc-toolchain-s390x",
exec_compatible_with = [
- "@bazel_tools//platforms:s390x",
+ "@platforms//cpu:s390x",
],
target_compatible_with = [
- "@bazel_tools//platforms:s390x",
+ "@platforms//cpu:s390x",
],
toolchain = ":cc-compiler-s390x",
toolchain_type = ":toolchain_type",
@@ -225,8 +225,8 @@
exec_compatible_with = [
],
target_compatible_with = [
- "@bazel_tools//platforms:arm",
- "@bazel_tools//platforms:android",
+ "@platforms//cpu:arm",
+ "@platforms//os:android",
],
toolchain = ":cc-compiler-armeabi-v7a",
toolchain_type = ":toolchain_type",
@@ -250,12 +250,12 @@
toolchain(
name = "cc-toolchain-k8",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:linux",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:linux",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:linux",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:linux",
],
toolchain = ":cc-compiler-k8",
toolchain_type = ":toolchain_type",
@@ -289,12 +289,12 @@
toolchain(
name = "cc-toolchain-darwin",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:osx",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:osx",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:osx",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:osx",
],
toolchain = ":cc-compiler-darwin",
toolchain_type = ":toolchain_type",
@@ -328,12 +328,12 @@
toolchain(
name = "cc-toolchain-freebsd",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:freebsd",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:freebsd",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:freebsd",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:freebsd",
],
toolchain = ":cc-compiler-freebsd",
toolchain_type = ":toolchain_type",
@@ -367,12 +367,12 @@
toolchain(
name = "cc-toolchain-x64_windows",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
toolchain = ":cc-compiler-x64_windows",
toolchain_type = ":toolchain_type",
@@ -406,13 +406,13 @@
toolchain(
name = "cc-toolchain-x64_windows_msvc",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
":msvc",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
toolchain = ":cc-compiler-x64_windows_msvc",
toolchain_type = ":toolchain_type",
diff --git a/tools/cpp/BUILD.static.freebsd b/tools/cpp/BUILD.static.freebsd
index 5dd2a8e..b21dc3d 100644
--- a/tools/cpp/BUILD.static.freebsd
+++ b/tools/cpp/BUILD.static.freebsd
@@ -62,12 +62,12 @@
toolchain(
name = "cc-toolchain-freebsd",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:freebsd",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:freebsd",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:freebsd",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:freebsd",
],
toolchain = ":cc-compiler-freebsd",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
@@ -97,11 +97,11 @@
toolchain(
name = "cc-toolchain-armeabi-v7a",
exec_compatible_with = [
- "@bazel_tools//platforms:arm",
+ "@platforms//cpu:arm",
],
target_compatible_with = [
- "@bazel_tools//platforms:arm",
- "@bazel_tools//platforms:android",
+ "@platforms//cpu:arm",
+ "@platforms//os:android",
],
toolchain = ":cc-compiler-armeabi-v7a",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
diff --git a/tools/cpp/BUILD.toolchains.tpl b/tools/cpp/BUILD.toolchains.tpl
index 024d8bf..7aa08d0 100644
--- a/tools/cpp/BUILD.toolchains.tpl
+++ b/tools/cpp/BUILD.toolchains.tpl
@@ -11,8 +11,8 @@
name = "cc-toolchain-armeabi-v7a",
exec_compatible_with = HOST_CONSTRAINTS,
target_compatible_with = [
- "@bazel_tools//platforms:arm",
- "@bazel_tools//platforms:android",
+ "@platforms//cpu:arm",
+ "@platforms//os:android",
],
toolchain = "@local_config_cc//:cc-compiler-armabi-v7a",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
diff --git a/tools/cpp/BUILD.windows.tpl b/tools/cpp/BUILD.windows.tpl
index bd45b58..18df650 100644
--- a/tools/cpp/BUILD.windows.tpl
+++ b/tools/cpp/BUILD.windows.tpl
@@ -75,13 +75,13 @@
toolchain(
name = "cc-toolchain-x64_windows_msys",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
"@bazel_tools//tools/cpp:msys",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
toolchain = ":cc-compiler-x64_windows_msys",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
@@ -121,13 +121,13 @@
toolchain(
name = "cc-toolchain-x64_windows_mingw",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
"@bazel_tools//tools/cpp:mingw",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
toolchain = ":cc-compiler-x64_windows_mingw",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
@@ -186,12 +186,12 @@
toolchain(
name = "cc-toolchain-x64_windows",
exec_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
target_compatible_with = [
- "@bazel_tools//platforms:x86_64",
- "@bazel_tools//platforms:windows",
+ "@platforms//cpu:x86_64",
+ "@platforms//os:windows",
],
toolchain = ":cc-compiler-x64_windows",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
@@ -219,8 +219,8 @@
exec_compatible_with = [
],
target_compatible_with = [
- "@bazel_tools//platforms:arm",
- "@bazel_tools//platforms:android",
+ "@platforms//cpu:arm",
+ "@platforms//os:android",
],
toolchain = ":cc-compiler-armeabi-v7a",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
diff --git a/tools/osx/crosstool/BUILD.toolchains b/tools/osx/crosstool/BUILD.toolchains
index 178ab86..8fa7e4a 100644
--- a/tools/osx/crosstool/BUILD.toolchains
+++ b/tools/osx/crosstool/BUILD.toolchains
@@ -7,8 +7,8 @@
name = "cc-toolchain-" + arch,
exec_compatible_with = [
# These only execute on macOS.
- "@bazel_tools//platforms:osx",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:osx",
+ "@platforms//cpu:x86_64",
],
target_compatible_with = OSX_TOOLS_CONSTRAINTS[arch],
toolchain = "@local_config_cc//:cc-compiler-" + arch,
diff --git a/tools/osx/crosstool/osx_archs.bzl b/tools/osx/crosstool/osx_archs.bzl
index 8c37eb0..a8788a4 100644
--- a/tools/osx/crosstool/osx_archs.bzl
+++ b/tools/osx/crosstool/osx_archs.bzl
@@ -37,17 +37,17 @@
# TODO(apple-rules): Rename osx constraint to macOS.
# TODO(apple-rules): Add constraints for watchos and tvos.
OSX_TOOLS_CONSTRAINTS = {
- "darwin_x86_64": ["@bazel_tools//platforms:osx", "@bazel_tools//platforms:x86_64"],
- "ios_i386": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:x86_32"],
- "ios_x86_64": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:x86_64"],
- "watchos_i386": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:x86_32"],
- "watchos_x86_64": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:x86_64"],
- "tvos_x86_64": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:x86_64"],
- "armeabi-v7a": ["@bazel_tools//platforms:arm"],
- "ios_armv7": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:arm"],
- "ios_arm64": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:aarch64"],
- "ios_arm64e": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:aarch64"],
- "watchos_armv7k": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:arm"],
- "watchos_arm64_32": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:aarch64"],
- "tvos_arm64": ["@bazel_tools//platforms:ios", "@bazel_tools//platforms:aarch64"],
+ "darwin_x86_64": ["@platforms//os:osx", "@platforms//cpu:x86_64"],
+ "ios_i386": ["@platforms//os:ios", "@platforms//cpu:x86_32"],
+ "ios_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
+ "watchos_i386": ["@platforms//os:ios", "@platforms//cpu:x86_32"],
+ "watchos_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
+ "tvos_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
+ "armeabi-v7a": ["@platforms//cpu:arm"],
+ "ios_armv7": ["@platforms//os:ios", "@platforms//cpu:arm"],
+ "ios_arm64": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
+ "ios_arm64e": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
+ "watchos_armv7k": ["@platforms//os:ios", "@platforms//cpu:arm"],
+ "watchos_arm64_32": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
+ "tvos_arm64": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
}
diff --git a/tools/platforms/BUILD b/tools/platforms/BUILD
index f0dc074..aedc392 100644
--- a/tools/platforms/BUILD
+++ b/tools/platforms/BUILD
@@ -1,5 +1,7 @@
-# Standard constraint_setting and constraint_values to be used in platforms.
-
+# Deprecated. Do not use. Use targets in @platforms//cpu and @platforms//os.
+# This package will be removed by
+# --incompatible_use_platforms_repo_for_constraints. See
+# https://github.com/bazelbuild/bazel/issues/8622 for details.
package(
default_visibility = ["//visibility:public"],
)
@@ -16,70 +18,74 @@
srcs = glob(["**"]),
)
-# These match values in //src/main/java/com/google/devtools/build/lib/util:CPU.java
-constraint_setting(name = "cpu")
+alias(
+ name = "cpu",
+ actual = "@platforms//cpu:cpu",
+)
-constraint_value(
+alias(
name = "x86_32",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:x86_32",
)
-constraint_value(
+alias(
name = "x86_64",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:x86_64",
)
-constraint_value(
+alias(
name = "ppc",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:ppc",
)
-constraint_value(
+alias(
name = "arm",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:arm",
)
-constraint_value(
+alias(
name = "aarch64",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:aarch64",
)
-constraint_value(
+alias(
name = "s390x",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:s390x",
)
-# These match values in //src/main/java/com/google/devtools/build/lib/util:OS.java
-constraint_setting(name = "os")
+alias(
+ name = "os",
+ actual = "@platforms//os:os",
+)
-constraint_value(
+alias(
name = "osx",
- constraint_setting = ":os",
+ actual = "@platforms//os:osx",
)
-constraint_value(
+alias(
name = "ios",
- constraint_setting = ":os",
+ actual = "@platforms//os:ios",
)
-constraint_value(
+alias(
name = "freebsd",
- constraint_setting = ":os",
+ actual = "@platforms//os:freebsd",
)
-constraint_value(
+alias(
name = "android",
- constraint_setting = ":os",
+ actual = "@platforms//os:android",
)
-constraint_value(
+alias(
name = "linux",
- constraint_setting = ":os",
+ actual = "@platforms//os:linux",
)
-constraint_value(
+alias(
name = "windows",
- constraint_setting = ":os",
+ actual = "@platforms//os:windows",
)
# A default platform with nothing defined.
@@ -92,19 +98,19 @@
constraint_values = [
],
cpu_constraints = [
- ":x86_32",
- ":x86_64",
- ":ppc",
- ":arm",
- ":aarch64",
- ":s390x",
+ "@platforms//cpu:x86_32",
+ "@platforms//cpu:x86_64",
+ "@platforms//cpu:ppc",
+ "@platforms//cpu:arm",
+ "@platforms//cpu:aarch64",
+ "@platforms//cpu:s390x",
],
host_platform = True,
os_constraints = [
- ":osx",
- ":freebsd",
- ":linux",
- ":windows",
+ "@platforms//os:osx",
+ "@platforms//os:freebsd",
+ "@platforms//os:linux",
+ "@platforms//os:windows",
],
)
@@ -113,18 +119,18 @@
constraint_values = [
],
cpu_constraints = [
- ":x86_32",
- ":x86_64",
- ":ppc",
- ":arm",
- ":aarch64",
- ":s390x",
+ "@platforms//cpu:x86_32",
+ "@platforms//cpu:x86_64",
+ "@platforms//cpu:ppc",
+ "@platforms//cpu:arm",
+ "@platforms//cpu:aarch64",
+ "@platforms//cpu:s390x",
],
os_constraints = [
- ":osx",
- ":freebsd",
- ":linux",
- ":windows",
+ "@platforms//os:osx",
+ "@platforms//os:freebsd",
+ "@platforms//os:linux",
+ "@platforms//os:windows",
],
target_platform = True,
)
diff --git a/tools/platforms/BUILD.tools b/tools/platforms/BUILD.tools
index 862c554..f7eece8 100644
--- a/tools/platforms/BUILD.tools
+++ b/tools/platforms/BUILD.tools
@@ -1,73 +1,79 @@
-# Standard constraint_setting and constraint_values to be used in platforms.
-
+# Deprecated. Do not use. Use targets in @platforms//cpu and @platforms//os.
+# This package will be removed by
+# --incompatible_use_platforms_repo_for_constraints. See
+# https://github.com/bazelbuild/bazel/issues/8622 for details.
package(
default_visibility = ["//visibility:public"],
)
-# These match values in //src/main/java/com/google/devtools/build/lib/util:CPU.java
-constraint_setting(name = "cpu")
+alias(
+ name = "cpu",
+ actual = "@platforms//cpu:cpu",
+)
-constraint_value(
+alias(
name = "x86_32",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:x86_32",
)
-constraint_value(
+alias(
name = "x86_64",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:x86_64",
)
-constraint_value(
+alias(
name = "ppc",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:ppc",
)
-constraint_value(
+alias(
name = "arm",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:arm",
)
-constraint_value(
+alias(
name = "aarch64",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:aarch64",
)
-constraint_value(
+alias(
name = "s390x",
- constraint_setting = ":cpu",
+ actual = "@platforms//cpu:s390x",
)
-# These match values in //src/main/java/com/google/devtools/build/lib/util:OS.java
-constraint_setting(name = "os")
+alias(
+ name = "os",
+ actual = "@platforms//os:os",
+)
-constraint_value(
+alias(
name = "osx",
- constraint_setting = ":os",
+ actual = "@platforms//os:osx",
)
-constraint_value(
+alias(
name = "ios",
- constraint_setting = ":os",
+ actual = "@platforms//os:ios",
)
-constraint_value(
+alias(
name = "freebsd",
- constraint_setting = ":os",
+ actual = "@platforms//os:freebsd",
)
-constraint_value(
+alias(
name = "android",
- constraint_setting = ":os",
+ actual = "@platforms//os:android",
)
-constraint_value(
+alias(
name = "linux",
- constraint_setting = ":os",
+ actual = "@platforms//os:linux",
)
-constraint_value(
+alias(
name = "windows",
- constraint_setting = ":os",
+ actual = "@platforms//os:windows",
)
# A default platform with nothing defined.
@@ -80,19 +86,19 @@
constraint_values = [
],
cpu_constraints = [
- ":x86_32",
- ":x86_64",
- ":ppc",
- ":arm",
- ":aarch64",
- ":s390x",
+ "@platforms//cpu:x86_32",
+ "@platforms//cpu:x86_64",
+ "@platforms//cpu:ppc",
+ "@platforms//cpu:arm",
+ "@platforms//cpu:aarch64",
+ "@platforms//cpu:s390x",
],
host_platform = True,
os_constraints = [
- ":osx",
- ":freebsd",
- ":linux",
- ":windows",
+ "@platforms//os:osx",
+ "@platforms//os:freebsd",
+ "@platforms//os:linux",
+ "@platforms//os:windows",
],
)
@@ -101,18 +107,19 @@
constraint_values = [
],
cpu_constraints = [
- ":x86_32",
- ":x86_64",
- ":ppc",
- ":arm",
- ":aarch64",
- ":s390x",
+ "@platforms//cpu:x86_32",
+ "@platforms//cpu:x86_64",
+ "@platforms//cpu:ppc",
+ "@platforms//cpu:arm",
+ "@platforms//cpu:aarch64",
+ "@platforms//cpu:s390x",
],
os_constraints = [
- ":osx",
- ":freebsd",
- ":linux",
- ":windows",
+ "@platforms//os:osx",
+ "@platforms//os:freebsd",
+ "@platforms//os:linux",
+ "@platforms//os:windows",
],
target_platform = True,
)
+