From 2d6993031727cf0098f0c07ba479b52e3964b111 Mon Sep 17 00:00:00 2001 From: Jan Pochyla Date: Sat, 5 Aug 2017 10:17:16 +0200 Subject: [PATCH] scons: fix frozen module names --- SConscript.firmware | 28 ++++++++++--------- site_scons/site_tools/micropython/__init__.py | 9 +++++- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/SConscript.firmware b/SConscript.firmware index bd8b29e5..b37688c5 100644 --- a/SConscript.firmware +++ b/SConscript.firmware @@ -455,6 +455,7 @@ SOURCE_PY = [ 'src/trezor/wire/codec_v2.py', 'src/trezor/workflow.py', ] +SOURCE_PY_DIR = 'src/' env = Environment() @@ -543,7 +544,7 @@ env.Ignore(qstr_collected, qstr_generated) # Frozen modules # -source_mpy = env.FrozenModule(source=SOURCE_PY) +source_mpy = env.FrozenModule(source=SOURCE_PY, source_dir=SOURCE_PY_DIR) source_mpyc = env.FrozenCFile( target='frozen_mpy.c', source=source_mpy, qstr_header=qstr_preprocessed) @@ -555,19 +556,20 @@ env.Depends(source_mpyc, qstr_generated) # obj_program = [] -obj_program += env.Object(source=SOURCE_MOD) -obj_program += env.Object(source=SOURCE_FIRMWARE) -obj_program += env.Object(source=SOURCE_MICROPYTHON) -obj_program += env.Object(source=SOURCE_STMHAL) -obj_program += env.Object(source=SOURCE_TREZORHAL) -obj_program += env.Object(source=source_mpyc) +obj_program.extend(env.Object(source=SOURCE_MOD)) +obj_program.extend(env.Object(source=SOURCE_FIRMWARE)) +obj_program.extend(env.Object(source=SOURCE_MICROPYTHON)) +obj_program.extend(env.Object(source=SOURCE_STMHAL)) +obj_program.extend(env.Object(source=SOURCE_TREZORHAL)) +obj_program.extend(env.Object(source=source_mpyc)) -obj_program += env.Command( - target='embed/firmware/vendorheader.o', - source='embed/firmware/vendorheader.bin', - action='$OBJCOPY -I binary -O elf32-littlearm -B arm' - ' --rename-section .data=.vendorheader,alloc,load,readonly,contents' - ' $SOURCE $TARGET', ) +obj_program.extend( + env.Command( + target='embed/firmware/vendorheader.o', + source='embed/firmware/vendorheader.bin', + action='$OBJCOPY -I binary -O elf32-littlearm -B arm' + ' --rename-section .data=.vendorheader,alloc,load,readonly,contents' + ' $SOURCE $TARGET', )) env.Depends(obj_program, qstr_generated) diff --git a/site_scons/site_tools/micropython/__init__.py b/site_scons/site_tools/micropython/__init__.py index 1c64500d..7b1f3bb1 100644 --- a/site_scons/site_tools/micropython/__init__.py +++ b/site_scons/site_tools/micropython/__init__.py @@ -19,8 +19,15 @@ def generate(env): env['BUILDERS']['GenerateQstrDefs'] = SCons.Builder.Builder( action='$MAKEQSTRDATA $SOURCE > $TARGET', ) + def generate_frozen_module(source, target, env, for_signature): + target = str(target[0]) + source = str(source[0]) + source_name = source.replace(env['source_dir'], '') + return '$MPY_CROSS -o %s -s %s %s' % (target, source_name, source) + env['BUILDERS']['FrozenModule'] = SCons.Builder.Builder( - action='$MPY_CROSS -o $TARGET $SOURCE', + # action='$MPY_CROSS -o $TARGET -s $SOURCE $SOURCE', + generator=generate_frozen_module, suffix='.mpy', single_source=True, )