1# TODO:
2# - combine binary and source tests
3# - filter builtInputs by builtin_ flags
4{
5 callPackage,
6 lib,
7 nix-update-script,
8 fetchzip,
9}:
10let
11 mkGodotPackages =
12 versionPrefix:
13 let
14 attrs = import (./. + "/${versionPrefix}/default.nix");
15 updateScript = [
16 ./update.sh
17 versionPrefix
18 (builtins.unsafeGetAttrPos "version" attrs).file
19 ];
20 in
21 lib.recurseIntoAttrs rec {
22 godot = callPackage ./common.nix {
23 inherit updateScript;
24 inherit (attrs)
25 version
26 hash
27 ;
28 inherit (attrs.default)
29 exportTemplatesHash
30 ;
31 };
32
33 godot-mono = godot.override {
34 withMono = true;
35 inherit (attrs.mono)
36 exportTemplatesHash
37 nugetDeps
38 ;
39 };
40
41 export-template = godot.export-template;
42 export-template-mono = godot-mono.export-template;
43
44 export-templates-bin = godot.export-templates-bin;
45 export-templates-mono-bin = godot-mono.export-templates-bin;
46 };
47in
48rec {
49 godot3 = callPackage ./3 { };
50 godot3-export-templates = callPackage ./3/export-templates.nix { };
51 godot3-headless = callPackage ./3/headless.nix { };
52 godot3-debug-server = callPackage ./3/debug-server.nix { };
53 godot3-server = callPackage ./3/server.nix { };
54 godot3-mono = callPackage ./3/mono { };
55 godot3-mono-export-templates = callPackage ./3/mono/export-templates.nix { };
56 godot3-mono-headless = callPackage ./3/mono/headless.nix { };
57 godot3-mono-debug-server = callPackage ./3/mono/debug-server.nix { };
58 godot3-mono-server = callPackage ./3/mono/server.nix { };
59
60 godotPackages_4_3 = mkGodotPackages "4.3";
61 godotPackages_4_4 = mkGodotPackages "4.4";
62 godotPackages_4 = godotPackages_4_4;
63 godotPackages = godotPackages_4;
64
65 godot_4_3 = godotPackages_4_3.godot;
66 godot_4_3-mono = godotPackages_4_3.godot-mono;
67 godot_4_3-export-templates-bin = godotPackages_4_3.export-templates-bin;
68 godot_4_4 = godotPackages_4_4.godot;
69 godot_4_4-mono = godotPackages_4_4.godot-mono;
70 godot_4_4-export-templates-bin = godotPackages_4_4.export-templates-bin;
71 godot_4 = godotPackages_4.godot;
72 godot_4-mono = godotPackages_4.godot-mono;
73 godot_4-export-templates-bin = godotPackages_4.export-templates-bin;
74 godot = godotPackages.godot;
75 godot-mono = godotPackages.godot-mono;
76 godot-export-templates-bin = godotPackages.export-templates-bin;
77}