@@ -50,22 +50,18 @@ def configure_default_packages(self, variables, targets):
50
50
else :
51
51
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 )
52
52
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
69
65
70
66
if "arduino" in frameworks :
71
67
self .packages ["framework-arduinoespressif32" ]["optional" ] = False
@@ -98,12 +94,6 @@ def configure_default_packages(self, variables, targets):
98
94
else :
99
95
del self .packages ["tool-openocd" ]
100
96
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
-
107
97
if "downloadfs" in targets :
108
98
filesystem = variables .get ("board_build.filesystem" , "littlefs" )
109
99
if filesystem == "littlefs" :
@@ -114,49 +104,25 @@ def configure_default_packages(self, variables, targets):
114
104
115
105
# Currently only Arduino Nano ESP32 uses the dfuutil tool as uploader
116
106
if variables .get ("board" ) == "arduino_nano_esp32" :
117
- tl_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tool-dfuutil" )
118
107
self .packages ["tool-dfuutil" ]["optional" ] = False
119
- self .packages ["tool-dfuutil" ]["version" ] = tl_path
120
108
else :
121
109
del self .packages ["tool-dfuutil" ]
122
110
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
144
112
for available_mcu in ("esp32" , "esp32s2" , "esp32s3" ):
145
113
if available_mcu == mcu and os .path .exists (IDF_TOOLS ):
146
114
tc_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tc-xt-%s" % mcu )
147
115
self .packages ["tc-xt-%s" % mcu ]["optional" ] = False
148
116
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
152
120
if mcu in ("esp32s2" , "esp32s3" , "esp32c2" , "esp32c3" , "esp32c6" , "esp32h2" ):
153
121
if mcu in ("esp32c2" , "esp32c3" , "esp32c6" , "esp32h2" ):
154
- self .packages . pop ( "tc-ulp" , None )
122
+ del self .packages [ "tc-ulp" ]
155
123
# RISC-V based toolchain for ESP32C3, ESP32C6 ESP32S2, ESP32S3 ULP
156
124
if os .path .exists (IDF_TOOLS ):
157
- rv32_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tc-rv32" )
158
125
self .packages ["tc-rv32" ]["optional" ] = False
159
- self .packages ["tc-rv32" ]["version" ] = rv32_path
160
126
161
127
return super ().configure_default_packages (variables , targets )
162
128
0 commit comments