From c262e612e1fe940cbadb225d163de43a59713a11 Mon Sep 17 00:00:00 2001 From: xecarlox94 Date: Sat, 24 May 2025 16:53:01 +0100 Subject: [PATCH] preparing overlays for build system --- flake.lock | 16 ++-------- flake.nix | 74 +++++++++++++++++++++++++++---------------- nix/overlays/main.nix | 1 + 3 files changed, 50 insertions(+), 41 deletions(-) create mode 100644 nix/overlays/main.nix diff --git a/flake.lock b/flake.lock index 9af112d..0f947f8 100644 --- a/flake.lock +++ b/flake.lock @@ -57,24 +57,14 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 0, - "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", - "path": "/nix/store/wj2qla569hnxwqfc26imv5hqbxc1rc27-source", - "type": "path" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "p2prc-hs": { "inputs": { "flake-utils": [ "flake-utils" ], - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1, diff --git a/flake.nix b/flake.nix index d9b5b0a..2a6bd21 100644 --- a/flake.nix +++ b/flake.nix @@ -14,43 +14,61 @@ p2prc-hs = { url = "path:./Bindings/Haskell"; + inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; }; }; - outputs = { self, nixpkgs, flake-utils, gomod2nix, p2prc-hs, ... }: - (flake-utils.lib.eachDefaultSystem - (system: - let - pkgs = import nixpkgs { - inherit system; - overlays = [ gomod2nix.overlays.default ]; - }; + outputs = + { + nixpkgs, + flake-utils, + gomod2nix, + p2prc-hs, + ... + }: + let - # The current default sdk for macOS fails to compile go projects, so we use a newer one for now. - # This has no effect on other platforms. - callPackage = pkgs.darwin.apple_sdk_11_0.callPackage or pkgs.callPackage; - in - { + getOverlay = overlayName: import ./nix/overlays/${overlayName}; - packages.default = callPackage ./. { }; + mainOverlay = getOverlay "main.nix"; - packages.p2prc-hs = pkgs.haskellPackages.callPackage ./Bindings/Haskell/project.nix {}; + in + { + overlays.default = mainOverlay; + } // + (flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ gomod2nix.overlays.default mainOverlay ]; + }; - devShells.default = pkgs.mkShell { - buildInputs = with pkgs; [ - go - gopls - gotools - go-tools - gomod2nix.packages.${system}.default - sqlite-interactive - ]; - }; + # The current default sdk for macOS fails to compile go projects, so we use a newer one for now. + # This has no effect on other platforms. + callPackage = pkgs.darwin.apple_sdk_11_0.callPackage or pkgs.callPackage; + in + { - devShells.p2prc-hs = p2prc-hs.devShell.${system}; + packages.default = callPackage ./. { }; - }) - ); + packages.p2prc-hs = pkgs.haskellPackages.callPackage ./Bindings/Haskell/project.nix { }; + + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + go + gopls + gotools + go-tools + gomod2nix.packages.${system}.default + sqlite-interactive + ]; + }; + + devShells.p2prc-hs = p2prc-hs.devShell.${system}; + + } + )); } diff --git a/nix/overlays/main.nix b/nix/overlays/main.nix new file mode 100644 index 0000000..0e2fe68 --- /dev/null +++ b/nix/overlays/main.nix @@ -0,0 +1 @@ +final: prev: {}