refactor
This commit is contained in:
parent
f4cc382020
commit
7ef2f89307
43
flake.lock
43
flake.lock
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1712791164,
|
"lastModified": 1738680400,
|
||||||
"narHash": "sha256-3sbWO1mbpWsLepZGbWaMovSO7ndZeFqDSdX0hZ9nVyw=",
|
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1042fd8b148a9105f3c0aca3a6177fd1d9360ba5",
|
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -16,9 +16,44 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735554305,
|
||||||
|
"narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738680491,
|
||||||
|
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
110
flake.nix
110
flake.nix
|
@ -3,48 +3,84 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ nixpkgs, ... }:
|
outputs =
|
||||||
|
inputs@{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
treefmt-nix,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
# litex-overlay = final: prev: {
|
|
||||||
# pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
systems = [
|
||||||
# (python-final: python-prev: {
|
"x86_64-linux"
|
||||||
# litex = python-final.callPackage (import ./litex.nix) { };
|
"aarch64-linux"
|
||||||
# # can add more packages here!
|
"aarch64-darwin"
|
||||||
# })
|
"x86_64-darwin"
|
||||||
# ];
|
];
|
||||||
# };
|
forAllSystems =
|
||||||
litex-overlay = import ./litex;
|
function:
|
||||||
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
|
nixpkgs.lib.genAttrs systems (
|
||||||
forAllSystems = function:
|
system:
|
||||||
nixpkgs.lib.genAttrs systems (system: function (
|
function (
|
||||||
import nixpkgs {
|
import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [
|
overlays = [
|
||||||
litex-overlay
|
self.overlays.default
|
||||||
]; # patches, version pins, new pkgs here.
|
];
|
||||||
}
|
}
|
||||||
));
|
)
|
||||||
in {
|
);
|
||||||
|
litex-pkgs = import ./pkgs;
|
||||||
|
|
||||||
|
treefmtEval = forAllSystems (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
overlays.default = final: prev: {
|
||||||
|
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||||
|
(
|
||||||
|
python-final: python-prev:
|
||||||
|
builtins.mapAttrs (name: value: python-final.callPackage value { }) litex-pkgs
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
formatter = forAllSystems (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
||||||
|
|
||||||
|
checks = forAllSystems (pkgs: {
|
||||||
|
formatting = treefmtEval.${pkgs.system}.config.build.check self;
|
||||||
|
});
|
||||||
|
|
||||||
|
# this is mainly so that nix-update works. I have no idea if this works without it.
|
||||||
|
# use at your own peril.
|
||||||
|
packages = forAllSystems (
|
||||||
|
pkgs: builtins.mapAttrs (name: value: pkgs.python3Packages.callPackage value { }) litex-pkgs
|
||||||
|
);
|
||||||
|
|
||||||
|
# example, not really something you should import unless you want everything.
|
||||||
devShells = forAllSystems (pkgs: {
|
devShells = forAllSystems (pkgs: {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
(python3.withPackages (ps: with ps; [
|
(python3.withPackages (
|
||||||
cocotb
|
ps: with ps; [
|
||||||
cocotb-bus
|
cocotb
|
||||||
litex
|
cocotb-bus
|
||||||
litedram
|
litex
|
||||||
liteeth
|
litedram
|
||||||
litescope
|
liteeth
|
||||||
litespi
|
litescope
|
||||||
liteiclink
|
litespi
|
||||||
pythondata-cpu-vexriscv
|
liteiclink
|
||||||
pythondata-software-compiler_rt
|
pythondata-cpu-vexriscv
|
||||||
pythondata-software-picolibc
|
pythondata-software-compiler_rt
|
||||||
amaranth
|
pythondata-software-picolibc
|
||||||
]))
|
amaranth
|
||||||
|
]
|
||||||
|
))
|
||||||
yosys
|
yosys
|
||||||
nextpnr
|
nextpnr
|
||||||
# simulators
|
# simulators
|
||||||
|
@ -58,5 +94,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
# an overlay to
|
|
||||||
let
|
|
||||||
tag = "2023.12";
|
|
||||||
in final: prev: {
|
|
||||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
|
||||||
(python-final: python-prev: {
|
|
||||||
litex = python-final.callPackage(import ./litex.nix tag) { };
|
|
||||||
litedram = python-final.callPackage(import ./litedram.nix tag) { };
|
|
||||||
liteeth = python-final.callPackage(import ./liteeth.nix tag) { };
|
|
||||||
litescope = python-final.callPackage(import ./litescope.nix tag) { };
|
|
||||||
litespi = python-final.callPackage(import ./litespi.nix tag) { };
|
|
||||||
liteiclink = python-final.callPackage(import ./liteiclink.nix tag) { };
|
|
||||||
pythondata-cpu-vexriscv = python-final.callPackage(import ./pythondata-cpu-vexriscv.nix tag) { };
|
|
||||||
pythondata-software-compiler_rt = python-final.callPackage(import ./pythondata-software-compiler_rt.nix tag) { };
|
|
||||||
pythondata-software-picolibc = python-final.callPackage(import ./pythondata-software-picolibc.nix tag) { };
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
11
pkgs/default.nix
Normal file
11
pkgs/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
litex = import ./litex.nix;
|
||||||
|
litedram = import ./litedram.nix;
|
||||||
|
liteeth = import ./liteeth.nix;
|
||||||
|
litescope = import ./litescope.nix;
|
||||||
|
litespi = import ./litespi.nix;
|
||||||
|
liteiclink = import ./liteiclink.nix;
|
||||||
|
pythondata-cpu-vexriscv = import ./pythondata-cpu-vexriscv.nix;
|
||||||
|
pythondata-software-compiler_rt = import ./pythondata-software-compiler_rt.nix;
|
||||||
|
pythondata-software-picolibc = import ./pythondata-software-picolibc.nix;
|
||||||
|
}
|
|
@ -1,17 +1,18 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, lib
|
lib,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, migen
|
migen,
|
||||||
, pyyaml
|
pyyaml,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "litedram";
|
pname = "litedram";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "enjoy-digital";
|
owner = "enjoy-digital";
|
||||||
repo = "litedram";
|
repo = "litedram";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-EaUszy0v6r5sKM5d5YmpRbR8Cf9xITObU71zUpg9cLU=";
|
hash = "sha256-EaUszy0v6r5sKM5d5YmpRbR8Cf9xITObU71zUpg9cLU=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, lib
|
lib,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, migen
|
migen,
|
||||||
, setuptools
|
setuptools,
|
||||||
, litex
|
litex,
|
||||||
, pyyaml
|
pyyaml,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "liteeth";
|
pname = "liteeth";
|
||||||
version = "${tag}";
|
version = "2024.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "enjoy-digital";
|
owner = "enjoy-digital";
|
||||||
repo = "liteeth";
|
repo = "liteeth";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-DUNwDzcFLVmL5F/ZWmok7T7jO7ixC9IuDr1WUarnAqk=";
|
hash = "sha256-qyyw/NEI21o+lkm8q9vT7O9PLkTgObe/xZKeFvy/4/4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
|
@ -1,15 +1,16 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, litex
|
litex,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "liteiclink";
|
pname = "liteiclink";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "enjoy-digital";
|
owner = "enjoy-digital";
|
||||||
repo = "liteiclink";
|
repo = "liteiclink";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-5Hp5vFqmfkXo1q60FvOkToTy952svirChIPIvkam04M=";
|
hash = "sha256-5Hp5vFqmfkXo1q60FvOkToTy952svirChIPIvkam04M=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, lib
|
lib,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, migen
|
migen,
|
||||||
, setuptools
|
setuptools,
|
||||||
, litex
|
litex,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "litescope";
|
pname = "litescope";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "enjoy-digital";
|
owner = "enjoy-digital";
|
||||||
repo = "litescope";
|
repo = "litescope";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-OWC+XwB+BzlCQkPKJCbQ0W4T6JbsInldrn9jYYjWypM=";
|
hash = "sha256-OWC+XwB+BzlCQkPKJCbQ0W4T6JbsInldrn9jYYjWypM=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, lib
|
lib,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, migen
|
migen,
|
||||||
, setuptools
|
setuptools,
|
||||||
, litex
|
litex,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "litespi";
|
pname = "litespi";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "litex-hub";
|
owner = "litex-hub";
|
||||||
repo = "litespi";
|
repo = "litespi";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-XYeWokF1IGtZWRK+6jhRSN91MOV5vyh5aO08sbtFBxw=";
|
hash = "sha256-XYeWokF1IGtZWRK+6jhRSN91MOV5vyh5aO08sbtFBxw=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,21 +1,22 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, lib
|
lib,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
, pyserial
|
pyserial,
|
||||||
, migen
|
migen,
|
||||||
, requests
|
requests,
|
||||||
, packaging
|
packaging,
|
||||||
, pexpect
|
pexpect,
|
||||||
}: buildPythonPackage {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "litex";
|
pname = "litex";
|
||||||
version = "${tag}";
|
version = "2024.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "enjoy-digital";
|
owner = "enjoy-digital";
|
||||||
repo = "litex";
|
repo = "litex";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-OcwqYLQ7ec2vTewdIJqP/aTCJ4yI43OIOkTMD/hIKO0=";
|
hash = "sha256-T28kpdDstMHZtSlRrmA1JZ3lP2/3tfzEh58tU44ik7E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
|
@ -1,14 +1,15 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
}: buildPythonPackage rec {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "pythondata-cpu-vexriscv";
|
pname = "pythondata-cpu-vexriscv";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "litex-hub";
|
owner = "litex-hub";
|
||||||
repo = "pythondata-cpu-vexriscv";
|
repo = "pythondata-cpu-vexriscv";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-1RgwJCYxtiP5dfRHulfTNBgu6fum6RfoqkbFIlRTgKI=";
|
hash = "sha256-1RgwJCYxtiP5dfRHulfTNBgu6fum6RfoqkbFIlRTgKI=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
}: buildPythonPackage rec {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "pythondata-software-compiler_rt";
|
pname = "pythondata-software-compiler_rt";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "litex-hub";
|
owner = "litex-hub";
|
||||||
repo = "pythondata-software-compiler_rt";
|
repo = "pythondata-software-compiler_rt";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-s/tfxhPwYAnu1z1LxEimeYWjX6IHbF2uD/1HjvQn/xo=";
|
hash = "sha256-s/tfxhPwYAnu1z1LxEimeYWjX6IHbF2uD/1HjvQn/xo=";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
tag: {
|
{
|
||||||
pkgs
|
pkgs,
|
||||||
, buildPythonPackage
|
buildPythonPackage,
|
||||||
}: buildPythonPackage rec {
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
pname = "pythondata-software-picolibc";
|
pname = "pythondata-software-picolibc";
|
||||||
version = "${tag}";
|
version = "2023.12";
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "litex-hub";
|
owner = "litex-hub";
|
||||||
repo = "pythondata-software-picolibc";
|
repo = "pythondata-software-picolibc";
|
||||||
rev = "${tag}";
|
rev = "${version}";
|
||||||
hash = "sha256-5OY17BA37c6aHOvUwb0gJwXxGey4TdUiTTxJD5wuSGU=";
|
hash = "sha256-5OY17BA37c6aHOvUwb0gJwXxGey4TdUiTTxJD5wuSGU=";
|
||||||
};
|
};
|
||||||
|
|
75
templates/default/flake.nix
Normal file
75
templates/default/flake.nix
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
{
|
||||||
|
description = "ECP5 toolchain template project";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
inputs@{ nixpkgs, ... }:
|
||||||
|
let
|
||||||
|
# litex-overlay = final: prev: {
|
||||||
|
# pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||||
|
# (python-final: python-prev: {
|
||||||
|
# litex = python-final.callPackage (import ./litex.nix) { };
|
||||||
|
# # can add more packages here!
|
||||||
|
# })
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
litex-overlay = import ./litex;
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
"x86_64-darwin"
|
||||||
|
];
|
||||||
|
forAllSystems =
|
||||||
|
function:
|
||||||
|
nixpkgs.lib.genAttrs systems (
|
||||||
|
system:
|
||||||
|
function (
|
||||||
|
import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
overlays = [
|
||||||
|
litex-overlay
|
||||||
|
]; # patches, version pins, new pkgs here.
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
devShells = forAllSystems (pkgs: {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
(python3.withPackages (
|
||||||
|
ps: with ps; [
|
||||||
|
cocotb
|
||||||
|
cocotb-bus
|
||||||
|
litex
|
||||||
|
litedram
|
||||||
|
liteeth
|
||||||
|
litescope
|
||||||
|
litespi
|
||||||
|
liteiclink
|
||||||
|
pythondata-cpu-vexriscv
|
||||||
|
pythondata-software-compiler_rt
|
||||||
|
pythondata-software-picolibc
|
||||||
|
amaranth
|
||||||
|
]
|
||||||
|
))
|
||||||
|
yosys
|
||||||
|
nextpnr
|
||||||
|
# simulators
|
||||||
|
verilog
|
||||||
|
verilator
|
||||||
|
# support package
|
||||||
|
trellis
|
||||||
|
# loader
|
||||||
|
openfpgaloader
|
||||||
|
ecpdap # easier to poke probes.
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
6
treefmt.nix
Normal file
6
treefmt.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
# Used to find the project root
|
||||||
|
projectRootFile = "flake.nix";
|
||||||
|
programs.nixfmt.enable = true;
|
||||||
|
}
|
Loading…
Reference in a new issue