From 4453ca54938578d855b61942a88fa7f5fc72e0ae Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Wed, 4 May 2022 14:31:30 +0300 Subject: [PATCH] Properly handle ARDUINO_PARTITION define in PlatformIO (#6681) 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 10890a1b3..fe6775d54 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -24,7 +24,7 @@ http://arduino.cc/en/Reference/HomePage # 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 @@ env.Append( ("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 cddc251fc..1557a0806 100644 --- a/tools/platformio-build-esp32c3.py +++ b/tools/platformio-build-esp32c3.py @@ -24,7 +24,7 @@ http://arduino.cc/en/Reference/HomePage # 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 @@ env.Append( ("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 4e015b6ae..3aff44ad5 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -24,7 +24,7 @@ http://arduino.cc/en/Reference/HomePage # 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 @@ env.Append( ("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 660fd4ef2..1733393ee 100644 --- a/tools/platformio-build-esp32s3.py +++ b/tools/platformio-build-esp32s3.py @@ -24,7 +24,7 @@ http://arduino.cc/en/Reference/HomePage # 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 @@ env.Append( ("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=[ -- GitLab