diff options
author | xengineering <me@xengineering.eu> | 2025-04-06 14:24:06 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2025-04-06 14:24:06 +0200 |
commit | 5376b67a9df63d2b30cac415cb827e6b4c1674e9 (patch) | |
tree | c679795279cadf7e5b5902edf5edf33370028cfa /fw/btl | |
parent | e28796985d5f605fbdb1f5043618b1f570e747af (diff) | |
download | iot-contact-5376b67a9df63d2b30cac415cb827e6b4c1674e9.tar iot-contact-5376b67a9df63d2b30cac415cb827e6b4c1674e9.tar.zst iot-contact-5376b67a9df63d2b30cac415cb827e6b4c1674e9.zip |
Build bootloader and add to website
Meson makes this relatively easy. The current approach is nevertheless a
bit hacky. For the first attempt it is still way better than CMake
ExternalProject.
Diffstat (limited to 'fw/btl')
-rwxr-xr-x | fw/btl/build.py | 29 | ||||
-rw-r--r-- | fw/btl/meson.build | 11 |
2 files changed, 40 insertions, 0 deletions
diff --git a/fw/btl/build.py b/fw/btl/build.py new file mode 100755 index 0000000..6478701 --- /dev/null +++ b/fw/btl/build.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + + +import multiprocessing +import shutil +import subprocess +import sys +import pathlib + + +build_tree = pathlib.Path(sys.argv[1]) +output_dir = build_tree.parent + + +subprocess.run( + [ + "make", + f"-j{multiprocessing.cpu_count()}", + "-C", + f"{str(build_tree)}", + ], + shell=False, + check=True, +) + +shutil.copy( + build_tree / "zephyr" / "zephyr.bin", + output_dir / "bootloader.bin" +) diff --git a/fw/btl/meson.build b/fw/btl/meson.build index b783191..37c8c25 100644 --- a/fw/btl/meson.build +++ b/fw/btl/meson.build @@ -12,3 +12,14 @@ bootloader_project = external_project.add_project('configure.py', ], verbose: true, ) + +bootloader = custom_target('bootloader', + output: ['bootloader.bin'], + command: [ + meson.current_source_dir() / 'build.py', + meson.current_build_dir() / 'build', + ], + build_by_default: true, + install: true, + install_dir: 'website/static', +) |