Skip to content

Commit c33678e

Browse files
committed
wip
1 parent 4b4f419 commit c33678e

File tree

2 files changed

+111
-3
lines changed

2 files changed

+111
-3
lines changed

flake.lock

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,105 @@
66

77
zephyr-nix.url = github:adisbladis/zephyr-nix;
88
zephyr-nix.inputs.nixpkgs.follows = "nixpkgs";
9+
10+
ec.url = github:FrameworkComputer/EmbeddedController?ref=fwk-lotus-azalea-19573;
11+
ec.flake = false;
12+
13+
u-boot.url = git+https://chromium.googlesource.com/chromiumos/third_party/u-boot?ref=upstream/next;
14+
u-boot.flake = false;
915
};
1016

1117
outputs = {
1218
self,
1319
nixpkgs,
1420
flake-utils,
1521
zephyr-nix,
22+
ec,
23+
u-boot,
1624
}:
1725
flake-utils.lib.eachDefaultSystem (system: let
1826
pkgs = import nixpkgs {inherit system;};
1927

28+
zephyr-sdk = zephyr-nix.packages.${system}.sdk-0_16.override {targets = ["arm-zephyr-eabi"];};
29+
2030
python = pkgs.python312;
2131
pythonPkgs = pkgs.python312Packages;
22-
in {
32+
33+
setProjectDynamicToLicense = ''
34+
${pkgs.toml-cli}/bin/toml set pyproject.toml project.dynamic license | ${pkgs.moreutils}/bin/sponge pyproject.toml
35+
sed -e 's/dynamic = "license"/dynamic = ["license"]/' -i pyproject.toml
36+
'';
37+
in rec {
2338
formatter = pkgs.alejandra;
2439

40+
packages.zmake = pythonPkgs.buildPythonPackage {
41+
name = "zmake";
42+
src = "${ec}/zephyr/zmake";
43+
pyproject = true;
44+
45+
propagatedBuildInputs = with pkgs; [gcc dtc];
46+
47+
postPatch = ''
48+
# TODO: binman not found.
49+
echo sed -e 's#"/bin:/usr/bin"#"/bin:/usr/bin:${pkgs.gcc}/bin:${pkgs.dtc}/bin","DYLD_LIBRARY_PATH":"${pkgs.dtc}/lib"#' -i src/platform/ec/zephyr/zmake/zmake/jobserver.py
50+
'';
51+
};
52+
53+
packages.binman = pythonPkgs.buildPythonPackage {
54+
name = "binman";
55+
src = "${u-boot}/tools/binman";
56+
pyproject = true;
57+
58+
buildInputs = [pythonPkgs.setuptools];
59+
propagatedBuildInputs = [pythonPkgs.libfdt];
60+
61+
postPatch = ''
62+
#sed -e 's/>=61.0/==68.2.2/' -i pyproject.toml
63+
sed -e 's/"pylibfdt"/"libfdt"/' -i pyproject.toml
64+
${setProjectDynamicToLicense}
65+
'';
66+
};
67+
68+
packages.dtoc = pythonPkgs.buildPythonPackage {
69+
name = "dtoc";
70+
src = "${u-boot}/tools/dtoc";
71+
pyproject = true;
72+
73+
buildInputs = [
74+
pythonPkgs.setuptools
75+
pythonPkgs.libfdt
76+
packages.u_boot_pylib
77+
];
78+
79+
postPatch = ''
80+
sed -e 's/"pylibfdt"/"libfdt"/' -i pyproject.toml
81+
${setProjectDynamicToLicense}
82+
'';
83+
};
84+
85+
packages.u_boot_pylib = pythonPkgs.buildPythonPackage {
86+
name = "u_boot_pylib";
87+
src = pkgs.fetchPypi {
88+
pname = "u_boot_pylib";
89+
version = "0.0.6";
90+
sha256 = "mwbw339O51qNObu6Mn4FvLARI7Y6zSkdLxeCx49tNd0=";
91+
};
92+
pyproject = true;
93+
94+
buildInputs = [pythonPkgs.setuptools];
95+
};
96+
2597
devShells.default = pkgs.mkShell {
2698
buildInputs = with pkgs; [
27-
(zephyr-nix.packages.${system}.sdk-0_16.override {targets = ["arm-zephyr-eabi"];})
99+
zephyr-sdk
28100
python
29101
pythonPkgs.pyyaml
30102
pythonPkgs.pykwalify
31103
pythonPkgs.packaging
32104
pythonPkgs.pyelftools
33105
pythonPkgs.colorama
34106
pythonPkgs.setuptools
35-
pythonPkgs.libfdt # <- 311 version fails to build; can't build with pip.
107+
pythonPkgs.libfdt # <- 311 version fails to build; can't build with pip.
36108
dtc
37109
cmake
38110
ninja

0 commit comments

Comments
 (0)