diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 56 |
1 files changed, 38 insertions, 18 deletions
@@ -1,25 +1,32 @@ { inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; + hs-bindgen.url = "github:well-typed/hs-bindgen/fd74e8fa4216eccd67069ec9d8637b57000ffc83"; self.submodules = true; }; outputs = { nixpkgs, + hs-bindgen, self, ... }: let - version = "0.2.2"; + version = "0.1.0"; package = { + # nix stuff mkDerivation, - base, - bindings-DSL, - gl, lib, + # haskell deps + base, + c-expr-runtime, + hs-bindgen-runtime, + # pkgconfig deps libGL, libX11, - xcursor, - xi, + libXcursor, + libXi, xrandr, + # shell deps + hs-bindgen-cli, }: mkDerivation { pname = "hs-rgfw"; @@ -27,38 +34,51 @@ src = ./.; libraryHaskellDepends = [ base - bindings-DSL + c-expr-runtime + hs-bindgen-runtime ]; libraryPkgconfigDepends = [ - gl libGL libX11 - xcursor - xi + libXcursor + libXi xrandr ]; + preBuild = '' + set -x + export PATH=${hs-bindgen-cli}/bin:$PATH + ./generate.sh + set +x + ''; homepage = "https://git.mtgmonkey.net/Andromeda/hs-rgfw"; - license = lib.licenses.bsd3; + license = lib.licenses.gpl3Only; platforms = ["x86_64-linux"]; }; system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; - in { - packages.${system} = { - default = pkgs.haskellPackages.callPackage package { - xcursor = pkgs.xorg.libXcursor; - xi = pkgs.xorg.libXi; - }; + pkgs = import nixpkgs { + inherit system; + overlays = [ + hs-bindgen.overlays.libclangBindings + hs-bindgen.overlays.hsBindgen + ]; }; + in { devShells.${system} = { default = pkgs.mkShell { + stdenv = pkgs.clangStdenv; packages = [ + pkgs.clang pkgs.cabal-install + pkgs.hs-bindgen-cli + pkgs.hsBindgenHook ]; inputsFrom = [ self.packages.${system}.default ]; }; }; + packages.${system} = { + default = pkgs.haskellPackages.callPackage package {}; + }; }; } |
