glob and os do not depend on the SCons-injected env, so importing them at the top of the file removes the flake8 E402 findings and lets the E402 ignore-all directives (which were no longer suppressing anything) go away.
50 lines
2.0 KiB
Python
50 lines
2.0 KiB
Python
# Pulls all mbedTLS sources from arduino-pico's pico-sdk into the build so the
|
|
# firmware can call mbedtls_* APIs (the precompiled arduino-pico libs only
|
|
# expose BearSSL; mbedTLS is shipped as source under lib/mbedtls/library/*.c).
|
|
#
|
|
# Wired in via `extra_scripts = pre:scripts/add_mbedtls_sources.py` on the
|
|
# variants that define HAS_ETHERNET_TLS_API. POSIX-only code paths inside
|
|
# mbedtls are neutralized by src/mbedtls_user_config.h (referenced via the
|
|
# variant's -DMBEDTLS_USER_CONFIG_FILE build flag). Unused symbols are dropped
|
|
# at link time, so non-TLS envs that pull this script in pay nothing.
|
|
|
|
# trunk-ignore-all(ruff/F821)
|
|
# trunk-ignore-all(flake8/F821): Import/env/Return are SCons-injected globals
|
|
import glob
|
|
import os
|
|
|
|
Import("env")
|
|
|
|
framework_dir = env.PioPlatform().get_package_dir("framework-arduinopico")
|
|
if not framework_dir:
|
|
print("[add_mbedtls_sources] framework-arduinopico package not found - skipping")
|
|
Return()
|
|
|
|
mbedtls_root = os.path.join(framework_dir, "pico-sdk", "lib", "mbedtls")
|
|
include_dir = os.path.join(mbedtls_root, "include")
|
|
src_dir = os.path.join(mbedtls_root, "library")
|
|
|
|
if not os.path.isdir(src_dir):
|
|
print(f"[add_mbedtls_sources] mbedtls library dir not found at {src_dir}")
|
|
Return()
|
|
|
|
# mbedtls headers + project src (where mbedtls_user_config.h lives) must be on
|
|
# the include path when the .c files compile.
|
|
env.Append(CPPPATH=[include_dir, env["PROJECT_SRC_DIR"]])
|
|
|
|
# Inject the user-config define through CPPDEFINES so SCons handles the
|
|
# embedded quotes correctly. The build_flags shell parser drops/corrupts the
|
|
# value when the same is expressed as -D 'MBEDTLS_USER_CONFIG_FILE="..."'.
|
|
env.Append(CPPDEFINES=[("MBEDTLS_USER_CONFIG_FILE", '\\"mbedtls_user_config.h\\"')])
|
|
|
|
sources = sorted(glob.glob(os.path.join(src_dir, "*.c")))
|
|
print(
|
|
f"[add_mbedtls_sources] Adding {len(sources)} mbedTLS source files from {src_dir}"
|
|
)
|
|
|
|
env.BuildSources(
|
|
os.path.join("$BUILD_DIR", "mbedtls_pico"),
|
|
src_dir,
|
|
src_filter=["+<*.c>"],
|
|
)
|