]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - default.nix
Merge branch 'packer/cached-converter' into 'master'
[xonotic/xonotic.git] / default.nix
index 6948512715643d3ac598cd88230bd914bf1ab2cd..c523b5693d39f57b4d90b7bba9a917618befd2f2 100644 (file)
@@ -1,154 +1,2 @@
-# nix-shell -A shell
-# --argstr cc clang
-{
-    nixpkgs ? <nixpkgs>,
-    pkgs ? (import nixpkgs) {},
-    cc ? null
-}:
-with pkgs;
-let
-    VERSION = "0.8.2";
-    targets = rec {
-        xonotic = mkDerivation { pki = true; dp = true; data = true; } rec {
-            name = "xonotic-${version}";
-            version = VERSION;
-
-            src = lib.sourceFilesBySuffices ./. [
-                ".txt" ".cmake" ".in"
-                ".c" ".cpp" ".h"
-                ".inc" ".def"
-                ".qc" ".qh"
-                ".sh"
-            ];
-
-            env = {
-                QCC = "${gmqcc}/gmqcc";
-            };
-
-            nativeBuildInputs = [
-                cmake   # for building
-                git     # for versioning
-                # unzip # for downloading maps
-            ];
-
-            cmakeFlags = [
-                "-DDOWNLOAD_MAPS=0"
-            ];
-
-            buildInputs = [
-                openssl # for d0_blind_id
-                SDL2    # for darkplaces
-            ];
-
-            runtimeInputs = [
-                zlib
-                curl
-
-                libjpeg
-                libpng
-
-                freetype
-
-                libogg
-                libtheora
-                libvorbis
-            ];
-
-            installPhase = ''
-                mkdir $out
-
-                exe=darkplaces/darkplaces
-                rpath=$(patchelf --print-rpath $exe)
-                rpath_firstparty=$out/d0_blind_id
-                rpath_thirdparty=${lib.makeLibraryPath runtimeInputs}
-                rpath=''${rpath:+$rpath:}$rpath_firstparty:$rpath_thirdparty
-                patchelf --set-rpath $rpath $exe
-
-                cp -r . $out
-            '';
-
-            dontPatchELF = true;
-        };
-
-        gmqcc = mkDerivation { qcc = true; } rec {
-            name = "gmqcc-${version}";
-            version = "xonotic-${VERSION}";
-
-            src = ./gmqcc;
-
-            installPhase = ''
-                mkdir $out
-                cp -r . $out
-            '';
-        };
-
-        netradiant = mkDerivation { radiant = true; } rec {
-            name = "netradiant-${version}";
-            version = VERSION;
-
-            src = ./netradiant;
-
-            nativeBuildInputs = [
-                cmake   # for building
-                git     # for versioning
-            ];
-
-            cmakeFlags = [
-                "-DDOWNLOAD_MAPS=0"
-            ];
-
-            buildInputs = [
-                pkgconfig
-                glib
-                pcre
-                libxml2
-                ncurses
-                libjpeg
-                libpng
-                minizip
-
-                mesa
-
-                xorg.libXt
-                xorg.libXmu
-                xorg.libSM
-                xorg.libICE
-                xorg.libpthreadstubs
-                xorg.libXdmcp
-
-                gnome3.gtk
-                gnome2.gtk
-                gnome2.gtkglext
-            ];
-        };
-    };
-    stdenv = if (cc != null) then overrideCC pkgs.stdenv pkgs."${cc}" else pkgs.stdenv;
-    mkEnableTargets = args: {
-        XON_NO_PKI = !args?pki;
-        XON_NO_DP = !args?dp;
-        XON_NO_DATA = !args?data;
-        XON_NO_QCC = !args?qcc;
-        XON_NO_RADIANT = !args?radiant;
-    };
-    mkDerivation = targets: {env ? {}, shellHook ? "", runtimeInputs ? [], ...}@args:
-        stdenv.mkDerivation (
-            (mkEnableTargets targets)
-            // { enableParallelBuilding = true; }
-            // (removeAttrs args ["env" "shellHook" "runtimeInputs"])  # passthru
-            // env
-            // {
-                shellHook = ''
-                    ${shellHook}
-                    ${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "export ${n}=${v}") env)}
-                    export LD_LIBRARY_PATH=''${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}${lib.makeLibraryPath runtimeInputs}
-                '';
-            }
-        );
-    shell = let inputs = (lib.mapAttrsToList (n: v: v) targets); in stdenv.mkDerivation (rec {
-        name = "xon-shell";
-        XON_NO_DAEMON = true;
-        nativeBuildInputs = builtins.map (it: it.nativeBuildInputs) inputs;
-        buildInputs = builtins.map (it: it.buildInputs) inputs;
-        shellHook = builtins.map (it: it.shellHook) (builtins.filter (it: it?shellHook) inputs);
-    });
-in { inherit shell; } // targets
+{ pkgs ? import <nixpkgs> {}, cc ? null }@args:
+pkgs.callPackage ./derivation.nix args