summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix144
1 files changed, 105 insertions, 39 deletions
diff --git a/flake.nix b/flake.nix
index ca8a0ad..4583da1 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
+# };
+# }
+# );
+# }