summaryrefslogtreecommitdiff
path: root/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'package.nix')
-rw-r--r--package.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/package.nix b/package.nix
new file mode 100644
index 0000000..f9513ce
--- /dev/null
+++ b/package.nix
@@ -0,0 +1,65 @@
+{
+ 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/Main.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"];
+ };
+ }