Files
espurna/code/scripts/espurna_utils/lwip.py
Max Prokhorov c18490cc4a PIO: pass APP_REVISION via extra scripts (#1946)
* utils/version: use git description token as version, add memoization

* pio: move extra scripts to a separate directory

* pio: add -DAPP_REVISION=... as local build flag
2019-10-16 14:41:43 +03:00

57 lines
1.6 KiB
Python

import os
def lwip_inject_patcher(env):
# ignore when building with lwip2
if "lwip_gcc" not in env["LIBS"]:
return
platform = env.PioPlatform()
framework_dir = platform.get_package_dir("framework-arduinoespressif8266")
toolchain_prefix = os.path.join(
platform.get_package_dir("toolchain-xtensa"), "bin", "xtensa-lx106-elf-"
)
patch_action = env.VerboseAction(
" ".join(
[
"-patch",
"-u",
"-N",
"-d",
os.path.join(framework_dir, "tools", "sdk", "lwip"),
os.path.join("src", "core", "tcp_out.c"),
env.subst(
os.path.join(
"$PROJECT_DIR",
"..",
"dist",
"patches",
"lwip_mtu_issue_1610.patch",
)
),
]
),
"Patching lwip source",
)
build_action = env.VerboseAction(
" ".join(
[
"make",
"-C",
os.path.join(framework_dir, "tools", "sdk", "lwip", "src"),
"install",
"TOOLS_PATH={}".format(toolchain_prefix),
"LWIP_LIB=liblwip_gcc.a",
]
),
"Rebuilding lwip",
)
patcher = env.Alias("patch-lwip", None, patch_action)
builder = env.Alias("build-lwip", patcher, build_action)
if os.environ.get("ESPURNA_PIO_PATCH_ISSUE_1610"):
env.Depends("$BUILD_DIR/${PROGNAME}.elf", builder)
env.AlwaysBuild(patcher)
env.AlwaysBuild(builder)