init
This commit is contained in:
91
flake.nix
Normal file
91
flake.nix
Normal file
@@ -0,0 +1,91 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
|
||||
};
|
||||
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"
|
||||
]
|
||||
++ commonGhcFlags;
|
||||
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 Main"
|
||||
]
|
||||
++ commonGhcFlags;
|
||||
noHaddockOptions = "";
|
||||
commonGhcFlags = [
|
||||
"-i./src"
|
||||
"-threaded"
|
||||
"-rtsopts"
|
||||
"-with-rtsopts=-N"
|
||||
"-main-is Main"
|
||||
];
|
||||
ghcPackages = p: [
|
||||
];
|
||||
buildDeps = [
|
||||
pkgs.pkg-config
|
||||
pkgs.wayland-protocols
|
||||
pkgs.wayland-scanner
|
||||
|
||||
pkgs.egl-wayland
|
||||
pkgs.libGL
|
||||
pkgs.libxkbcommon
|
||||
pkgs.wayland
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.xorg.libXi
|
||||
pkgs.xorg.libXrandr
|
||||
];
|
||||
in {
|
||||
packages.${system} = {
|
||||
debug = pkgs.callPackage ./package.nix {
|
||||
ghcOptions = debugGhcOptions;
|
||||
haddockOptions = noHaddockOptions;
|
||||
inherit ghcPackages;
|
||||
inherit buildDeps;
|
||||
};
|
||||
release = pkgs.callPackage ./package.nix {
|
||||
ghcOptions = releaseGhcOptions;
|
||||
haddockOptions = noHaddockOptions;
|
||||
inherit ghcPackages;
|
||||
inherit buildDeps;
|
||||
};
|
||||
docs = pkgs.callPackage ./package.nix {
|
||||
ghcOptions = "--version";
|
||||
inherit haddockOptions;
|
||||
inherit ghcPackages;
|
||||
inherit buildDeps;
|
||||
};
|
||||
default = pkgs.callPackage ./package.nix {
|
||||
ghcOptions = releaseGhcOptions;
|
||||
inherit haddockOptions;
|
||||
inherit ghcPackages;
|
||||
inherit buildDeps;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user