summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMengsk <[email protected]>2025-10-06 17:11:14 +0200
committerMengsk <[email protected]>2025-10-06 17:11:14 +0200
commit54fffd0de258e0c345e87479b9d4a221387b897b (patch)
tree0f89c9f96f6cdbe567e257b8a46f1d23ff67155b
parentf3f6046e0bbcf9b3b926ca5f0e1882d1ceb9652d (diff)
Fix preset with espressif
Signed-off-by: Mengsk <[email protected]>
-rw-r--r--hw/bsp/BoardPresets.json128
-rwxr-xr-xtools/gen_presets.py36
2 files changed, 103 insertions, 61 deletions
diff --git a/hw/bsp/BoardPresets.json b/hw/bsp/BoardPresets.json
index 335546837..044c74ee1 100644
--- a/hw/bsp/BoardPresets.json
+++ b/hw/bsp/BoardPresets.json
@@ -13,23 +13,17 @@
}
},
{
- "name": "adafruit_clue",
- "inherits": "default"
- },
- {
- "name": "adafruit_feather_esp32_v2",
- "inherits": "default"
- },
- {
- "name": "adafruit_feather_esp32c6",
- "inherits": "default"
- },
- {
- "name": "adafruit_feather_esp32s2",
- "inherits": "default"
+ "name": "default single config",
+ "hidden": true,
+ "description": "Configure preset for the ${presetName} board",
+ "generator": "Ninja",
+ "binaryDir": "${sourceDir}/build/${presetName}",
+ "cacheVariables": {
+ "BOARD": "${presetName}"
+ }
},
{
- "name": "adafruit_feather_esp32s3",
+ "name": "adafruit_clue",
"inherits": "default"
},
{
@@ -41,14 +35,6 @@
"inherits": "default"
},
{
- "name": "adafruit_magtag_29gray",
- "inherits": "default"
- },
- {
- "name": "adafruit_metro_esp32s2",
- "inherits": "default"
- },
- {
"name": "adafruit_metro_rp2350",
"inherits": "default"
},
@@ -189,42 +175,6 @@
"inherits": "default"
},
{
- "name": "espressif_addax_1",
- "inherits": "default"
- },
- {
- "name": "espressif_c3_devkitc",
- "inherits": "default"
- },
- {
- "name": "espressif_c6_devkitc",
- "inherits": "default"
- },
- {
- "name": "espressif_kaluga_1",
- "inherits": "default"
- },
- {
- "name": "espressif_p4_function_ev",
- "inherits": "default"
- },
- {
- "name": "espressif_s2_devkitc",
- "inherits": "default"
- },
- {
- "name": "espressif_s3_devkitc",
- "inherits": "default"
- },
- {
- "name": "espressif_s3_devkitm",
- "inherits": "default"
- },
- {
- "name": "espressif_saola_1",
- "inherits": "default"
- },
- {
"name": "f1c100s",
"inherits": "default"
},
@@ -823,6 +773,66 @@
{
"name": "xmc4700_relax",
"inherits": "default"
+ },
+ {
+ "name": "adafruit_feather_esp32_v2",
+ "inherits": "default single config"
+ },
+ {
+ "name": "adafruit_feather_esp32c6",
+ "inherits": "default single config"
+ },
+ {
+ "name": "adafruit_feather_esp32s2",
+ "inherits": "default single config"
+ },
+ {
+ "name": "adafruit_feather_esp32s3",
+ "inherits": "default single config"
+ },
+ {
+ "name": "adafruit_magtag_29gray",
+ "inherits": "default single config"
+ },
+ {
+ "name": "adafruit_metro_esp32s2",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_addax_1",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_c3_devkitc",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_c6_devkitc",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_kaluga_1",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_p4_function_ev",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_s2_devkitc",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_s3_devkitc",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_s3_devkitm",
+ "inherits": "default single config"
+ },
+ {
+ "name": "espressif_saola_1",
+ "inherits": "default single config"
}
],
"buildPresets": [
diff --git a/tools/gen_presets.py b/tools/gen_presets.py
index 94b8d16b0..94a9361db 100755
--- a/tools/gen_presets.py
+++ b/tools/gen_presets.py
@@ -5,13 +5,20 @@ from pathlib import Path
def main():
board_list = []
+ board_list_esp = []
- # Find all board.cmake files
+ # Find all board.cmake files, exclude espressif
for root, dirs, files in os.walk("hw/bsp"):
for file in files:
- if file == "board.cmake":
+ if file == "board.cmake" and "espressif" not in root:
board_list.append(os.path.basename(root))
+ # Find all espressif boards
+ for root, dirs, files in os.walk("hw/bsp/espressif"):
+ for file in files:
+ if file == "board.cmake":
+ board_list_esp.append(os.path.basename(root))
+
print('Generating presets for the following boards:')
print(board_list)
@@ -29,8 +36,17 @@ def main():
"cacheVariables": {
"CMAKE_DEFAULT_BUILD_TYPE": "RelWithDebInfo",
"BOARD": r"${presetName}"
+ }},
+ {"name": "default single config",
+ "hidden": True,
+ "description": r"Configure preset for the ${presetName} board",
+ "generator": "Ninja",
+ "binaryDir": r"${sourceDir}/build/${presetName}",
+ "cacheVariables": {
+ "BOARD": r"${presetName}"
}}]
+ # Add non-espressif boards
presets['configurePresets'].extend(
sorted(
[
@@ -43,6 +59,22 @@ def main():
)
)
+ # Add espressif boards with single config generator
+ presets['configurePresets'].extend(
+ sorted(
+ [
+ {
+ 'name': board,
+ 'inherits': 'default single config'
+ }
+ for board in board_list_esp
+ ], key=lambda x: x['name']
+ )
+ )
+
+ # Combine all boards
+ board_list.extend(board_list_esp)
+
# Build presets
# no inheritance since 'name' doesn't support macro expansion
presets['buildPresets'] = sorted(