|
6 | 6 |
|
7 | 7 | zephyr-nix.url = github:adisbladis/zephyr-nix; |
8 | 8 | zephyr-nix.inputs.nixpkgs.follows = "nixpkgs"; |
| 9 | + |
| 10 | + cmsis.url = git+https://chromium.googlesource.com/chromiumos/third_party/zephyr/cmsis?rev=4aa3ff8e4f8a21e31cd9831b943acb7a7cd56ac8&name=cmsis; |
| 11 | + cmsis.flake = false; |
| 12 | + |
| 13 | + zephyr.url = github:FrameworkComputer/zephyr?ref=lotus-zephyr&name=zephyr; |
| 14 | + zephyr.flake = false; |
| 15 | + |
| 16 | + u-boot.url = git+https://chromium.googlesource.com/chromiumos/third_party/u-boot?ref=upstream/next&name=u-boot; |
| 17 | + u-boot.flake = false; |
9 | 18 | }; |
10 | 19 |
|
11 | 20 | outputs = { |
12 | 21 | self, |
13 | 22 | nixpkgs, |
14 | 23 | flake-utils, |
15 | 24 | zephyr-nix, |
| 25 | + zephyr, |
| 26 | + cmsis, |
| 27 | + u-boot, |
16 | 28 | }: |
17 | 29 | flake-utils.lib.eachDefaultSystem (system: let |
18 | 30 | pkgs = import nixpkgs {inherit system;}; |
|
27 | 39 | sed -e 's/dynamic = "license"/dynamic = ["license"]/' -i pyproject.toml |
28 | 40 | ''; |
29 | 41 |
|
30 | | - ec = pkgs.fetchFromGitHub { |
31 | | - name = "ec"; |
32 | | - owner = "FrameworkComputer"; |
33 | | - repo = "EmbeddedController"; |
34 | | - rev = "fwk-lotus-azalea-19573"; |
35 | | - hash = "sha256-37iKyZdOy8K/a8fsvaTjiC9cTkcP0JbvsfB7t1XAIco="; |
36 | | - }; |
37 | | - |
38 | | - cmsis = pkgs.fetchgit { |
39 | | - name = "cmsis"; |
40 | | - url = "https://chromium.googlesource.com/chromiumos/third_party/zephyr/cmsis"; |
41 | | - rev = "4aa3ff8e4f8a21e31cd9831b943acb7a7cd56ac8"; |
42 | | - hash = "sha256-IKmdIn/K1eHBVxA0sNvzr1i5LpkgJQMAMsks13lmDNw="; |
43 | | - }; |
44 | | - |
45 | | - zephyr = pkgs.fetchFromGitHub { |
46 | | - name = "zephyr"; |
47 | | - owner = "FrameworkComputer"; |
48 | | - repo = "zephyr"; |
49 | | - rev = "lotus-zephyr"; |
50 | | - hash = "sha256-KgTh39Ba9jDByv7+9gDdZHCl2OOku3Y3yxq0Pt4GeBo="; |
51 | | - }; |
52 | | - |
53 | | - u-boot = pkgs.fetchgit { |
54 | | - name = "u-boot"; |
55 | | - url = "https://chromium.googlesource.com/chromiumos/third_party/u-boot"; |
56 | | - rev = "refs/heads/upstream/next"; |
57 | | - hash = "sha256-h5y0M1dupdO9CNG+OhUYi56UXsWAL5B0PTnhx+gU3FA="; |
58 | | - fetchSubmodules = false; |
59 | | - }; |
| 42 | + ec = ./.; |
60 | 43 |
|
61 | 44 | build_version = "awawa"; |
62 | 45 |
|
|
65 | 48 | name = build; |
66 | 49 |
|
67 | 50 | srcs = [ |
68 | | - ec |
69 | | - cmsis |
70 | | - zephyr |
| 51 | + "${ec}?ec" |
| 52 | + "${cmsis}?cmsis" |
| 53 | + "${zephyr}?zephyr" |
71 | 54 | ]; |
72 | 55 |
|
| 56 | + preUnpack='' |
| 57 | + unpackCmdHooks+=(_unpack_named) |
| 58 | + _unpack_named() { |
| 59 | + local src="$1" |
| 60 | + if ! [[ "$src" =~ ^(.*)\?([a-z]+)$ ]]; then return 1; fi |
| 61 | + local path="''${BASH_REMATCH[1]}" |
| 62 | + local name="''${BASH_REMATCH[2]}" |
| 63 | + cp -pr --reflink=auto -- "$path" "$name" |
| 64 | + } |
| 65 | + ''; |
| 66 | + |
73 | 67 | sourceRoot = "."; |
74 | 68 |
|
75 | 69 | postPatch = '' |
|
120 | 114 |
|
121 | 115 | packages.zmake = pythonPkgs.buildPythonPackage { |
122 | 116 | name = "zmake"; |
123 | | - src = ec; |
124 | | - sourceRoot = "ec/zephyr/zmake"; |
| 117 | + src = "${ec}/zephyr/zmake"; |
| 118 | + |
125 | 119 | pyproject = true; |
126 | 120 | build-system = [pythonPkgs.setuptools]; |
127 | 121 |
|
|
140 | 134 | pyproject = false; |
141 | 135 | build-system = [pythonPkgs.setuptools]; |
142 | 136 |
|
143 | | - # zmake calls (sys.executable, path-to-binman, ...) on purpose, so we |
144 | | - # can't wrap it. This makes it unsuitable for calling directly, however. |
145 | | - dontWrapPythonPrograms = true; |
146 | | - |
147 | 137 | buildInputs = [ |
148 | 138 | pythonPkgs.pypaBuildHook |
149 | 139 | pythonPkgs.pipInstallHook |
|
161 | 151 | ${setProjectDynamicToLicense} |
162 | 152 | ''; |
163 | 153 |
|
| 154 | + # zmake calls (sys.executable, path-to-binman, ...) on purpose, so we |
| 155 | + # can't wrap it. This makes it unsuitable for calling directly, however. |
| 156 | + dontWrapPythonPrograms = true; |
| 157 | + |
164 | 158 | # No wrapper => no need for args. I'd like to be able to still do this |
165 | 159 | # to have a nicer binman derivation. |
166 | 160 | # makeWrapperArgs = ["--set DYLD_LIBRARY_PATH ${pkgs.dtc}/lib"]; |
|
0 commit comments