I'm not really satisified with this PR. The number of Apple specific platforms has grown to the point where we may want to refactor them. The question I would focus on is how various toolchain matches and select clauses go.
Do we see things like:
```
foo = select({
".../os:linux": A,
".../os:windows": B,
".../os:macos": C,
".../os:watchos": C,
".../os:visionos": C,
})
```
Where C is the same for all the apple platforms?
Or, do we see real distinctions across the various per-device OSes. Or a mix of both?
And, do we see the fanout of the Apple OSes done with a select_or wrapper, so users end up seeing the simple selection of just apple, linux, or windows, but we buried complexity elsewhere?
NixOS uses the Linux kernel, but that's where commonality with the
myriad Linux distributions out there stops. Like the different BSD's,
NixOS is sufficiently different that it warrants a constraint value.
In particular, no non-static binary has any chance of running on NixOS
unless it was specifically built for it, because the dynamic linker is
in a non-standard location. This means that toolchains downloaded as
part of host autoconfiguration that detect Linux (like
`go_register_toolchains()`) always fail on NixOS.
NixOS is a popular operating system used by thousands, one of the most
active projects on all of GitHub, and with more unique packages than
even Debian, Fedora or Gentoo according to https://repology.org/.
Copybara import of the project:
--
d74a52728a by Naren Dasan <naren@narendasan.com>:
Add QNX as a possible constraint value
Have been using bazel to compile for QNX, would like to see it as a constraint value.
END_PUBLIC
PiperOrigin-RevId: 278626573
Change-Id: If0c7ddbc8f5d26e4d9d43bf19933e901760d1564
*** Reason for rollback ***
Roll forward
*** Original change description ***
Automated rollback of commit e50397c444.
*** Reason for rollback ***
Breaks //third_party/arcore/unity/instant_preview/plugin/unity_plugin:unity_plugin_build_test_mac
[]
*** Original change description ***
Add Apple CPU and OS constraint values to bazel_platforms.
RELNOTES: None
PiperOrigin-RevId: 261704277
Change-Id: Id8a263c9258f448d402ae27cdf46576d6c7c8a49
*** Reason for rollback ***
Breaks //third_party/arcore/unity/instant_preview/plugin/unity_plugin:unity_plugin_build_test_mac
[]
*** Original change description ***
Add Apple CPU and OS constraint values to bazel_platforms.
RELNOTES: None
PiperOrigin-RevId: 260800549
Change-Id: I30f8caf94eb6fc9bd2fc37ce6c51b76dcd34e98e