From 4fff599a80548361b196f6aeb0734220e0a5ce14 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 14 May 2019 00:11:25 +0300 Subject: [PATCH] Use custom "ElfToBin" builder --- tools/platformio-build.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/tools/platformio-build.py b/tools/platformio-build.py index dd79c7cfd6..780dcea3cb 100644 --- a/tools/platformio-build.py +++ b/tools/platformio-build.py @@ -24,13 +24,10 @@ # Extends: https://github.com/platformio/platform-espressif8266/blob/develop/builder/main.py -import os -import subprocess - from os.path import isdir, join -from SCons import Builder, Util -from SCons.Script import DefaultEnvironment +from SCons import Util +from SCons.Script import Builder, DefaultEnvironment def scons_patched_match_splitext(path, suffixes=None): @@ -127,7 +124,26 @@ def scons_patched_match_splitext(path, suffixes=None): LIBSOURCE_DIRS=[ join(FRAMEWORK_DIR, "libraries") - ] + ], + + BUILDERS=dict( + ElfToBin=Builder( + action=env.VerboseAction(" ".join([ + '"$PYTHONEXE"', + '"%s"' % env.subst(join(FRAMEWORK_DIR, "tools", "elf2bin.py")), + "--eboot", '"%s"' % env.subst(join( + FRAMEWORK_DIR, "bootloaders", "eboot", "eboot.elf")), + "--app", '"%s"' % "$SOURCE", + "--flash_mode", "$BOARD_FLASH_MODE", + "--flash_freq", "${__get_board_f_flash(__env__)}", + "--flash_size", "${__get_flash_size(__env__)}", + "--path", '"%s"' % env.subst(join( + platform.get_package_dir("toolchain-xtensa"), "bin")), + "--out", '"$TARGET"' + ]), "Building $TARGET"), + suffix=".bin" + ) + ) ) # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode) @@ -141,18 +157,18 @@ def scons_patched_match_splitext(path, suffixes=None): if "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3" in flatten_cppdefines: env.Append( CPPDEFINES=[("NONOSDK3V0", 1)], - LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK3V0"),] + LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK3V0")] ) elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x" in flatten_cppdefines: env.Append( CPPDEFINES=[("NONOSDK22x", 1)], - LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x"),] + LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x")] ) # PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x (default) else: env.Append( CPPDEFINES=[("NONOSDK221", 1)], - LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK221"),] + LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK221")] ) #