IT'S ALIVE

This commit is contained in:
mtgmonkey
2025-12-16 17:11:10 +01:00
parent 0ef5d0590d
commit 9ee1bc6a7e
14 changed files with 18674 additions and 28108 deletions

View File

@@ -1,8 +1,8 @@
{
inputs = {
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
# hs-bindgen.url = "github:well-typed/hs-bindgen";
hs-bindgen.url = "github:well-typed/hs-bindgen/dom/1415/bug-report";
hs-bindgen.url = "github:well-typed/hs-bindgen/fd74e8fa4216eccd67069ec9d8637b57000ffc83";
self.submodules = true;
};
outputs = {
nixpkgs,
@@ -10,40 +10,68 @@
self,
...
}: let
version = "0.3.0";
package = {
mkDerivation,
base,
bindings-DSL,
c-expr-runtime,
gl,
hs-bindgen-runtime,
lib,
libGL,
libX11,
xcursor,
xi,
xrandr,
}:
mkDerivation {
pname = "hs-rgfw";
inherit version;
src = ./.;
libraryHaskellDepends = [
base
bindings-DSL
c-expr-runtime
hs-bindgen-runtime
];
libraryPkgconfigDepends = [
gl
libGL
libX11
xcursor
xi
xrandr
];
homepage = "https://git.mtgmonkey.net/Andromeda/hs-rgfw";
license = lib.licenses.bsd3;
platforms = ["x86_64-linux"];
};
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
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.pkg-config
pkgs.xorg.libX11
pkgs.xorg.libXcursor
pkgs.xorg.libXrandr
pkgs.xorg.libXi
pkgs.libGL
pkgs.clang
hs-bindgen.packages.${system}.default
pkgs.cabal-install
];
shellHook = ''
# template
# export BINDGEN_EXTRA_CLANG_ARGS="$BINDGEN_EXTRA_CLANG_ARGS "
# c flags from Nix
export BINDGEN_EXTRA_CLANG_ARGS="$BINDGEN_EXTRA_CLANG_ARGS $(cat ${pkgs.clang}/nix-support/cc-cflags) $(cat ${pkgs.clang}/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE"
# pkg-config for libraries
export BINDGEN_EXTRA_CLANG_ARGS="$BINDGEN_EXTRA_CLANG_ARGS $(pkg-config --cflags --libs x11 xrandr xcursor xi gl)"
# add local headers
export BINDGEN_EXTRA_CLANG_ARGS="$BINDGEN_EXTRA_CLANG_ARGS -isystem $PWD/lib"
# no global include
# export BINDGEN_BUILTIN_INCLUDE_DIR=disable
echo $BINDGEN_EXTRA_CLANG_ARGS
'';
inputsFrom = [
self.packages.${system}.default
];
};
};
packages.${system} = {
default = pkgs.haskellPackages.callPackage package {
xcursor = pkgs.xorg.libXcursor;
xi = pkgs.xorg.libXi;
};
};
};