diff options
author | xengineering <me@xengineering.eu> | 2025-04-05 11:10:12 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2025-04-05 15:33:09 +0200 |
commit | 82fa02bcac5e278586cb2e3c9cc597699f6f640d (patch) | |
tree | 4a6bfc82f3f94fadd7c3717633203ed64e1f0495 | |
parent | 00189e737517f4470336d819d52327a037509493 (diff) | |
download | iot-contact-meson.tar iot-contact-meson.tar.zst iot-contact-meson.zip |
fw: btl: Configure bootloader build with Mesonmeson
CMake ExternalProject creates a pretty confusing build tree. Since the
rest of the project anyway starts moving to Meson the bootloader is
configured via Meson as a first step.
-rwxr-xr-x | fw/btl/configure.sh | 14 | ||||
-rw-r--r-- | fw/btl/meson.build | 16 | ||||
-rw-r--r-- | fw/meson.build | 7 | ||||
-rw-r--r-- | fw/rtos/meson.build | 3 | ||||
-rw-r--r-- | fw/rtos/modules/meson.build | 8 | ||||
-rw-r--r-- | meson.build | 1 |
6 files changed, 49 insertions, 0 deletions
diff --git a/fw/btl/configure.sh b/fw/btl/configure.sh new file mode 100755 index 0000000..87df3d2 --- /dev/null +++ b/fw/btl/configure.sh @@ -0,0 +1,14 @@ +#!/bin/sh + + +set -eufx + + +cmake \ + "-S$1" \ + "-B$2" \ + "-DBOARD=$3" \ + "-DZEPHYR_BASE=$4" \ + "-DZEPHYR_MODULES=${5}" \ + "-DEXTRA_CONF_FILE=${6}" \ + "-DCONFIG_BOOT_SIGNATURE_KEY_FILE=\"${7}\"" diff --git a/fw/btl/meson.build b/fw/btl/meson.build new file mode 100644 index 0000000..fd6562e --- /dev/null +++ b/fw/btl/meson.build @@ -0,0 +1,16 @@ +bootloader_config = meson.current_source_dir() / 'bootloader.conf' + +external_project = import('unstable-external_project') +bootloader_bin = meson.current_build_dir() / 'zephyr' / 'zephyr.bin' +bootloader_project = external_project.add_project('configure.sh', + configure_options: [ + bootloader_firmware, + meson.current_build_dir(), + board, + zephyr, + ';'.join(zephyr_modules), + bootloader_config, + signing_key, + ], + verbose: true, +) diff --git a/fw/meson.build b/fw/meson.build new file mode 100644 index 0000000..7f9bead --- /dev/null +++ b/fw/meson.build @@ -0,0 +1,7 @@ +board = 'nucleo_f767zi' + +fs = import('fs') +signing_key = fs.expanduser('~') / 'mcuboot' / 'key.pem' + +subdir('rtos') +subdir('btl') diff --git a/fw/rtos/meson.build b/fw/rtos/meson.build new file mode 100644 index 0000000..800153d --- /dev/null +++ b/fw/rtos/meson.build @@ -0,0 +1,3 @@ +subdir('modules') + +zephyr = meson.current_source_dir() / 'zephyr' diff --git a/fw/rtos/modules/meson.build b/fw/rtos/modules/meson.build new file mode 100644 index 0000000..52f50c2 --- /dev/null +++ b/fw/rtos/modules/meson.build @@ -0,0 +1,8 @@ +zephyr_modules = [ + meson.current_source_dir() / 'cmsis', + meson.current_source_dir() / 'hal_stm32', + meson.current_source_dir() / 'mbedtls', + meson.current_source_dir() / 'mcuboot', +] + +bootloader_firmware = meson.current_source_dir() / 'mcuboot' / 'boot' / 'zephyr' diff --git a/meson.build b/meson.build index 73206f4..9205388 100644 --- a/meson.build +++ b/meson.build @@ -8,5 +8,6 @@ css = fs.copyfile( install_dir: 'website/static', ) +subdir('fw') subdir('pcb') subdir('web') |