summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authormtgmonkey <mtgmonkey@nixos>2025-12-08 13:40:11 +0100
committermtgmonkey <mtgmonkey@nixos>2025-12-08 13:40:11 +0100
commit20ecde081bf47c7790e93dd2282d5e666e01b9ce (patch)
treee825e9091bbf3e169b9a86d4f545175cb99b3055 /flake.nix
parent852244a49159097a83fc99edcdad26f84f999098 (diff)
release v0.2.0
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix61
1 files changed, 60 insertions, 1 deletions
diff --git a/flake.nix b/flake.nix
index 6e93c4c..6468b28 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
+ };
};
};
}