Skip to content

Commit cf5fff8

Browse files
authored
Refactor PlatformIO build scripts (#6887)
1 parent 3e29702 commit cf5fff8

5 files changed

+141
-283
lines changed

Diff for: tools/platformio-build-esp32.py

+2-70
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@
2424

2525
# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py
2626

27-
from os.path import abspath, basename, isdir, isfile, join
27+
from os.path import basename, join
2828

2929
from SCons.Script import DefaultEnvironment
3030

3131
env = DefaultEnvironment()
32-
platform = env.PioPlatform()
3332

34-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
35-
assert isdir(FRAMEWORK_DIR)
33+
FRAMEWORK_DIR = env.PioPlatform().get_package_dir("framework-arduinoespressif32")
3634

3735
env.Append(
3836
ASFLAGS=[
@@ -320,71 +318,5 @@
320318
("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")),
321319
"ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get(
322320
"build.partitions", "default.csv")).replace(".csv", "").replace("-", "_")
323-
],
324-
325-
LIBSOURCE_DIRS=[
326-
join(FRAMEWORK_DIR, "libraries")
327-
],
328-
329-
FLASH_EXTRA_IMAGES=[
330-
("0x1000", join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "bin", "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin")),
331-
("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
332-
("0xe000", join(FRAMEWORK_DIR, "tools", "partitions", "boot_app0.bin"))
333321
]
334-
+ [
335-
(offset, join(FRAMEWORK_DIR, img))
336-
for offset, img in env.BoardConfig().get(
337-
"upload.arduino.flash_extra_images", []
338-
)
339-
],
340322
)
341-
342-
#
343-
# Target: Build Core Library
344-
#
345-
346-
libs = []
347-
348-
variants_dir = join(FRAMEWORK_DIR, "variants")
349-
350-
if "build.variants_dir" in env.BoardConfig():
351-
variants_dir = join("$PROJECT_DIR", env.BoardConfig().get("build.variants_dir"))
352-
353-
if "build.variant" in env.BoardConfig():
354-
env.Append(
355-
CPPPATH=[
356-
join(variants_dir, env.BoardConfig().get("build.variant"))
357-
]
358-
)
359-
env.BuildSources(
360-
join("$BUILD_DIR", "FrameworkArduinoVariant"),
361-
join(variants_dir, env.BoardConfig().get("build.variant"))
362-
)
363-
364-
envsafe = env.Clone()
365-
366-
libs.append(envsafe.BuildLibrary(
367-
join("$BUILD_DIR", "FrameworkArduino"),
368-
join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core"))
369-
))
370-
371-
env.Prepend(LIBS=libs)
372-
373-
#
374-
# Generate partition table
375-
#
376-
377-
fwpartitions_dir = join(FRAMEWORK_DIR, "tools", "partitions")
378-
partitions_csv = env.BoardConfig().get("build.partitions", "default.csv")
379-
env.Replace(
380-
PARTITIONS_TABLE_CSV=abspath(
381-
join(fwpartitions_dir, partitions_csv) if isfile(
382-
join(fwpartitions_dir, partitions_csv)) else partitions_csv))
383-
384-
partition_table = env.Command(
385-
join("$BUILD_DIR", "partitions.bin"),
386-
"$PARTITIONS_TABLE_CSV",
387-
env.VerboseAction('"$PYTHONEXE" "%s" -q $SOURCE $TARGET' % join(
388-
FRAMEWORK_DIR, "tools", "gen_esp32part.py"),
389-
"Generating partitions $TARGET"))
390-
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", partition_table)

Diff for: tools/platformio-build-esp32c3.py

+2-70
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@
2424

2525
# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py
2626

27-
from os.path import abspath, basename, isdir, isfile, join
27+
from os.path import basename, join
2828

2929
from SCons.Script import DefaultEnvironment
3030

3131
env = DefaultEnvironment()
32-
platform = env.PioPlatform()
3332

34-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
35-
assert isdir(FRAMEWORK_DIR)
33+
FRAMEWORK_DIR = env.PioPlatform().get_package_dir("framework-arduinoespressif32")
3634

