|
27 | 27 | sed -e 's/dynamic = "license"/dynamic = ["license"]/' -i pyproject.toml |
28 | 28 | ''; |
29 | 29 |
|
30 | | - pyelftools = pkgs.fetchgit { |
31 | | - name = "pyelftools"; |
32 | | - url = "https://chromium.googlesource.com/chromiumos/third_party/pyelftools"; |
33 | | - rev = "refs/heads/chromeos-0.22"; |
34 | | - hash = "sha256-MArasbUre77vVGThaPxNotukIX+lGiNC4mhzZT52vl8="; |
35 | | - }; |
36 | | - |
37 | | - crosutils = pkgs.fetchgit { |
38 | | - name = "crosutils"; |
39 | | - url = "https://chromium.googlesource.com/chromiumos/platform/crosutils"; |
40 | | - rev = "refs/heads/main"; |
41 | | - hash = "sha256-ahnXEetj99TLEocogZcSSUdj/r0QXiOw1OIVRrMt0cI="; |
42 | | - }; |
43 | | - |
44 | 30 | ec = pkgs.fetchFromGitHub { |
45 | 31 | name = "ec"; |
46 | 32 | owner = "FrameworkComputer"; |
|
56 | 42 | hash = "sha256-IKmdIn/K1eHBVxA0sNvzr1i5LpkgJQMAMsks13lmDNw="; |
57 | 43 | }; |
58 | 44 |
|
59 | | - hal_stm32 = pkgs.fetchgit { |
60 | | - name = "hal_stm32"; |
61 | | - url = "https://chromium.googlesource.com/chromiumos/third_party/zephyr/hal_stm32"; |
62 | | - rev = "refs/heads/chromeos-main"; |
63 | | - hash = "sha256-r1aks0sgUrJeX8t2lO98sOtGjBMvHgt2St0am+qEz3E="; |
64 | | - }; |
65 | | - |
66 | 45 | zephyr = pkgs.fetchFromGitHub { |
67 | 46 | name = "zephyr"; |
68 | 47 | owner = "FrameworkComputer"; |
|
71 | 50 | hash = "sha256-KgTh39Ba9jDByv7+9gDdZHCl2OOku3Y3yxq0Pt4GeBo="; |
72 | 51 | }; |
73 | 52 |
|
74 | | - nanopb = pkgs.fetchgit { |
75 | | - name = "nanopb"; |
76 | | - url = "https://chromium.googlesource.com/chromiumos/third_party/zephyr/nanopb"; |
77 | | - rev = "refs/heads/main"; |
78 | | - hash = "sha256-qt9ey7dbuqxIAhc4BKm0EqkMusOdsuQZNppmaN4ZVfA="; |
79 | | - }; |
80 | | - |
81 | 53 | u-boot = pkgs.fetchgit { |
82 | 54 | name = "u-boot"; |
83 | 55 | url = "https://chromium.googlesource.com/chromiumos/third_party/u-boot"; |
84 | 56 | rev = "refs/heads/upstream/next"; |
85 | 57 | hash = "sha256-h5y0M1dupdO9CNG+OhUYi56UXsWAL5B0PTnhx+gU3FA="; |
86 | 58 | fetchSubmodules = false; |
87 | 59 | }; |
88 | | - |
89 | | - depot_tools = pkgs.fetchgit { |
90 | | - name = "depot_tools"; |
91 | | - url = "https://chromium.googlesource.com/chromium/tools/depot_tools"; |
92 | | - rev = "84edf22d0e5bf3f9ae60714ed9789fd62f86cf2a"; |
93 | | - hash = "sha256-3t03DdZ+dRen1z3PTyGt2rDPHIHTe+qS8ek/bH4kuKo="; |
94 | | - }; |
95 | 60 | in rec { |
96 | 61 | formatter = pkgs.alejandra; |
97 | 62 |
|
|
101 | 66 | name = "lotus"; |
102 | 67 |
|
103 | 68 | srcs = [ |
104 | | - pyelftools |
105 | | - crosutils |
106 | 69 | ec |
107 | 70 | cmsis |
108 | | - hal_stm32 |
109 | 71 | zephyr |
110 | | - nanopb |
111 | | - u-boot |
112 | | - depot_tools |
113 | 72 | ]; |
114 | 73 |
|
115 | 74 | sourceRoot = "."; |
116 | 75 |
|
117 | | - # TODO: see how much of the below we can remove and still get a build. |
118 | 76 | postPatch = '' |
119 | 77 | mkdir .repo |
120 | 78 |
|
121 | | - mkdir -p chromite/third_party |
122 | | - mv pyelftools chromite/third_party/pyelftools |
123 | | -
|
124 | | - mkdir -p src |
125 | | - mv crosutils src/scripts |
126 | | -
|
127 | 79 | mkdir -p src/platform |
128 | 80 | mv ec src/platform/ec |
129 | 81 |
|
130 | 82 | mkdir -p src/third_party/zephyr |
131 | 83 | mv cmsis src/third_party/zephyr/cmsis |
132 | 84 |
|
133 | | - mkdir -p src/third_party/zephyr |
134 | | - mv hal_stm32 src/third_party/zephyr/hal_stm32 |
135 | | -
|
136 | 85 | mkdir -p src/third_party/zephyr |
137 | 86 | mv zephyr src/third_party/zephyr/main |
138 | | -
|
139 | | - mkdir -p src/third_party/zephyr |
140 | | - mv nanopb src/third_party/zephyr/nanopb |
141 | | -
|
142 | | - mkdir -p src/third_party/u-boot |
143 | | - mv u-boot src/third_party/u-boot/files |
144 | | -
|
145 | | - mkdir -p src/chromium |
146 | | - mv depot_tools src/chromium/depot_tools |
147 | 87 | ''; |
148 | 88 |
|
149 | 89 | nativeBuildInputs = [ |
|
164 | 104 | buildPhase = '' |
165 | 105 | ${packages.zmake}/bin/zmake -j8 build lotus -DCMAKE_MAKE_PROGRAM="${pkgs.ninja}/bin/ninja" -DBUILD_VERSION=awawa |
166 | 106 | ''; |
| 107 | + |
167 | 108 | installPhase = '' |
168 | 109 | mkdir $out |
169 | 110 | cp src/platform/ec/build/zephyr/lotus/output/* $out/ |
170 | 111 | ''; |
| 112 | + |
| 113 | + dontFixup = true; |
171 | 114 | }; |
172 | 115 |
|
173 | 116 | packages.zmake = pythonPkgs.buildPythonPackage { |
|
177 | 120 | pyproject = true; |
178 | 121 | build-system = [pythonPkgs.setuptools]; |
179 | 122 |
|
180 | | - # The DYLD_LIBRARY_PATH part here is only needed for Darwin, but it |
181 | | - # doesn't harm Linux. TODO: don't do on Linux. |
182 | 123 | postPatch = '' |
183 | | - sed -e 's#"/bin:/usr/bin"#"/bin:/usr/bin:${pkgs.gcc}/bin:${pkgs.dtc}/bin","DYLD_LIBRARY_PATH":"${pkgs.dtc}/lib"#' -i zmake/jobserver.py |
| 124 | + sed -e 's#"/bin:/usr/bin"#"/bin:/usr/bin:${pkgs.gcc}/bin:${pkgs.dtc}/bin"${ |
| 125 | + if pkgs.stdenv.hostPlatform.isDarwin then |
| 126 | + '',"DYLD_LIBRARY_PATH":"${pkgs.dtc}/lib"'' |
| 127 | + else "" |
| 128 | + }#' -i zmake/jobserver.py |
184 | 129 | ''; |
185 | 130 | }; |
186 | 131 |
|
|
0 commit comments