diff options
Diffstat (limited to 'Biz/Bild/Builder.nix')
-rw-r--r-- | Biz/Bild/Builder.nix | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Biz/Bild/Builder.nix b/Biz/Bild/Builder.nix index 7ce29a2..2b62b89 100644 --- a/Biz/Bild/Builder.nix +++ b/Biz/Bild/Builder.nix @@ -19,6 +19,8 @@ with builtins; let srcs_ = (lib.strings.splitString " " srcs) ++ [main]; + isEmpty = x: x == null || x == []; + skip = ["_" ".direnv"]; filter = file: type: if elem (baseNameOf file) skip then false @@ -35,12 +37,12 @@ let src = lib.sources.cleanSourceWith {inherit filter; src = lib.sources.cleanSource root;}; langdeps_ = - if langdeps == null || langdeps == [] then + if isEmpty langdeps then [] else private.selectAttrs (lib.strings.splitString " " langdeps) private.${packageSet}; sysdeps_ = - if sysdeps == null || sysdeps == [] then + if isEmpty sysdeps then [] else private.selectAttrs (lib.strings.splitString " " sysdeps) private.nixpkgs.pkgs; @@ -53,7 +55,6 @@ in { buildPhase = compileLine; }; - haskell = stdenv.mkDerivation rec { inherit name src BIZ_ROOT postUnpack; buildInputs = sysdeps_ ++ [ @@ -65,6 +66,19 @@ in { buildPhase = compileLine; }; + c = stdenv.mkDerivation rec { + inherit name src BIZ_ROOT postUnpack; + buildInputs = langdeps_ ++ sysdeps_; + installPhase = "install -D ${name} $out/bin/${name}"; + buildPhase = lib.strings.concatStringsSep " " [ + compileLine + (if isEmpty langdeps then "" else + "$(pkg-config --cflags ${langdeps})") + (if isEmpty sysdeps then "" else + "$(pkg-config --libs ${sysdeps})") + ]; + }; + python = buildPythonApplication rec { inherit name src BIZ_ROOT postUnpack; propagatedBuildInputs = [ (private.pythonWith (_: langdeps_)) ] ++ sysdeps_; |