Skip to content

Commit 2dddfbe

Browse files
authored
refactor platform.py
1 parent 46180af commit 2dddfbe

File tree

1 file changed

+17
-51
lines changed

1 file changed

+17
-51
lines changed

platform.py

+17-51
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,18 @@ def configure_default_packages(self, variables, targets):
5050
else:
5151
shutil.copytree(join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-packages"), join(IDF_TOOLS_PATH_DEFAULT, "tools"), symlinks=False, ignore=None, ignore_dangling_symlinks=False, dirs_exist_ok=True)
5252

53-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-mklittlefs")
54-
self.packages["tool-mklittlefs"]["optional"] = False
55-
self.packages["tool-mklittlefs"]["version"] = tl_path
56-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-mkfatfs")
57-
self.packages["tool-mkfatfs"]["optional"] = False
58-
self.packages["tool-mkfatfs"]["version"] = tl_path
59-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-mkspiffs")
60-
self.packages["tool-mkspiffs"]["optional"] = False
61-
self.packages["tool-mkspiffs"]["version"] = tl_path
62-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-dfuutil")
63-
self.packages["tool-dfuutil"]["optional"] = False
64-
self.packages["tool-dfuutil"]["version"] = tl_path
65-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-openocd")
66-
self.packages["tool-openocd"]["optional"] = False
67-
self.packages["tool-openocd"]["version"] = tl_path
68-
53+
if os.path.exists(IDF_TOOLS):
54+
# Install all tools and toolchains
55+
self.packages["tl-install"]["optional"] = True
56+
for p in self.packages:
57+
if p in ("tool-mklittlefs", "tool-mkfatfs", "tool-mkspiffs", "tool-dfuutil", "tool-openocd", "tool-cmake", "tool-ninja", "tool-cppcheck", "contrib-piohome", "contrib-pioremote", "tc-ulp", "tc-rv32", "tl-xt-gdb", "tl-rv-gdb"):
58+
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", p)
59+
self.packages[p]["optional"] = False
60+
self.packages[p]["version"] = tl_path
61+
# Enable common packages for IDF and mixed Arduino+IDF projects
62+
for p in self.packages:
63+
if p in ("tool-cmake", "tool-ninja", "tc-ulp"):
64+
self.packages[p]["optional"] = False if "espidf" in frameworks else True
6965

7066
if "arduino" in frameworks:
7167
self.packages["framework-arduinoespressif32"]["optional"] = False
@@ -98,12 +94,6 @@ def configure_default_packages(self, variables, targets):
9894
else:
9995
del self.packages["tool-openocd"]
10096

101-
102-
if os.path.isdir("ulp") and os.path.exists(IDF_TOOLS):
103-
ulp_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tc-ulp")
104-
self.packages["tc-ulp"]["optional"] = False
105-
self.packages["tc-ulp"]["version"] = ulp_path
106-
10797
if "downloadfs" in targets:
10898
filesystem = variables.get("board_build.filesystem", "littlefs")
10999
if filesystem == "littlefs":
@@ -114,49 +104,25 @@ def configure_default_packages(self, variables, targets):
114104

115105
# Currently only Arduino Nano ESP32 uses the dfuutil tool as uploader
116106
if variables.get("board") == "arduino_nano_esp32":
117-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tool-dfuutil")
118107
self.packages["tool-dfuutil"]["optional"] = False
119-
self.packages["tool-dfuutil"]["version"] = tl_path
120108
else:
121109
del self.packages["tool-dfuutil"]
122110

123-
# Starting from v12, Espressif's toolchains are shipped without
124-
# bundled GDB. Instead, it's distributed as separate packages for Xtensa
125-
# and RISC-V targets.
126-
if os.path.exists(IDF_TOOLS):
127-
for gdb_package in ("tl-xt-gdb", "tl-rv-gdb"):
128-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", gdb_package)
129-
self.packages[gdb_package]["optional"] = False
130-
self.packages[gdb_package]["version"] = tl_path
131-
self.packages["tl-install"]["optional"] = True
132-
133-
# Common packages for IDF and mixed Arduino+IDF projects
134-
if "espidf" in frameworks and os.path.exists(IDF_TOOLS):
135-
ulp_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tc-ulp")
136-
self.packages["tc-ulp"]["optional"] = False
137-
self.packages["tc-ulp"]["version"] = ulp_path
138-
for p in self.packages:
139-
if p in ("tool-cmake", "tool-ninja"):
140-
tl_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", p)
141-
self.packages[p]["optional"] = False
142-
self.packages[p]["version"] = tl_path
143-
111+
# Enable needed toolchains
144112
for available_mcu in ("esp32", "esp32s2", "esp32s3"):
145113
if available_mcu == mcu and os.path.exists(IDF_TOOLS):
146114
tc_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tc-xt-%s" % mcu)
147115
self.packages["tc-xt-%s" % mcu]["optional"] = False
148116
self.packages["tc-xt-%s" % mcu]["version"] = tc_path
149-
else:
150-
self.packages.pop("tc-xt-%s" % available_mcu, None)
151-
117+
if available_mcu == "esp32":
118+
del self.packages["tc-rv32"]
119+
# Enable ULP toolchains
152120
if mcu in ("esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"):
153121
if mcu in ("esp32c2", "esp32c3", "esp32c6", "esp32h2"):
154-
self.packages.pop("tc-ulp", None)
122+
del self.packages["tc-ulp"]
155123
# RISC-V based toolchain for ESP32C3, ESP32C6 ESP32S2, ESP32S3 ULP
156124
if os.path.exists(IDF_TOOLS):
157-
rv32_path = "file://" + join(IDF_TOOLS_PATH_DEFAULT, "tools", "tc-rv32")
158125
self.packages["tc-rv32"]["optional"] = False
159-
self.packages["tc-rv32"]["version"] = rv32_path
160126

161127
return super().configure_default_packages(variables, targets)
162128

0 commit comments

Comments
 (0)