diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 61 |
1 files changed, 60 insertions, 1 deletions
@@ -5,9 +5,68 @@ outputs = {nixpkgs, ...}: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; + debugGhcOptions = pkgs.lib.concatStringsSep " " (debugGhcFlags ++ commonGhcFlags); + debugGhcFlags = [ + "-O0" + "-Wall" + "-Widentities" + "-Wincomplete-record-updates" + "-Wincomplete-uni-patterns" + # "-Wmissing-export-lists" + "-Wmissing-home-modules" + "-Wpartial-fields" + "-Wredundant-constraints" + "-threaded" + "-rtsopts" + "-with-rtsopts=-N" + "-main-is Game" + ]; + haddockOptions = pkgs.lib.concatStringsSep " " haddockFlags; + haddockFlags = [ + "--html" + "--odir docs" + "--optghc=-i./src" + "src/Game.hs" + ]; + releaseGhcOptions = pkgs.lib.concatStringsSep " " (releaseGhcFlags ++ commonGhcFlags); + releaseGhcFlags = [ + "-O2" + "-threaded" + "-rtsopts" + "-with-rtsopts=-N" + "-main-is Game" + ]; + noHaddockOptions = ""; + commonGhcFlags = [ + "-i./src" + ]; + ghcPackages = p: [ + p.GLFW-b + p.linear + p.OpenGL + ]; in { packages.${system} = { - default = pkgs.callPackage ./package.nix {}; + debug = pkgs.callPackage ./package.nix { + ghcOptions = debugGhcOptions; + haddockOptions = noHaddockOptions; + inherit ghcPackages; + }; + release = pkgs.callPackage ./package.nix { + ghcOptions = releaseGhcOptions; + haddockOptions = noHaddockOptions; + inherit ghcPackages; + }; + docs = pkgs.callPackage ./package.nix { + ghcOptions = "--version"; + inherit haddockOptions; + inherit ghcPackages; + }; + default = pkgs.callPackage ./package.nix { + ghcOptions = releaseGhcOptions; + inherit haddockOptions; + inherit ghcPackages; + }; }; }; } |
