-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
64 lines (58 loc) · 2.17 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
description = "Flake for multiple decompiled/reimplemented games.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
systems.url = "github:nix-systems/default";
systems.flake = false;
systems-linux.url = "github:nix-systems/default-linux";
systems-linux.flake = false;
systems-x86_64-linux.url = "github:nix-systems/x86_64-linux";
systems-x86_64-linux.flake = false;
};
outputs = { self, systems, systems-linux, systems-x86_64-linux, ... } @inputs: let
helpers = import ./lib/helpers.nix { inherit inputs; };
inherit (helpers) mkPackages mkApps;
in {
packages = mkPackages [
{
systems = import systems;
packages = { pkgs, ... }: let inherit (pkgs) callPackage; in rec {
# Xash3D FWGS Engine - Half-Life reimplementation
hlsdk-portable = callPackage ./pkgs/hlsdk-portable {};
xash3d-fwgs = callPackage ./pkgs/xash3d-fwgs {
inherit hlsdk-portable;
};
# Zelda 64: Recompiled - Build tools
z64decompress = callPackage ./pkgs/z64decompress {};
n64recomp = callPackage ./pkgs/n64recomp {};
# Super Mario 64 PC port
sm64ex = sm64ex-us;
sm64ex-us = callPackage ./pkgs/sm64ex { baseRom = "us"; };
sm64ex-eu = callPackage ./pkgs/sm64ex { baseRom = "eu"; };
sm64ex-jp = callPackage ./pkgs/sm64ex { baseRom = "jp"; };
# Zelda 3
zelda3 = callPackage ./pkgs/snesrev/zelda3.nix {};
smw = callPackage ./pkgs/snesrev/smw.nix {};
sm = callPackage ./pkgs/snesrev/sm.nix {};
};
}
{
systems = import systems-linux;
packages = { pkgs, system }: {
# Zelda 64: Recompiled - Majora's Mask static recompilation
zelda64recompiled = pkgs.callPackage ./pkgs/zelda64recompiled {
inherit (self.packages."${system}") z64decompress n64recomp;
};
};
}
{
systems = import systems-x86_64-linux;
packages = { pkgs, ... }: {
# Perfect Dark
perfect-dark = pkgs.callPackage ./pkgs/perfect-dark {};
};
}
];
apps = mkApps self.packages;
};
}