3735
env.Append(
3836
ASFLAGS=[
@@ -313,71 +311,5 @@
313311
("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")),
314312
"ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get(
315313
"build.partitions", "default.csv")).replace(".csv", "").replace("-", "_")
316-
],
317-
318-
LIBSOURCE_DIRS=[
319-
join(FRAMEWORK_DIR, "libraries")
320-
],
321-
322-
FLASH_EXTRA_IMAGES=[
323-
("0x0000", join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "bin", "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin")),
324-
("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
325-
("0xe000", join(FRAMEWORK_DIR, "tools", "partitions", "boot_app0.bin"))
326314
]
327-
+ [
328-
(offset, join(FRAMEWORK_DIR, img))
329-
for offset, img in env.BoardConfig().get(
330-
"upload.arduino.flash_extra_images", []
331-
)
332-
],
333315
)
334-
335-
#
336-
# Target: Build Core Library
337-
#
338-
339-
libs = []
340-
341-
variants_dir = join(FRAMEWORK_DIR, "variants")
342-
343-
if "build.variants_dir" in env.BoardConfig():
344-
variants_dir = join("$PROJECT_DIR", env.BoardConfig().get("build.variants_dir"))
345-
346-
if "build.variant" in env.BoardConfig():
347-
env.Append(
348-
CPPPATH=[
349-
join(variants_dir, env.BoardConfig().get("build.variant"))
350-
]
351-
)
352-
env.BuildSources(
353-
join("$BUILD_DIR", "FrameworkArduinoVariant"),
354-
join(variants_dir, env.BoardConfig().get("build.variant"))
355-
)
356-
357-
envsafe = env.Clone()
358-
359-
libs.append(envsafe.BuildLibrary(
360-
join("$BUILD_DIR", "FrameworkArduino"),
361-
join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core"))
362-
))
363-
364-
env.Prepend(LIBS=libs)
365-
366-
#
367-
# Generate partition table
368-
#
369-
370-
fwpartitions_dir = join(FRAMEWORK_DIR, "tools", "partitions")
371-
partitions_csv = env.BoardConfig().get("build.partitions", "default.csv")
372-
env.Replace(
373-
PARTITIONS_TABLE_CSV=abspath(
374-
join(fwpartitions_dir, partitions_csv) if isfile(
375-
join(fwpartitions_dir, partitions_csv)) else partitions_csv))
376-
377-
partition_table = env.Command(
378-
join("$BUILD_DIR", "partitions.bin"),
379-
"$PARTITIONS_TABLE_CSV",
380-
env.VerboseAction('"$PYTHONEXE" "%s" -q $SOURCE $TARGET' % join(
381-
FRAMEWORK_DIR, "tools", "gen_esp32part.py"),
382-
"Generating partitions $TARGET"))
383-
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", partition_table)

Diff for: tools/platformio-build-esp32s2.py

+3-70
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@
2424

2525
# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py
2626

27-
from os.path import abspath, basename, isdir, isfile, join
27+
from os.path import basename, join
2828

2929
from SCons.Script import DefaultEnvironment
3030

3131
env = DefaultEnvironment()
32-
platform = env.PioPlatform()
3332

34-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
35-
assert isdir(FRAMEWORK_DIR)
33+
FRAMEWORK_DIR = env.PioPlatform().get_package_dir("framework-arduinoespressif32")
34+
3635

3736
env.Append(
3837
ASFLAGS=[
@@ -315,71 +314,5 @@
315314
("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")),
316315
"ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get(
317316
"build.partitions", "default.csv")).replace(".csv", "").replace("-", "_")
318-
],
319-
320-
LIBSOURCE_DIRS=[
321-
join(FRAMEWORK_DIR, "libraries")
322-
],
323-
324-
FLASH_EXTRA_IMAGES=[
325-
("0x1000", join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "bin", "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin")),
326-
("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
327-
("0xe000", join(FRAMEWORK_DIR, "tools", "partitions", "boot_app0.bin"))
328317
]
329-
+ [
330-
(offset, join(FRAMEWORK_DIR, img))
331-
for offset, img in env.BoardConfig().get(
332-
"upload.arduino.flash_extra_images", []
333-
)
334-
],
335318
)
336-
337-
#
338-
# Target: Build Core Library
339-
#
340-
341-
libs = []
342-
343-
variants_dir = join(FRAMEWORK_DIR, "variants")
344-
345-
if "build.variants_dir" in env.BoardConfig():
346-
variants_dir = join("$PROJECT_DIR", env.BoardConfig().get("build.variants_dir"))
347-
348-
if "build.variant" in env.BoardConfig():
349-
env.Append(
350-
CPPPATH=[
351-
join(variants_dir, env.BoardConfig().get("build.variant"))
352-
]
353-
)
354-
env.BuildSources(
355-
join("$BUILD_DIR", "FrameworkArduinoVariant"),
356-
join(variants_dir, env.BoardConfig().get("build.variant"))
357-
)
358-
359-
envsafe = env.Clone()
360-
361-
libs.append(envsafe.BuildLibrary(
362-
join("$BUILD_DIR", "FrameworkArduino"),
363-
join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core"))
364-
))
365-
366-
env.Prepend(LIBS=libs)
367-
368-
#
369-
# Generate partition table
370-
#
371-
372-
fwpartitions_dir = join(FRAMEWORK_DIR, "tools", "partitions")
373-
partitions_csv = env.BoardConfig().get("build.partitions", "default.csv")
374-
env.Replace(
375-
PARTITIONS_TABLE_CSV=abspath(
376-
join(fwpartitions_dir, partitions_csv) if isfile(
377-
join(fwpartitions_dir, partitions_csv)) else partitions_csv))
378-
379-
partition_table = env.Command(
380-
join("$BUILD_DIR", "partitions.bin"),
381-
"$PARTITIONS_TABLE_CSV",
382-
env.VerboseAction('"$PYTHONEXE" "%s" -q $SOURCE $TARGET' % join(
383-
FRAMEWORK_DIR, "tools", "gen_esp32part.py"),
384-
"Generating partitions $TARGET"))
385-
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", partition_table)

