Files
hs-rgfw/flake.nix
2026-01-24 18:16:40 +01:00

85 lines
1.8 KiB
Nix

{
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.1.0";
package = {
# nix stuff
mkDerivation,
lib,
# haskell deps
base,
c-expr-runtime,
hs-bindgen-runtime,
# pkgconfig deps
libGL,
libX11,
libXcursor,
libXi,
xrandr,
# shell deps
hs-bindgen-cli,
}:
mkDerivation {
pname = "hs-rgfw";
inherit version;
src = ./.;
libraryHaskellDepends = [
base
c-expr-runtime
hs-bindgen-runtime
];
libraryPkgconfigDepends = [
libGL
libX11
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.gpl3Only;
platforms = ["x86_64-linux"];
};
system = "x86_64-linux";
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 {};
};
};
}