In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
When `vulkan-headers` detects `gcc-14` or above it enables c++ modules
support. But make-mased backend does not support it and fails as:
$ nix build --impure --expr 'with import ./. {}; vulkan-headers.override {stdenv = gcc14Stdenv; }' -L
CMake Error in CMakeLists.txt:
The target named "Vulkan-Module" has C++ sources that may use modules, but
modules are not supported by this generator:
Unix Makefiles
Modules are supported only by Ninja, Ninja Multi-Config, and Visual Studio
generators for VS 17.4 and newer. See the cmake-cxxmodules(7) manual for
details. Use the CMAKE_CXX_SCAN_FOR_MODULES variable to enable or disable
scanning.
Only the loader and the headers need to stay in sync, everything else is fine being mismatched,
and this way we're not stuck to the LunarG release cycles.
Updates
- vulkan-headers
- vulkan-loader
- vulkan-validation-layers
- vulkan-extension-layer
- vulkan-tools
- vulkan-tools-lunarg
Also adds some additional asserts for version matching to these packages
This fixes an assertion error in vulkan-loader on version == vulkan-headers.version:
assertion failed at /nix/store/ca66sbxzxlxlfpb579nxxnw97z2ql1gv-source/pkgs/development/libraries/vulkan-loader/default.nix:8:1
The sha256 for vulkan-headers and vulkan-tools are unchanged because
they were already set to the newer version. The correct version was
lost in the staging-next merge.