flake: Make building variants easier

filtered
Simon Bruder 2023-05-20 11:20:03 +02:00
parent c263958d3b
commit 7dacccdbd0
1 changed files with 37 additions and 33 deletions

View File

@ -6,6 +6,7 @@
outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system:
let let
inherit (nixpkgs) lib;
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
mkNocheck = drv: drv.overrideAttrs (o: { mkNocheck = drv: drv.overrideAttrs (o: {
doCheck = false; doCheck = false;
@ -13,48 +14,51 @@
}); });
in in
{ {
packages = rec { packages = lib.foldAttrs lib.const { }
u01 = pkgs.callPackage (lib.flatten (lib.mapAttrsToList
({ stdenv, catch2_3, cmake }: stdenv.mkDerivation { (name: v: {
name = "ecg-u01"; "${name}" = v;
"${name}-nocheck" = mkNocheck v;
src = ./u01;
nativeBuildInputs = [ cmake ];
checkInputs = [ catch2_3 ];
doCheck = true;
}) })
{ }; rec {
u01 = pkgs.callPackage
({ stdenv, catch2_3, cmake }: stdenv.mkDerivation {
name = "ecg-u01";
u02 = pkgs.callPackage src = ./u01;
({ stdenv, catch2_3, cmake, freeglut, libGL, libGLU }: stdenv.mkDerivation {
name = "ecg-u02";
src = ./u02; nativeBuildInputs = [ cmake ];
checkInputs = [ catch2_3 ];
nativeBuildInputs = [ cmake ]; doCheck = true;
buildInputs = [ freeglut libGL libGLU ]; })
checkInputs = [ catch2_3 ]; { };
doCheck = true; u02 = pkgs.callPackage
}) ({ stdenv, catch2_3, cmake, freeglut, libGL, libGLU }: stdenv.mkDerivation {
{ }; name = "ecg-u02";
u03 = pkgs.callPackage src = ./u02;
({ stdenv, cmake, freeglut, libGL, libGLU }: stdenv.mkDerivation {
name = "ecg-u03";
src = ./u03; nativeBuildInputs = [ cmake ];
buildInputs = [ freeglut libGL libGLU ];
checkInputs = [ catch2_3 ];
nativeBuildInputs = [ cmake ]; doCheck = true;
buildInputs = [ freeglut libGL libGLU ]; })
}) { };
{ };
u01-nocheck = mkNocheck u01; u03 = pkgs.callPackage
u02-nocheck = mkNocheck u02; ({ stdenv, cmake, freeglut, libGL, libGLU }: stdenv.mkDerivation {
}; name = "ecg-u03";
src = ./u03;
nativeBuildInputs = [ cmake ];
buildInputs = [ freeglut libGL libGLU ];
})
{ };
}));
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [ catch2_3 cmake freeglut libGL libGLU reuse ]; nativeBuildInputs = with pkgs; [ catch2_3 cmake freeglut libGL libGLU reuse ];