1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Use custom "ElfToBin" builder for PIO (#6091)

This commit is contained in:
Ivan Kravets 2019-05-14 17:42:10 +03:00 committed by Earle F. Philhower, III
parent eea9999dc5
commit 2df33de1e7

View File

@ -24,13 +24,10 @@ https://arduino.cc/en/Reference/HomePage
# Extends: https://github.com/platformio/platform-espressif8266/blob/develop/builder/main.py # Extends: https://github.com/platformio/platform-espressif8266/blob/develop/builder/main.py
import os
import subprocess
from os.path import isdir, join from os.path import isdir, join
from SCons import Builder, Util from SCons import Util
from SCons.Script import DefaultEnvironment from SCons.Script import Builder, DefaultEnvironment
def scons_patched_match_splitext(path, suffixes=None): def scons_patched_match_splitext(path, suffixes=None):
@ -127,7 +124,26 @@ env.Append(
LIBSOURCE_DIRS=[ LIBSOURCE_DIRS=[
join(FRAMEWORK_DIR, "libraries") 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) # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode)
@ -141,18 +157,18 @@ flatten_cppdefines = env.Flatten(env['CPPDEFINES'])
if "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3" in flatten_cppdefines: if "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3" in flatten_cppdefines:
env.Append( env.Append(
CPPDEFINES=[("NONOSDK3V0", 1)], 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: elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x" in flatten_cppdefines:
env.Append( env.Append(
CPPDEFINES=[("NONOSDK22x", 1)], 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) # PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x (default)
else: else:
env.Append( env.Append(
CPPDEFINES=[("NONOSDK221", 1)], CPPDEFINES=[("NONOSDK221", 1)],
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK221"),] LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK221")]
) )
# #