|
6 | 6 | inputs = { |
7 | 7 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; |
8 | 8 |
|
| 9 | + esp-dev = { |
| 10 | + url = "github:mirrexagon/nixpkgs-esp-dev?rev=86a2bbe01fe0258887de7396af2a5eb0e37ac3be"; |
| 11 | + inputs.nixpkgs.follows = "nixpkgs"; |
| 12 | + }; |
| 13 | + |
9 | 14 | flake-parts = { |
10 | 15 | url = "github:hercules-ci/flake-parts"; |
11 | 16 | inputs.nixpkgs-lib.follows = "nixpkgs"; |
12 | 17 | }; |
13 | 18 | }; |
14 | 19 |
|
15 | | - outputs = inputs@{ flake-parts, ... }: |
| 20 | + outputs = inputs@{ flake-parts, esp-dev, ... }: |
16 | 21 | flake-parts.lib.mkFlake { inherit inputs; } { |
17 | 22 | imports = [ ]; |
18 | 23 | systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; |
19 | | - perSystem = { pkgs, ... }: |
| 24 | + perSystem = { pkgs, system, ... }: |
20 | 25 | let |
21 | | - libopencm3 = pkgs.callPackage ./libopencm3.nix { |
22 | | - targets = [ "stm32/f2" "stm32/f4" "stm32/f7" ]; |
23 | | - }; |
24 | | - mbed-os = pkgs.callPackage ./mbed-os.nix { |
25 | | - targets = [ "TARGET_MPS2_M3" "TARGET_MPS2_M4" "TARGET_MPS2_M7" ]; |
26 | | - }; |
27 | | - |
28 | 26 | core = builtins.attrValues { |
29 | 27 | astyle = pkgs.astyle.overrideAttrs (old: rec { |
30 | 28 | version = "3.4.13"; |
|
52 | 50 | }; |
53 | 51 |
|
54 | 52 | arm-pkgs = builtins.attrValues { |
55 | | - libopencm3 = libopencm3; |
56 | | - mbed-os = mbed-os; |
| 53 | + libopencm3 = pkgs.callPackage ./libopencm3.nix { |
| 54 | + targets = [ "stm32/f2" "stm32/f4" "stm32/f7" ]; |
| 55 | + }; |
| 56 | + |
| 57 | + mbed-os = pkgs.callPackage ./mbed-os.nix { |
| 58 | + targets = [ "TARGET_MPS2_M3" "TARGET_MPS2_M4" "TARGET_MPS2_M7" ]; |
| 59 | + }; |
| 60 | + |
57 | 61 | inherit (pkgs) |
58 | 62 | gcc-arm-embedded-13; # arm-gnu-toolchain-13.2.rel1 |
59 | 63 | }; |
60 | 64 |
|
| 65 | + riscv-pkgs = builtins.attrValues { |
| 66 | + esp-idf-lib = pkgs.callPackage ./esp-idf-lib.nix { }; |
| 67 | + }; |
| 68 | + |
61 | 69 | wrapShell = mkShell: attrs: |
62 | 70 | mkShell (attrs // { |
63 | 71 | shellHook = '' |
|
66 | 74 | }); |
67 | 75 | in |
68 | 76 | { |
| 77 | + _module.args = { |
| 78 | + pkgs = import inputs.nixpkgs { |
| 79 | + inherit system; |
| 80 | + overlays = [ esp-dev.overlays.default ]; |
| 81 | + }; |
| 82 | + }; |
| 83 | + |
69 | 84 | devShells.default = wrapShell pkgs.mkShellNoCC { |
70 | | - packages = core ++ arm-pkgs ++ builtins.attrValues { |
| 85 | + packages = core ++ arm-pkgs ++ riscv-pkgs ++ builtins.attrValues { |
71 | 86 | inherit (pkgs) |
72 | 87 | direnv |
73 | 88 | nix-direnv |
74 | 89 |
|
75 | 90 | # debug dependencies |
76 | 91 | openocd; # 0.12.0 |
77 | 92 | }; |
78 | | - OPENCM3_DIR = ''${libopencm3}''; |
79 | | - MBED_OS_DIR = ''${mbed-os}''; |
80 | 93 | }; |
81 | 94 |
|
82 | 95 | devShells.ci = wrapShell pkgs.mkShellNoCC { |
83 | | - packages = core ++ arm-pkgs; |
84 | | - OPENCM3_DIR = ''${libopencm3}''; |
85 | | - MBED_OS_DIR = ''${mbed-os}''; |
| 96 | + packages = core ++ arm-pkgs ++ riscv-pkgs; |
86 | 97 | }; |
87 | 98 | }; |
88 | 99 | flake = { |
|
0 commit comments