Import("env") import os # Keep allow-multiple-definition for core TinyUSB symbol overlaps env.Append(LINKFLAGS=["-Wl,--allow-multiple-definition"]) # Delete the Adafruit library's generic DCD so the ESP32 core's # patched version from libarduino_tinyusb.a is used instead. # We provide stubs (src/dcd_stubs.c) for the few ISO/SOF functions # the ESP32 core's older DCD doesn't implement. lib_path = os.path.join( env.subst("$PROJECT_DIR"), ".pio", "libdeps", env.subst("$PIOENV"), "Adafruit TinyUSB Library", "src" ) dcd_path = os.path.join(lib_path, "portable", "synopsys", "dwc2", "dcd_dwc2.c") backup = dcd_path + ".bak" if os.path.exists(dcd_path): # Rename .c -> .bak so the build system doesn't compile it os.rename(dcd_path, backup) print("[extra_script] Renamed dcd_dwc2.c -> dcd_dwc2.c.bak (using ESP32 core DCD + project stubs)") else: print("[extra_script] dcd_dwc2.c not found at:", dcd_path)