15
15
import os
16
16
import subprocess
17
17
import sys
18
+ import requests
18
19
import shutil
19
20
from os .path import isfile , join
20
21
49
50
sys .stderr .write ("Error: Couldn't execute 'idf_tools.py install'\n " )
50
51
else :
51
52
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
- for p in ("tool-mklittlefs" , "tool-mkfatfs" , "tool-mkspiffs" , "tool-dfuutil" , "tool-openocd" , "tool-cmake" , "tool-ninja" , "tool-cppcheck" , "tool-clangtidy" , "tool-pvs-studio" , "tc-xt-esp32" , "tc-xt-esp32s2" , "tc-xt-esp32s3" , "tc- ulp" , "tc-rv32" , "tl-xt-gdb" , "tl-rv-gdb" , "contrib-piohome" , "contrib-pioremote" ):
53
+ for p in ("tool-mklittlefs" , "tool-mkfatfs" , "tool-mkspiffs" , "tool-dfuutil" , "tool-openocd" , "tool-cmake" , "tool-ninja" , "tool-cppcheck" , "tool-clangtidy" , "tool-pvs-studio" , "tc-xt-esp32" , "tc-ulp" , "tc-rv32" , "tl-xt-gdb" , "tl-rv-gdb" , "contrib-piohome" , "contrib-pioremote" ):
53
54
tl_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , p )
54
55
pm .install (tl_path )
55
56
@@ -72,15 +73,28 @@ def configure_default_packages(self, variables, targets):
72
73
self .packages ["riscv32-esp-elf-gdb" ]["optional" ] = True
73
74
self .packages ["xtensa-esp-elf-gdb" ]["optional" ] = True
74
75
75
- # Enable check tools only when "check_tool" is enabled
76
76
if tl_flag :
77
+ # Install tool is not needed anymore
78
+ del self .packages ["tl-install" ]
79
+ # Enable check tools only when "check_tool" is enabled
77
80
for p in self .packages :
78
81
if p in ("tool-cppcheck" , "tool-clangtidy" , "tool-pvs-studio" ):
79
82
self .packages [p ]["optional" ] = False if str (variables .get ("check_tool" )).strip ("['']" ) in p else True
80
83
81
84
if "arduino" in frameworks :
82
85
self .packages ["framework-arduinoespressif32" ]["optional" ] = False
83
86
self .packages ["framework-arduinoespressif32-libs" ]["optional" ] = False
87
+ # use latest espressif Arduino libs
88
+ URL = "https://raw.githubusercontent.com/espressif/arduino-esp32/release/v3.1.x/package/package_esp32_index.template.json"
89
+ packjdata = requests .get (URL ).json ()
90
+ dyn_lib_url = packjdata ['packages' ][0 ]['tools' ][0 ]['systems' ][0 ]['url' ]
91
+ self .packages ["framework-arduinoespressif32-libs" ]["version" ] = dyn_lib_url
92
+
93
+ # packages for IDF and mixed Arduino+IDF projects
94
+ if tl_flag and "espidf" in frameworks :
95
+ for p in self .packages :
96
+ if p in ("tool-scons" , "tool-cmake" , "tool-ninja" ):
97
+ self .packages [p ]["optional" ] = False
84
98
85
99
if "" .join (targets ) in ("upload" , "buildfs" , "uploadfs" ):
86
100
filesystem = variables .get ("board_build.filesystem" , "littlefs" )
@@ -128,20 +142,20 @@ def configure_default_packages(self, variables, targets):
128
142
# Enable needed toolchains
129
143
for available_mcu in ("esp32" , "esp32s2" , "esp32s3" ):
130
144
if available_mcu == mcu and tl_flag :
131
- tc_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tc-xt-%s" % mcu )
132
- self .packages ["toolchain- xtensa-%s" % mcu ]["optional" ] = False
133
- self .packages ["toolchain- xtensa-%s" % mcu ]["version" ] = tc_path
145
+ tc_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tc-xt-esp32" )
146
+ self .packages ["xtensa-esp-elf" ]["optional" ] = False
147
+ self .packages ["xtensa-esp-elf" ]["version" ] = tc_path
134
148
if available_mcu == "esp32" :
135
- del self .packages ["toolchain- riscv32-esp" ]
149
+ del self .packages ["riscv32-esp-elf " ]
136
150
# Enable riscv and ULP toolchains
137
151
if mcu in ("esp32s2" , "esp32s3" , "esp32c2" , "esp32c3" , "esp32c6" , "esp32h2" ):
138
152
if mcu in ("esp32c2" , "esp32c3" , "esp32c6" , "esp32h2" ):
139
- del self .packages ["toolchain- esp32ulp" ]
153
+ del self .packages ["esp32ulp-elf " ]
140
154
# RISC-V based toolchain for ESP32C3, ESP32C6 ESP32S2, ESP32S3 ULP
141
155
if tl_flag :
142
156
tc_path = "file://" + join (IDF_TOOLS_PATH_DEFAULT , "tools" , "tc-rv32" )
143
- self .packages ["toolchain- riscv32-esp" ]["optional" ] = False
144
- self .packages ["toolchain- riscv32-esp" ]["version" ] = tc_path
157
+ self .packages ["riscv32-esp-elf " ]["optional" ] = False
158
+ self .packages ["riscv32-esp-elf " ]["version" ] = tc_path
145
159
146
160
return super ().configure_default_packages (variables , targets )
147
161
0 commit comments