From e43fee27014ea3f1225656079ee63b18bb12af3e Mon Sep 17 00:00:00 2001 From: Wolfgang Thaller Date: Sat, 30 Dec 2023 15:20:35 +0100 Subject: [PATCH] move `standalone` nix build experiments to separate module --- flake.nix | 23 +++-------------------- nix/standalone.nix | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 nix/standalone.nix diff --git a/flake.nix b/flake.nix index 0a047c5c87..7922234d5b 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,9 @@ outputs = inputs@{ flake-parts, nixpkgs, multiversal, ... }: flake-parts.lib.mkFlake { inherit inputs; } ({ self, lib, retroPlatforms, ... }: { + imports = [ + ./nix/standalone.nix + ]; _module.args.lib = import (nixpkgs + "/lib"); _module.args.retroPlatforms = import ./nix/platforms.nix; @@ -55,26 +58,6 @@ tools = pkgs.retro68.tools; hfsutils = pkgs.retro68.hfsutils; - default = pkgs.runCommand "Retro68" { } '' - mkdir $out - mkdir $out/m68k-apple-macos - mkdir $out/powerpc-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos - ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out - ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out - ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out - ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out - ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out - - ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out - ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out - ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out - ''; samples = pkgs.linkFarm "Retro68-Samples" [ { name = "m68k"; path = self'.legacyPackages.pkgsCross.m68k.retro68.samples; } diff --git a/nix/standalone.nix b/nix/standalone.nix new file mode 100644 index 0000000000..2f8702eea1 --- /dev/null +++ b/nix/standalone.nix @@ -0,0 +1,36 @@ +# flake part to add a 'standalone' build of retro68 for all archs, +# i.e. a build that does not rely on nixpkgs's wrapper setup. +# this might be what should be put into a docker image. + +# Warning: does not yet work. + +{ ... }: { + perSystem = { self', pkgs, ... }: { + packages.standalone = pkgs.runCommand "Retro68" { } '' + mkdir -p $out/m68k-apple-macos/cmake + mkdir -p $out/powerpc-apple-macos/cmake + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos + ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out + ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out + ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out + ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out + ${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out + + ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out + ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out + ${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out + + substitute ${../cmake/retro68.toolchain.cmake.in} $out/m68k-apple-macos/cmake/retro68.toolchain.cmake --subst-var-by RETRO68_ROOT $out + substitute ${../cmake/retroppc.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retroppc.toolchain.cmake --subst-var-by RETRO68_ROOT $out + substitute ${../cmake/retrocarbon.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retrocarbon.toolchain.cmake --subst-var-by RETRO68_ROOT $out + cp ${../cmake/add_application.cmake} $out/m68k-apple-macos/cmake/add_application.cmake + cp -r ${../cmake/Platform} $out/m68k-apple-macos/cmake/Platform + cp -r ${../cmake/Platform} $out/powerpc-apple-macos/cmake/Platform + ''; + }; +}