mirror of
https://github.com/NixOS/nix.git
synced 2025-11-08 19:46:02 +01:00
Prior patches in54dc5314e8and6db6190002fixed the default system double for i686 and ppc/ppc64. This also patch also covers 32 bit arm and mips. ARM cpu names are taken from host_machine.cpu() for a lack of a better option, but host_machine.cpu_family() is preferred, since that is supposed to be somewhat standard for cross files. Endianness is handled correctly by looking at host_machine.endian(). This also updates the documentation to be up to date to how system cpu is translated from the host_machine specification.
19 lines
798 B
Meson
19 lines
798 B
Meson
# This attempts to translate meson cpu_family and cpu_name specified via
|
|
# --cross-file [1] into a nix *system double*. Nixpkgs mostly respects ([2]) the
|
|
# conventions outlined in [1].
|
|
#
|
|
# [1]: https://mesonbuild.com/Reference-tables.html#cpu-families
|
|
# [2]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/lib/meson.nix
|
|
|
|
nix_system_cpu = {'ppc64' : 'powerpc64', 'ppc' : 'powerpc', 'x86' : 'i686'}.get(
|
|
host_machine.cpu_family(),
|
|
host_machine.cpu_family(),
|
|
)
|
|
|
|
if (host_machine.cpu_family() in [ 'ppc64', 'ppc' ]) and host_machine.endian() == 'little'
|
|
nix_system_cpu += 'le'
|
|
elif host_machine.cpu_family() in [ 'mips64', 'mips' ] and host_machine.endian() == 'little'
|
|
nix_system_cpu += 'el'
|
|
elif host_machine.cpu_family() == 'arm'
|
|
nix_system_cpu = host_machine.cpu()
|
|
endif
|