Fix watch build to generate resources before the Pebble SDK packs them
build / build (push) Successful in 51s

This commit is contained in:
ml
2026-07-18 08:01:29 +02:00
parent ff2b43f1e0
commit a3e437277f
3 changed files with 16 additions and 17 deletions
+6
View File
@@ -7,6 +7,12 @@
/watch/resources/img /watch/resources/img
/watch/resources/app_icon.png /watch/resources/app_icon.png
# waf's own build lock file - regenerated every `pebble build`, holds
# absolute machine paths and a full dump of the invoking shell's
# environment variables. Was tracked accidentally; see the commit that
# added this .gitignore line for the git rm --cached that untracked it.
/watch/.lock-waf_linux_build
# Durable backup of the same real birth data, outside dist/ so a dist/ # Durable backup of the same real birth data, outside dist/ so a dist/
# wipe doesn't lose it — see the Makefile's `scripts` target. Never # wipe doesn't lose it — see the Makefile's `scripts` target. Never
# commit this either. # commit this either.
File diff suppressed because one or more lines are too long
+10 -7
View File
@@ -61,21 +61,24 @@ def configure(ctx):
def build(ctx): def build(ctx):
ctx.load('pebble_sdk')
# Regenerate src/c/i18n_tables.auto.c from engine/i18n/*.lang, # Regenerate src/c/i18n_tables.auto.c from engine/i18n/*.lang,
# resources/img/*.png from res/img/*.jpeg, and resources/app_icon.png # resources/img/*.png from res/img/*.jpeg, and resources/app_icon.png
# from res/app_icon_50x50_64_color.png, before compiling/bundling # from res/app_icon_50x50_64_color.png, before compiling/bundling
# anything - see each script's own doc comment. All three run eagerly # anything - see each script's own doc comment. All three run eagerly
# (not as waf Tasks) since the bundle step below depends on their # (not as waf Tasks) and must run *before* ctx.load('pebble_sdk')
# output existing; gen_card_images.py/gen_app_icon.py both skip # below, since loading that tool in a build context immediately packs
# regenerating anything already up to date, so this stays cheap on # resources/ into the app bundle - on a fresh checkout with no
# repeat builds. Requires Pillow (`pip install Pillow`) - see # generated resources/img/ yet, that packing step would crash before
# watch/README.md. # these scripts ever got a chance to create it. gen_card_images.py/
# gen_app_icon.py both skip regenerating anything already up to date,
# so this stays cheap on repeat builds. Requires Pillow (`pip install
# Pillow`) - see watch/README.md.
subprocess.check_call([sys.executable, 'scripts/gen_i18n_tables.py']) subprocess.check_call([sys.executable, 'scripts/gen_i18n_tables.py'])
subprocess.check_call([sys.executable, 'scripts/gen_card_images.py']) subprocess.check_call([sys.executable, 'scripts/gen_card_images.py'])
subprocess.check_call([sys.executable, 'scripts/gen_app_icon.py']) subprocess.check_call([sys.executable, 'scripts/gen_app_icon.py'])
ctx.load('pebble_sdk')
engine_dir = ctx.path.parent.find_dir('engine/src') engine_dir = ctx.path.parent.find_dir('engine/src')
engine_nodes = [engine_dir.find_node(name) for name in ENGINE_SRCS] engine_nodes = [engine_dir.find_node(name) for name in ENGINE_SRCS]
interp_dir = ctx.path.parent.find_dir('interpreter/src') interp_dir = ctx.path.parent.find_dir('interpreter/src')