From b57d3b923cdbe9a01f5f01147fa5d08aa2fee3c0 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Sat, 15 Jun 2019 18:03:57 +0200 Subject: [PATCH] refactor(upy): Enhance build system wrapper QSTR generation is a pain ... Signed-off-by: Rahix <rahix@rahix.de> --- bootstrap.sh | 4 ++-- hw-tests/upy-minimal/meson.build | 3 ++- hw-tests/upy-minimal/modules/qstr.h | 12 ------------ hw-tests/upy-minimal/modules/qstrdefs.h | 19 +++++++++++++++++++ lib/micropython/gen-qstr.sh | 4 ++-- 5 files changed, 25 insertions(+), 17 deletions(-) delete mode 100644 hw-tests/upy-minimal/modules/qstr.h create mode 100644 hw-tests/upy-minimal/modules/qstrdefs.h diff --git a/bootstrap.sh b/bootstrap.sh index 34e4b03c0..1363d4ebe 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,10 +1,10 @@ #!/bin/sh set -xe -cd "$(dirname "$0")" || exit 1 +cd "$(dirname "$0")" test -d build/ && rm -r build/ -git submodule update --init --recursive +git submodule update --init ./lib/micropython meson --cross-file card10-cross.ini build/ set +x diff --git a/hw-tests/upy-minimal/meson.build b/hw-tests/upy-minimal/meson.build index 2ce4179f4..d674b5df4 100644 --- a/hw-tests/upy-minimal/meson.build +++ b/hw-tests/upy-minimal/meson.build @@ -31,7 +31,8 @@ modules_h = custom_target( qstr_h = custom_target( 'qstrdefs.generated.h', output: 'qstrdefs.generated.h', - input: [modules_h, version_h, micropython_sources, 'modules/qstr.h'], + input: ['modules/qstrdefs.h', micropython_sources], + depends: [modules_h, version_h], command: [micropython_gen_qstr, meson.current_source_dir(), '@OUTPUT@', '@INPUT@'], ) diff --git a/hw-tests/upy-minimal/modules/qstr.h b/hw-tests/upy-minimal/modules/qstr.h deleted file mode 100644 index 0fc7efa17..000000000 --- a/hw-tests/upy-minimal/modules/qstr.h +++ /dev/null @@ -1,12 +0,0 @@ -MP_QSTR_leds -MP_QSTR_set_dim -MP_QSTR_utime -MP_QSTR_sleep -MP_QSTR_sleep_ms -MP_QSTR_sleep_us -MP_QSTR_ticks_ms -MP_QSTR_ticks_us -MP_QSTR_ticks_cpu -MP_QSTR_ticks_add -MP_QSTR_ticks_diff -MP_QSTR_buzzer diff --git a/hw-tests/upy-minimal/modules/qstrdefs.h b/hw-tests/upy-minimal/modules/qstrdefs.h new file mode 100644 index 000000000..b6c21cc08 --- /dev/null +++ b/hw-tests/upy-minimal/modules/qstrdefs.h @@ -0,0 +1,19 @@ +#include "py/mpconfig.h" + +/* buzzer */ +Q(buzzer) + +/* leds */ +Q(leds) +Q(set_dim) + +/* utime */ +Q(utime) +Q(sleep) +Q(sleep_ms) +Q(sleep_us) +Q(ticks_ms) +Q(ticks_us) +Q(ticks_cpu) +Q(ticks_add) +Q(ticks_diff) diff --git a/lib/micropython/gen-qstr.sh b/lib/micropython/gen-qstr.sh index 1ae13ff95..34b3b312a 100755 --- a/lib/micropython/gen-qstr.sh +++ b/lib/micropython/gen-qstr.sh @@ -5,7 +5,7 @@ PYTHON="$1" SOURCE_DIR="$2" PROJECT_SRC="$3" OUTPUT="$4" -# IGNORE="$5" +CUSTOM_QSTR="$5" shift 5 @@ -27,7 +27,7 @@ gcc -E -DNO_QSTR -I"$SOURCE_DIR/micropython" -I"$PROJECT_SRC" -I"$OUTPUT_DIR" "$ # Preprocess Header ... I did not come up with this, this is code copied from # the official make file. Seriously. -cat "$SOURCE_DIR/micropython/py/qstrdefs.h" "$OUTPUT_DIR/qstrdefs.collected.h" \ +cat "$SOURCE_DIR/micropython/py/qstrdefs.h" "$CUSTOM_QSTR" "$OUTPUT_DIR/qstrdefs.collected.h" \ | sed 's/^Q(.*)/"&"/' \ | gcc -E -I"$SOURCE_DIR/micropython" -I"$PROJECT_SRC" -I"$OUTPUT_DIR" - \ | sed 's/^\"\(Q(.*)\)\"/\1/' \ -- GitLab