Files
hs-game/package.nix
2025-12-08 05:57:20 +01:00

66 lines
1.3 KiB
Nix

{
haskellPackages,
lib,
stdenv,
...
}: let
ghcExeOptions = lib.concatStringsSep " " ghcFlags;
ghcFlags = [
"-O"
"-Wall"
"-Widentities"
"-Wincomplete-record-updates"
"-Wincomplete-uni-patterns"
# "-Wmissing-export-lists"
"-Wmissing-home-modules"
"-Wpartial-fields"
"-Wredundant-constraints"
"-threaded"
"-rtsopts"
"-with-rtsopts=-N"
# src
"-i./src"
"-main-is Game"
];
haddockOptions = lib.concatStringsSep " " haddockFlags;
haddockFlags = [
"--html"
"--odir docs"
"--optghc=-i./src"
"src/Game/Main.hs"
];
ghcPackages = p: [
p.GLFW-b
p.linear
p.OpenGL
];
in
stdenv.mkDerivation {
pname = "haskengl";
version = "0.1.0";
src = ./.;
nativeBuildInputs = [
(haskellPackages.ghcWithPackages ghcPackages)
];
buildInputs = [
];
configurePhase = ''
'';
buildPhase = ''
ghc ${ghcExeOptions} ./src/Game.hs -o ./Main
haddock ${haddockOptions}
'';
installPhase = ''
mkdir -p $out/bin
cp ./Main $out/bin/hs-game
cp ./docs $out/docs -r
'';
meta = {
homepage = "https://mtgmonkey.net";
license = lib.licenses.wtfpl;
mainProgram = "hs-game";
platforms = ["x86_64-linux"];
};
}