diff options
| author | jakka <jakka@jakka.su> | 2026-05-13 20:18:49 +0300 |
|---|---|---|
| committer | jakka <jakka@jakka.su> | 2026-05-13 20:18:49 +0300 |
| commit | 8686bd5c97de81a3b4da2266fc1c3c12a5ee16a0 (patch) | |
| tree | 2d9ab1927b6033393fde4580579f10e140dfeb21 /flake.nix | |
| parent | 2d80cfc8e1ac68ebe924f636c2d7ce516d9bd004 (diff) | |
set up flake with flake parts
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 144 |
1 files changed, 105 insertions, 39 deletions
@@ -1,52 +1,118 @@ { inputs = { - flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; naersk = { url = "github:nix-community/naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + treefmt-nix = { + url = "github:numtide/treefmt-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + flake-parts.url = "github:hercules-ci/flake-parts"; }; - outputs = - { - flake-utils, - naersk, - nixpkgs, - ... - }: - flake-utils.lib.eachDefaultSystem ( - system: - let - pkgs = (import nixpkgs) { inherit system; }; - - naersk' = pkgs.callPackage naersk { }; - - in + inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } ( + top@{ config, ... }: { - # For `nix build` & `nix run`: - packages.default = naersk'.buildPackage { - src = ./.; - nativeBuildInputs = with pkgs; [ - cmake - flac - sqlite - ]; - }; + imports = [ inputs.treefmt-nix.flakeModule ]; + systems = [ + "aarch64-darwin" + "aarch64-linux" + "x86_64-darwin" + "x86_64-linux" + ]; + perSystem = + { pkgs, ... }: + let + naersk' = pkgs.callPackage inputs.naersk { }; + nativeBuildInputs' = with pkgs; [ + cargo + cmake + flac + rustc + sqlite + ]; + in + { + packages.default = naersk'.buildPackage { + src = ./.; + nativeBuildInputs = nativeBuildInputs'; + }; - # For `nix develop`: - devShell = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ - cargo - rustc - ]; - packages = with pkgs; [ - nixd - nixfmt - rust-analyzer - clippy - ]; - }; + devShells.default = pkgs.mkShell { + nativeBuildInputs = nativeBuildInputs'; + packages = with pkgs; [ + nixd + nixfmt + rust-analyzer + rustfmt + clippy + ]; + }; + + treefmt = { + projectRootFile = "flake.nix"; + programs = { + nixfmt.enable = true; + rustfmt.enable = true; + taplo.enable = true; + }; + }; + }; } ); } + +# outputs = +# { +# self, +# flake-utils, +# naersk, +# nixpkgs, +# treefmt-nix, +# ... +# }: +# flake-utils.lib.eachDefaultSystem ( +# system: +# let +# pkgs = (import nixpkgs) { inherit system; }; + +# naersk' = pkgs.callPackage naersk { }; + +# treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix; + +# in +# { +# # For `nix build` & `nix run`: +# packages.default = naersk'.buildPackage { +# src = ./.; +# nativeBuildInputs = with pkgs; [ +# cmake +# flac +# sqlite +# ]; +# }; + +# # For `nix develop`: +# devShells.${system}.default = pkgs.mkShell { +# nativeBuildInputs = with pkgs; [ +# cargo +# rustc +# ]; +# packages = with pkgs; [ +# nixd +# nixfmt +# rust-analyzer +# rustfmt +# clippy +# ]; +# }; +# formatter = treefmtEval.config.build.wrapper; +# checks = { +# formatting = treefmtEval.config.build.check self; +# }; +# } +# ); +# } |
