mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-01 10:19:59 +00:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
|
"""PlatformIO build script (post: runs after other Meshtastic scripts)."""
|
||
|
|
||
|
import os
|
||
|
import shlex
|
||
|
|
||
|
from SCons.Script import DefaultEnvironment
|
||
|
|
||
|
env = DefaultEnvironment()
|
||
|
|
||
|
# Remove any static libraries from the LIBS environment. Static libraries are
|
||
|
# handled in platformio-clusterfuzzlite-pre.py.
|
||
|
static_libs = set(lib[2:] for lib in shlex.split(os.getenv("STATIC_LIBS")))
|
||
|
env.Replace(
|
||
|
LIBS=[
|
||
|
lib for lib in env["LIBS"] if not (isinstance(lib, str) and lib in static_libs)
|
||
|
],
|
||
|
)
|
||
|
|
||
|
# FrameworkArduino/portduino/main.cpp contains the "main" function the binary.
|
||
|
# The fuzzing framework also provides a "main" function and needs to be run
|
||
|
# before Meshtastic is started. We rename the "main" function for Meshtastic to
|
||
|
# "portduino_main" here so that it can be called inside the fuzzer.
|
||
|
env.AddPostAction(
|
||
|
"$BUILD_DIR/FrameworkArduino/portduino/main.cpp.o",
|
||
|
env.VerboseAction(
|
||
|
" ".join(
|
||
|
[
|
||
|
"$OBJCOPY",
|
||
|
"--redefine-sym=main=portduino_main",
|
||
|
"$BUILD_DIR/FrameworkArduino/portduino/main.cpp.o",
|
||
|
]
|
||
|
),
|
||
|
"Renaming main symbol to portduino_main",
|
||
|
),
|
||
|
)
|