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, ) +