From d63eb2b9d1aeef1d143bafd7706cd7ba45dc823d Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sun, 8 Dec 2024 21:57:59 +0100 Subject: [PATCH] restrict hydraJobs to systems x64-64-linux and aarch64-linux --- flake.nix | 129 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 71 insertions(+), 58 deletions(-) diff --git a/flake.nix b/flake.nix index a1cea4c..6f1d845 100644 --- a/flake.nix +++ b/flake.nix @@ -12,68 +12,81 @@ utils, naersk, }: - utils.lib.eachDefaultSystem ( - system: - let - pkgs = import nixpkgs { inherit system; }; - naersk-lib = pkgs.callPackage naersk { }; + let + packageOutputs = utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { inherit system; }; + naersk-lib = pkgs.callPackage naersk { }; - # Needed at compile time (on build system) - nativeBuildInputs = with pkgs; [ - gtk4 - cairo - glib - pkg-config - poppler - wrapGAppsHook - ]; - # Needed at runtime (on run system) - buildInputs = with pkgs; [ ]; - in - rec { - defaultPackage = naersk-lib.buildPackage { - src = ./.; - inherit buildInputs; - inherit nativeBuildInputs; + # Needed at compile time (on build system) + nativeBuildInputs = with pkgs; [ + gtk4 + cairo + glib + pkg-config + poppler + wrapGAppsHook + ]; + # Needed at runtime (on run system) + buildInputs = with pkgs; [ ]; + in + rec { + defaultPackage = naersk-lib.buildPackage { + src = ./.; + inherit buildInputs; + inherit nativeBuildInputs; - postInstall = '' - mkdir -p $out/share/applications - cp ${./music-reader.desktop} $out/share/applications/music-reader.desktop + postInstall = '' + mkdir -p $out/share/applications + cp ${./music-reader.desktop} $out/share/applications/music-reader.desktop - mkdir -p $out/share/icons - cp ${./music-reader.png} $out/share/icons/music-reader.png + mkdir -p $out/share/icons + cp ${./music-reader.png} $out/share/icons/music-reader.png - mkdir -p $out/share/glib-2.0/schemas - cp ${./de.frajul.music-reader.gschema.xml} $out/share/glib-2.0/schemas/de.frajul.music-reader.gschema.xml - glib-compile-schemas $out/share/glib-2.0/schemas/ - ''; - }; - devShell = - with pkgs; - mkShell { - buildInputs = [ - cargo - rustc - rustfmt - pre-commit - rustPackages.clippy - - gtk4 - cairo - glib - pkg-config - poppler - wrapGAppsHook - ]; - # Without inheriting nativeBuildinputs, cargo build will fail but that is good since we want to use only nix build - # inherit nativeBuildInputs; - - RUST_SRC_PATH = rustPlatform.rustLibSrc; + mkdir -p $out/share/glib-2.0/schemas + cp ${./de.frajul.music-reader.gschema.xml} $out/share/glib-2.0/schemas/de.frajul.music-reader.gschema.xml + glib-compile-schemas $out/share/glib-2.0/schemas/ + ''; }; + devShell = + with pkgs; + mkShell { + buildInputs = [ + cargo + rustc + rustfmt + pre-commit + rustPackages.clippy - hydraJobs = { - "music-reader" = defaultPackage; - }; - } - ); + gtk4 + cairo + glib + pkg-config + poppler + wrapGAppsHook + ]; + # Without inheriting nativeBuildinputs, cargo build will fail but that is good since we want to use only nix build + # inherit nativeBuildInputs; + + RUST_SRC_PATH = rustPlatform.rustLibSrc; + }; + + # Only create hydra jobs for some systems + # pkgs.lib.optionalAttrs (builtins.elem system ["x86_64-linux" "aarch64-linux"]) { + # hydraJobs = + # { + # "music-reader" = defaultPackage; + # }; + # }; + } + ); + in + packageOutputs + // { + hydraJobs = { + x86_64-linux.music-reader = packageOutputs.defaultPackage.x86_64-linux; + aarch64-linux.music-reader = packageOutputs.defaultPackage.aarch64-linux; + }; + }; }