From da0ef47516491adeb8586fee8b1a47d7863f9dea Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Tue, 3 May 2022 15:19:44 +0300 Subject: [PATCH] Properly handle ARDUINO_PARTITION define in PlatformIO This fixes possible issues when developers specify arbitrary partition files using relative or absolute paths. Additionally, hyphens in filenames are replaced with underscores to avoid compilation warnings "ISO C++11 requires whitespace after the macro name" Resolves platformio/platform-espressif32#787 --- tools/platformio-build-esp32.py | 5 +++-- tools/platformio-build-esp32c3.py | 5 +++-- tools/platformio-build-esp32s2.py | 5 +++-- tools/platformio-build-esp32s3.py | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/tools/platformio-build-esp32.py b/tools/platformio-build-esp32.py index 10890a1b3a0..fe6775d543d 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -24,7 +24,7 @@ # Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py -from os.path import abspath, isdir, isfile, join +from os.path import abspath, basename, isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -319,7 +319,8 @@ ("ARDUINO", 10812), ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")), - "ARDUINO_PARTITION_%s" % env.BoardConfig().get("build.partitions", "default.csv").replace(".csv", "") + "ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get( + "build.partitions", "default.csv")).replace(".csv", "").replace("-", "_") ], LIBSOURCE_DIRS=[ diff --git a/tools/platformio-build-esp32c3.py b/tools/platformio-build-esp32c3.py index cddc251fc08..1557a0806c7 100644 --- a/tools/platformio-build-esp32c3.py +++ b/tools/platformio-build-esp32c3.py @@ -24,7 +24,7 @@ # Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py -from os.path import abspath, isdir, isfile, join +from os.path import abspath, basename, isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -312,7 +312,8 @@ ("ARDUINO", 10812), ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")), - "ARDUINO_PARTITION_%s" % env.BoardConfig().get("build.partitions", "default.csv").replace(".csv", "") + "ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get( + "build.partitions", "default.csv")).replace(".csv", "").replace("-", "_") ], LIBSOURCE_DIRS=[ diff --git a/tools/platformio-build-esp32s2.py b/tools/platformio-build-esp32s2.py index 4e015b6aec2..3aff44ad516 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -24,7 +24,7 @@ # Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py -from os.path import abspath, isdir, isfile, join +from os.path import abspath, basename, isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -314,7 +314,8 @@ ("ARDUINO", 10812), ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")), - "ARDUINO_PARTITION_%s" % env.BoardConfig().get("build.partitions", "default.csv").replace(".csv", "") + "ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get( + "build.partitions", "default.csv")).replace(".csv", "").replace("-", "_") ], LIBSOURCE_DIRS=[ diff --git a/tools/platformio-build-esp32s3.py b/tools/platformio-build-esp32s3.py index 660fd4ef28d..1733393ee11 100644 --- a/tools/platformio-build-esp32s3.py +++ b/tools/platformio-build-esp32s3.py @@ -24,7 +24,7 @@ # Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py -from os.path import abspath, isdir, isfile, join +from os.path import abspath, basename, isdir, isfile, join from SCons.Script import DefaultEnvironment @@ -331,7 +331,8 @@ ("ARDUINO", 10812), ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")), - "ARDUINO_PARTITION_%s" % env.BoardConfig().get("build.partitions", "default.csv").replace(".csv", "") + "ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get( + "build.partitions", "default.csv")).replace(".csv", "").replace("-", "_") ], LIBSOURCE_DIRS=[