Loading pkgs/by-name/ha/hare/package.nix +81 −64 Original line number Diff line number Diff line { lib , stdenv , fetchFromSourcehut , binutils-unwrapped , harec , makeWrapper , qbe , gitUpdater , scdoc , tzdata , substituteAll , fetchpatch , callPackage , enableCrossCompilation ? (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.is64bit) , pkgsCross , x86_64PkgsCrossToolchain ? pkgsCross.gnu64 , aarch64PkgsCrossToolchain ? pkgsCross.aarch64-multiplatform , riscv64PkgsCrossToolchain ? pkgsCross.riscv64 { lib, stdenv, fetchFromSourcehut, binutils-unwrapped, harec, makeWrapper, qbe, gitUpdater, scdoc, tzdata, substituteAll, fetchpatch, callPackage, enableCrossCompilation ? (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.is64bit), pkgsCross, x86_64PkgsCrossToolchain ? pkgsCross.gnu64, aarch64PkgsCrossToolchain ? pkgsCross.aarch64-multiplatform, riscv64PkgsCrossToolchain ? pkgsCross.riscv64, }: # There's no support for `aarch64` or `riscv64` for freebsd nor for openbsd on nix. # See `lib.systems.doubles.aarch64` and `lib.systems.doubles.riscv64`. assert let assert let inherit (stdenv.hostPlatform) isLinux is64bit; inherit (lib) intersectLists platforms concatStringsSep; workingPlatforms = intersectLists platforms.linux (with platforms; x86_64 ++ aarch64 ++ riscv64); Loading @@ -33,21 +35,27 @@ in let arch = stdenv.hostPlatform.uname.processor; qbePlatform = { qbePlatform = { x86_64 = "amd64_sysv"; aarch64 = "arm64"; riscv64 = "rv64"; }.${arch}; } .${arch}; platform = lib.toLower stdenv.hostPlatform.uname.system; embeddedOnBinaryTools = let genToolsFromToolchain = toolchain: genToolsFromToolchain = toolchain: let crossTargetPrefix = toolchain.stdenv.cc.targetPrefix; toolchainArch = toolchain.stdenv.hostPlatform.uname.processor; absOrRelPath = toolDrv: toolBasename: if arch == toolchainArch then toolBasename else lib.getExe' toolDrv "${crossTargetPrefix}${toolBasename}"; absOrRelPath = toolDrv: toolBasename: if arch == toolchainArch then toolBasename else lib.getExe' toolDrv "${crossTargetPrefix}${toolBasename}"; in { "ld" = absOrRelPath toolchain.buildPackages.binutils "ld"; Loading @@ -65,7 +73,10 @@ stdenv.mkDerivation (finalAttrs: { pname = "hare"; version = "0.24.0"; outputs = [ "out" "man" ]; outputs = [ "out" "man" ]; src = fetchFromSourcehut { owner = "~sircmpwn"; Loading Loading @@ -104,7 +115,8 @@ stdenv.mkDerivation (finalAttrs: { tzdata ]; makeFlags = [ makeFlags = [ "HARECACHE=.harecache" "PREFIX=${builtins.placeholder "out"}" "ARCH=${arch}" Loading @@ -116,7 +128,8 @@ stdenv.mkDerivation (finalAttrs: { # Strip the variable of an empty $(SRCDIR)/hare/third-party, since nix does # not follow the FHS. "HAREPATH=$(SRCDIR)/hare/stdlib" ] ++ lib.optionals enableCrossCompilation [ ] ++ lib.optionals enableCrossCompilation [ "RISCV64_AS=${embeddedOnBinaryTools.riscv64.as}" "RISCV64_CC=${embeddedOnBinaryTools.riscv64.cc}" "RISCV64_LD=${embeddedOnBinaryTools.riscv64.ld}" Loading @@ -143,7 +156,13 @@ stdenv.mkDerivation (finalAttrs: { postFixup = '' wrapProgram $out/bin/hare \ --prefix PATH : ${lib.makeBinPath [binutils-unwrapped harec qbe]} --prefix PATH : ${ lib.makeBinPath [ binutils-unwrapped harec qbe ] } ''; setupHook = ./setup-hook.sh; Loading @@ -151,9 +170,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = gitUpdater { }; tests = lib.optionalAttrs enableCrossCompilation { crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; }; crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; }; }; }; Loading Loading
pkgs/by-name/ha/hare/package.nix +81 −64 Original line number Diff line number Diff line { lib , stdenv , fetchFromSourcehut , binutils-unwrapped , harec , makeWrapper , qbe , gitUpdater , scdoc , tzdata , substituteAll , fetchpatch , callPackage , enableCrossCompilation ? (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.is64bit) , pkgsCross , x86_64PkgsCrossToolchain ? pkgsCross.gnu64 , aarch64PkgsCrossToolchain ? pkgsCross.aarch64-multiplatform , riscv64PkgsCrossToolchain ? pkgsCross.riscv64 { lib, stdenv, fetchFromSourcehut, binutils-unwrapped, harec, makeWrapper, qbe, gitUpdater, scdoc, tzdata, substituteAll, fetchpatch, callPackage, enableCrossCompilation ? (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.is64bit), pkgsCross, x86_64PkgsCrossToolchain ? pkgsCross.gnu64, aarch64PkgsCrossToolchain ? pkgsCross.aarch64-multiplatform, riscv64PkgsCrossToolchain ? pkgsCross.riscv64, }: # There's no support for `aarch64` or `riscv64` for freebsd nor for openbsd on nix. # See `lib.systems.doubles.aarch64` and `lib.systems.doubles.riscv64`. assert let assert let inherit (stdenv.hostPlatform) isLinux is64bit; inherit (lib) intersectLists platforms concatStringsSep; workingPlatforms = intersectLists platforms.linux (with platforms; x86_64 ++ aarch64 ++ riscv64); Loading @@ -33,21 +35,27 @@ in let arch = stdenv.hostPlatform.uname.processor; qbePlatform = { qbePlatform = { x86_64 = "amd64_sysv"; aarch64 = "arm64"; riscv64 = "rv64"; }.${arch}; } .${arch}; platform = lib.toLower stdenv.hostPlatform.uname.system; embeddedOnBinaryTools = let genToolsFromToolchain = toolchain: genToolsFromToolchain = toolchain: let crossTargetPrefix = toolchain.stdenv.cc.targetPrefix; toolchainArch = toolchain.stdenv.hostPlatform.uname.processor; absOrRelPath = toolDrv: toolBasename: if arch == toolchainArch then toolBasename else lib.getExe' toolDrv "${crossTargetPrefix}${toolBasename}"; absOrRelPath = toolDrv: toolBasename: if arch == toolchainArch then toolBasename else lib.getExe' toolDrv "${crossTargetPrefix}${toolBasename}"; in { "ld" = absOrRelPath toolchain.buildPackages.binutils "ld"; Loading @@ -65,7 +73,10 @@ stdenv.mkDerivation (finalAttrs: { pname = "hare"; version = "0.24.0"; outputs = [ "out" "man" ]; outputs = [ "out" "man" ]; src = fetchFromSourcehut { owner = "~sircmpwn"; Loading Loading @@ -104,7 +115,8 @@ stdenv.mkDerivation (finalAttrs: { tzdata ]; makeFlags = [ makeFlags = [ "HARECACHE=.harecache" "PREFIX=${builtins.placeholder "out"}" "ARCH=${arch}" Loading @@ -116,7 +128,8 @@ stdenv.mkDerivation (finalAttrs: { # Strip the variable of an empty $(SRCDIR)/hare/third-party, since nix does # not follow the FHS. "HAREPATH=$(SRCDIR)/hare/stdlib" ] ++ lib.optionals enableCrossCompilation [ ] ++ lib.optionals enableCrossCompilation [ "RISCV64_AS=${embeddedOnBinaryTools.riscv64.as}" "RISCV64_CC=${embeddedOnBinaryTools.riscv64.cc}" "RISCV64_LD=${embeddedOnBinaryTools.riscv64.ld}" Loading @@ -143,7 +156,13 @@ stdenv.mkDerivation (finalAttrs: { postFixup = '' wrapProgram $out/bin/hare \ --prefix PATH : ${lib.makeBinPath [binutils-unwrapped harec qbe]} --prefix PATH : ${ lib.makeBinPath [ binutils-unwrapped harec qbe ] } ''; setupHook = ./setup-hook.sh; Loading @@ -151,9 +170,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = gitUpdater { }; tests = lib.optionalAttrs enableCrossCompilation { crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; }; crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; }; }; }; Loading