Diff for: tools/platformio-build-esp32s3.py

+2-70
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@
2424

2525
# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py
2626

27-
from os.path import abspath, basename, isdir, isfile, join
27+
from os.path import basename, join
2828

2929
from SCons.Script import DefaultEnvironment
3030

3131
env = DefaultEnvironment()
32-
platform = env.PioPlatform()
3332

34-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
35-
assert isdir(FRAMEWORK_DIR)
33+
FRAMEWORK_DIR = env.PioPlatform().get_package_dir("framework-arduinoespressif32")
3634

3735
env.Append(
3836
ASFLAGS=[
@@ -332,71 +330,5 @@
332330
("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")),
333331
"ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get(
334332
"build.partitions", "default.csv")).replace(".csv", "").replace("-", "_")
335-
],
336-
337-
LIBSOURCE_DIRS=[
338-
join(FRAMEWORK_DIR, "libraries")
339-
],
340-
341-
FLASH_EXTRA_IMAGES=[
342-
("0x0000", join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "bin", "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin")),
343-
("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
344-
("0xe000", join(FRAMEWORK_DIR, "tools", "partitions", "boot_app0.bin"))
345333
]
346-
+ [
347-
(offset, join(FRAMEWORK_DIR, img))
348-
for offset, img in env.BoardConfig().get(
349-
"upload.arduino.flash_extra_images", []
350-
)
351-
],
352334
)
353-
354-
#
355-
# Target: Build Core Library
356-
#
357-
358-
libs = []
359-
360-
variants_dir = join(FRAMEWORK_DIR, "variants")
361-
362-
if "build.variants_dir" in env.BoardConfig():
363-
variants_dir = join("$PROJECT_DIR", env.BoardConfig().get("build.variants_dir"))
364-
365-
if "build.variant" in env.BoardConfig():
366-
env.Append(
367-
CPPPATH=[
368-
join(variants_dir, env.BoardConfig().get("build.variant"))
369-
]
370-
)
371-
env.BuildSources(
372-
join("$BUILD_DIR", "FrameworkArduinoVariant"),
373-
join(variants_dir, env.BoardConfig().get("build.variant"))
374-
)
375-
376-
envsafe = env.Clone()
377-
378-
libs.append(envsafe.BuildLibrary(
379-
join("$BUILD_DIR", "FrameworkArduino"),
380-
join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core"))
381-
))
382-
383-
env.Prepend(LIBS=libs)
384-
385-
#
386-
# Generate partition table
387-
#
388-
389-
fwpartitions_dir = join(FRAMEWORK_DIR, "tools", "partitions")
390-
partitions_csv = env.BoardConfig().get("build.partitions", "default.csv")
391-
env.Replace(
392-
PARTITIONS_TABLE_CSV=abspath(
393-
join(fwpartitions_dir, partitions_csv) if isfile(
394-
join(fwpartitions_dir, partitions_csv)) else partitions_csv))
395-
396-
partition_table = env.Command(
397-
join("$BUILD_DIR", "partitions.bin"),
398-
"$PARTITIONS_TABLE_CSV",
399-
env.VerboseAction('"$PYTHONEXE" "%s" -q $SOURCE $TARGET' % join(
400-
FRAMEWORK_DIR, "tools", "gen_esp32part.py"),
401-
"Generating partitions $TARGET"))
402-
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", partition_table)

0 commit comments

Comments
 (0)