trying to make nix expressions
This commit is contained in:
parent
bda77139a8
commit
94cc683134
4 changed files with 79 additions and 1 deletions
21
default.nix
Normal file
21
default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ compiler ? "ghc822" }:
|
||||||
|
let
|
||||||
|
config = {
|
||||||
|
packageOverrides = pkgs: with pkgs.haskell.lib; {
|
||||||
|
haskell = pkgs.haskell // {
|
||||||
|
packages = pkgs.haskell.packages // {
|
||||||
|
${compiler} = pkgs.haskell.packages.${compiler}.override {
|
||||||
|
overrides = self: super: rec {
|
||||||
|
nanovg =
|
||||||
|
buildStrictly (self.callPackage ../nanovg-hs/nanovg.nix {});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> { inherit config; };
|
||||||
|
nanovg = pkgs.haskell.packages.${compiler}.nanovg;
|
||||||
|
in { inherit nanovg; }
|
|
@ -51,7 +51,8 @@ executable haskelloids
|
||||||
-- .hs or .lhs file containing the Main module.
|
-- .hs or .lhs file containing the Main module.
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
extra-libraries: GLEW
|
extra-libraries: GLEW
|
||||||
|
pkgconfig-depends: glew
|
||||||
|
|
||||||
-- Modules included in this executable, other than Main.
|
-- Modules included in this executable, other than Main.
|
||||||
other-modules: Types
|
other-modules: Types
|
||||||
|
|
17
haskelloids.nix
Normal file
17
haskelloids.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ mkDerivation, affection, base, containers, glew, linear
|
||||||
|
, nanovg, OpenGL, random, sdl2, stdenv, stm
|
||||||
|
}:
|
||||||
|
mkDerivation {
|
||||||
|
pname = "haskelloids";
|
||||||
|
version = "0.0.0.1";
|
||||||
|
src = ./.;
|
||||||
|
isLibrary = false;
|
||||||
|
isExecutable = true;
|
||||||
|
executableHaskellDepends = [
|
||||||
|
affection base containers linear nanovg OpenGL random sdl2 stm
|
||||||
|
];
|
||||||
|
executableSystemDepends = [ glew ];
|
||||||
|
executablePkgconfigDepends = [ glew sdl2 ];
|
||||||
|
description = "A little game using Affection";
|
||||||
|
license = stdenv.lib.licenses.gpl3;
|
||||||
|
}
|
39
shell.nix
Normal file
39
shell.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{ nixpkgs ? import <nixpkgs> {}
|
||||||
|
, compiler ? "default"
|
||||||
|
, doBenchmark ? false
|
||||||
|
, nanovg
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
inherit (nixpkgs) pkgs;
|
||||||
|
|
||||||
|
f = { mkDerivation, affection, base, containers, glew
|
||||||
|
, linear, nanovg, OpenGL, random, sdl2, stdenv, stm
|
||||||
|
}:
|
||||||
|
mkDerivation {
|
||||||
|
pname = "haskelloids";
|
||||||
|
version = "0.0.0.1";
|
||||||
|
src = ./.;
|
||||||
|
isLibrary = false;
|
||||||
|
isExecutable = true;
|
||||||
|
executableHaskellDepends = [
|
||||||
|
affection base containers linear nanovg OpenGL random sdl2 stm
|
||||||
|
];
|
||||||
|
executableSystemDepends = [ glew ];
|
||||||
|
executablePkgconfigDepends = [ glew ];
|
||||||
|
description = "A little game using Affection";
|
||||||
|
license = stdenv.lib.licenses.gpl3;
|
||||||
|
};
|
||||||
|
|
||||||
|
haskellPackages = if compiler == "default"
|
||||||
|
then pkgs.haskellPackages
|
||||||
|
else pkgs.haskell.packages.${compiler};
|
||||||
|
|
||||||
|
variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;
|
||||||
|
|
||||||
|
drv = variant (haskellPackages.callPackage f {});
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
if pkgs.lib.inNixShell then drv.env else drv
|
Loading…
Reference in a new issue