{ inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; hs-bindgen.url = "github:well-typed/hs-bindgen"; }; outputs = { nixpkgs, hs-bindgen, self, ... }: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; 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 ]; 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 ''; }; }; }; }