[core] Allow using external framework parts

This commit is contained in:
Kuba Szczodrzyński
2022-05-18 20:49:56 +02:00
parent 36e4b6fd45
commit 1dc47878d4
4 changed files with 81 additions and 0 deletions

49
builder/libs/lwip.py Normal file
View File

@@ -0,0 +1,49 @@
# Copyright (c) Kuba Szczodrzyński 2022-05-18.
from SCons.Script import DefaultEnvironment
env = DefaultEnvironment()
platform = env.PioPlatform()
def env_add_lwip(
env,
version: str,
port: str,
):
# version = env["LIB_LWIP_VERSION"] if "LIB_LWIP_VERSION" in env else version_default
package_dir = platform.get_package_dir(f"library-lwip@{version}-{port}")
port_srcs = []
port_includes = []
if port in ["amb1"]:
port_srcs = [
"+<port/realtek/freertos/ethernetif.c>",
"+<port/realtek/freertos/sys_arch.c>",
]
port_includes = [
"+<port/realtek>",
"+<port/realtek/freertos>",
]
env.AddLibrary(
name=f"lwip{version}_{port}",
base_dir=package_dir,
srcs=[
"+<src/api/*.c>",
"+<src/core/*.c>",
"+<src/core/ipv4/*.c>",
"+<src/netif/ethernet.c>", # 2.0.x
"+<src/netif/etharp.c>", # 1.4.x
*port_srcs,
],
includes=[
"+<src/include>",
"+<src/include/lwip>",
"+<src/include/ipv4>",
*port_includes,
],
)
env.AddMethod(env_add_lwip, "AddLibraryLwIP")

View File

@@ -7,6 +7,8 @@ board = env.BoardConfig()
# Utilities
env.SConscript("utils.py", exports="env")
# Vendor-specific library ports
env.SConscript("libs/lwip.py", exports="env")
# Firmware name
if env.get("PROGNAME", "program") == "program":