setup nix source formatter

This commit is contained in:
Wolfgang Thaller 2023-12-28 23:50:29 +01:00
parent 09e4e34c41
commit b6b30d2c10
5 changed files with 189 additions and 165 deletions

View File

@ -1,9 +1,12 @@
let sources = import ./nix/sources.nix;
in { system ? builtins.currentSystem, nixpkgs ? sources.nixpkgs
, multiversal_src ? if builtins.pathExists ./multiversal/make-multiverse.rb then
in { system ? builtins.currentSystem
, nixpkgs ? sources.nixpkgs
, multiversal_src ? if builtins.pathExists ./multiversal/make-multiverse.rb then
./multiversal
else
sources.multiversal, ... }:
else
sources.multiversal
, ...
}:
let
retroPlatforms = import nix/platforms.nix;
@ -22,17 +25,21 @@ let
overlays = [ overlay ];
};
crossPkgs = lib.mapAttrs (name: plat:
crossPkgs = lib.mapAttrs
(name: plat:
import nixpkgs {
inherit system;
overlays = [ overlay ];
crossSystem = plat;
config = { allowUnsupportedSystem = true; };
}) retroPlatforms;
})
retroPlatforms;
targetPkgs = lib.mapAttrs (name: cross: cross.buildPackages) crossPkgs;
shell = lib.mapAttrs (name: cross:
cross.mkShell {
shell = lib.mapAttrs
(name: cross:
cross.mkShell
{
nativeBuildInputs = with overlaidPkgs; [
retro68.hfsutils
retro68.tools
@ -40,12 +47,14 @@ let
gnumake
];
buildInputs = [ cross.retro68.console ];
} // cross) crossPkgs;
} // cross)
crossPkgs;
in builtins.trace
"Warning: Retro68's default.nix is deprecated and will disappear soon. Please use the flake instead."
(shell.m68k // shell // {
in
builtins.trace
"Warning: Retro68's default.nix is deprecated and will disappear soon. Please use the flake instead."
(shell.m68k // shell // {
inherit overlay;
inherit (overlaidPkgs) retro68;
targetPkg = targetPkgs;
})
})

View File

@ -18,6 +18,8 @@
{
_module.args.pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.default ]; };
formatter = pkgs.nixpkgs-fmt;
legacyPackages.pkgsCross = lib.mapAttrs
(name: plat:
import nixpkgs {
@ -52,7 +54,7 @@
tools = pkgs.retro68.tools;
hfsutils = pkgs.retro68.hfsutils;
default = pkgs.runCommand "Retro68" {} ''
default = pkgs.runCommand "Retro68" { } ''
mkdir $out
mkdir $out/m68k-apple-macos
mkdir $out/powerpc-apple-macos
@ -86,7 +88,8 @@
overlays.default =
lib.composeManyExtensions [
((import nix/overlay.nix) {
multiversal_src = if builtins.pathExists ./multiversal/make-multiverse.rb
multiversal_src =
if builtins.pathExists ./multiversal/make-multiverse.rb
then ./multiversal
else multiversal;
})

View File

@ -75,11 +75,13 @@ pkgs: prevPkgs: {
++ stdenv.targetPlatform.retro68BinutilsConfig or [ ];
enableParallelBuilding = true;
postInstall = let
postInstall =
let
ld = "$out/bin/${stdenv.targetPlatform.config}-ld";
ld_real = "$out/bin/${stdenv.targetPlatform.config}-ld.real";
in ''
in
''
mv ${ld} ${ld_real}
echo "#!${stdenv.shell}" > ${ld}
@ -117,7 +119,7 @@ pkgs: prevPkgs: {
make -j$NIX_BUILD_CORES
make install
'';
env.CXXFLAGS="--std=c++14"; # gcc 9 doesn't seem to like C++17
env.CXXFLAGS = "--std=c++14"; # gcc 9 doesn't seem to like C++17
};
# binutils -- binutils with the wrappers provided by nixpkgs
@ -147,7 +149,8 @@ pkgs: prevPkgs: {
} // prevPkgs.lib.optionalAttrs (prevPkgs.hostPlatform ? retro68) {
setup_hook = let
setup_hook =
let
systemName = pkgs.targetPlatform.cmakeSystemName;
toolchain = pkgs.writeTextFile {
name = "retro68.cmake-toolchain";
@ -194,7 +197,8 @@ pkgs: prevPkgs: {
export RETRO68_REAL_LD="${pkgs.buildPackages.retro68.binutils_unwrapped}/bin/m68k-apple-macos-ld.real"
'');
};
in pkgs.makeSetupHook { name = "retro68.setup_hook"; } hook;
in
pkgs.makeSetupHook { name = "retro68.setup_hook"; } hook;
# ----------- Retro68 core libraries -------------
@ -221,7 +225,8 @@ pkgs: prevPkgs: {
import_libraries = with pkgs;
if stdenvNoCC.targetPlatform.system != "m68k-macos" then
stdenvNoCC.mkDerivation {
stdenvNoCC.mkDerivation
{
name = "retro68.import_libraries";
src = ../ImportLibraries;
buildCommand = ''
@ -243,7 +248,8 @@ pkgs: prevPkgs: {
set(CMAKE_CROSSCOMPILING TRUE)
'';
};
in (pkgs.stdenv.override {
in
(pkgs.stdenv.override {
cc = stdenv.cc.override { extraPackages = [ ]; };
}).mkDerivation {
name = "libretro";
@ -279,13 +285,15 @@ pkgs: prevPkgs: {
# binutils -- binutils with the wrappers provided by nixpkgs
# note: on nix/darwin (as of nixpkgs 23.11), nixpkgs seems to
# ignore (or re-override) this override.
binutils = if (prevPkgs.targetPlatform ? retro68) then
binutils =
if (prevPkgs.targetPlatform ? retro68) then
pkgs.retro68.binutils
else
prevPkgs.binutils;
# gcc -- gcc with the wrappers provided by nixpkgs
gcc = if (prevPkgs.targetPlatform ? retro68) then
gcc =
if (prevPkgs.targetPlatform ? retro68) then
pkgs.retro68.gcc
else
prevPkgs.gcc;

View File

@ -2,7 +2,8 @@ pkgs: prevPkgs: {
retro68 = prevPkgs.retro68.overrideScope' (self: prevRetro: {
samples = with pkgs;
let
individualSamples = lib.mapAttrs (key: path:
individualSamples = lib.mapAttrs
(key: path:
stdenv.mkDerivation {
name = "retro68.samples." + key;
src = path;
@ -13,7 +14,8 @@ pkgs: prevPkgs: {
cp *.bin $out/
rm -f $out/*.code.bin $out/*.rsrc.bin
'';
}) ({
})
({
dialog = ../Samples/Dialog;
helloworld = ../Samples/HelloWorld;
raytracer = ../Samples/Raytracer;
@ -26,7 +28,8 @@ pkgs: prevPkgs: {
systemextension = ../Samples/SystemExtension;
launcher = ../Samples/Launcher;
}) // { launchapplserver = self.launchapplserver; };
in runCommand "retro68.samples" { } ''
in
runCommand "retro68.samples" { } ''
mkdir -p $out/
${lib.concatMapStrings (x: ''

View File

@ -1,6 +1,7 @@
pkgs: prevPkgs:
{
retro68 = if !(prevPkgs.hostPlatform ? retro68) then
retro68 =
if !(prevPkgs.hostPlatform ? retro68) then
prevPkgs.retro68
else
prevPkgs.retro68.overrideScope' (self: prevRetro: {