mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-28 16:46:31 +03:00
Merge branch 'feature/update-esp-clang-to-esp-21.1.3_20260304' into 'master'
feat(tools): update esp-clang version to esp-21.1.3_20260408 Closes IDF-14965, LLVM-501, and LLVM-531 See merge request espressif/esp-idf!46361
This commit is contained in:
@@ -155,6 +155,9 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1
|
||||
list(APPEND compile_options "-Wno-single-bit-bitfield-constant-conversion")
|
||||
endif()
|
||||
# warning: initializer overrides prior initialization of this subobject
|
||||
# in esp32c61 pmu_param.c when static unions are initialized (e.g. in pmu_hp_system_analog_param_default)
|
||||
list(APPEND compile_options "-Wno-initializer-overrides")
|
||||
endif()
|
||||
# More warnings may exist in unit tests and example projects.
|
||||
|
||||
|
||||
@@ -275,7 +275,8 @@ if(LOG_COMPRESSED_MODULE)
|
||||
"${jump_table_opts}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 15.0)
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 15.0) OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(files_with_compile_flags "host/bluedroid/device/controller.c")
|
||||
add_flags_if_in_list("${src}"
|
||||
"${files_with_compile_flags}"
|
||||
|
||||
@@ -64,7 +64,7 @@ int tc_hmac_set_key(TCHmacState_t ctx, const uint8_t *key,
|
||||
return TC_CRYPTO_FAIL;
|
||||
}
|
||||
|
||||
const uint8_t dummy_key[key_size];
|
||||
uint8_t dummy_key[key_size];
|
||||
struct tc_hmac_state_struct dummy_state;
|
||||
|
||||
if (key_size <= TC_SHA256_BLOCK_SIZE) {
|
||||
@@ -76,6 +76,7 @@ int tc_hmac_set_key(TCHmacState_t ctx, const uint8_t *key,
|
||||
* consumed in this process.
|
||||
*/
|
||||
(void)tc_sha256_init(&dummy_state.hash_state);
|
||||
_set(dummy_key, 0, sizeof(dummy_key));
|
||||
(void)tc_sha256_update(&dummy_state.hash_state,
|
||||
dummy_key,
|
||||
key_size);
|
||||
|
||||
@@ -22,7 +22,8 @@ function(set_bluedroid_host_compile_flags)
|
||||
PROPERTIES COMPILE_FLAGS "${jump_table_opts}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 15.0)
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 15.0) OR
|
||||
CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set_source_files_properties("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/device/controller.c"
|
||||
PROPERTIES COMPILE_FLAGS "-Wno-unterminated-string-initialization")
|
||||
endif()
|
||||
|
||||
@@ -6,7 +6,8 @@ if(${idf_target} STREQUAL "linux")
|
||||
return() # This component is not supported by the POSIX/Linux simulator
|
||||
endif()
|
||||
|
||||
if(CONFIG_ESP_COEX_ENABLED)
|
||||
# There are no subdir with implementation for esp32h4
|
||||
if(CONFIG_ESP_COEX_ENABLED AND NOT CONFIG_IDF_TARGET_ESP32H4)
|
||||
if(CONFIG_ESP_COEX_SW_COEXIST_ENABLE OR CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE)
|
||||
if(CONFIG_APP_NO_BLOBS)
|
||||
set(link_binary_libs 0)
|
||||
@@ -32,7 +33,8 @@ idf_component_register(SRCS "${srcs}"
|
||||
PRIV_REQUIRES esp_timer esp_driver_gpio
|
||||
LDFRAGMENTS "${ldfragments}")
|
||||
|
||||
if(CONFIG_ESP_COEX_ENABLED)
|
||||
# There are no subdir with implementation for esp32h4
|
||||
if(CONFIG_ESP_COEX_ENABLED AND NOT CONFIG_IDF_TARGET_ESP32H4)
|
||||
if(CONFIG_ESP_COEX_SW_COEXIST_ENABLE OR CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE)
|
||||
idf_build_get_property(build_dir BUILD_DIR)
|
||||
|
||||
|
||||
@@ -633,6 +633,7 @@ static inline bool gpio_ll_is_digital_io_hold(gpio_dev_t *hw, uint32_t gpio_num)
|
||||
return !!(LP_SYS.hp_gpio_o_hold_ctrl1.hp_gpio_0_hold_ctrl1 & (bit_mask >> (32 + SOC_RTCIO_PIN_COUNT)));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -187,12 +187,6 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/include/soc/${target}")
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT CONFIG_ESP32P4_SELECTS_REV_LESS_V3 AND CONFIG_IDF_TARGET_ESP32P4)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang") # TODO: LLVM-478 IDF-14338
|
||||
message(FATAL_ERROR "ESP32-P4 rev. 3.0 or higher is not supported in Clang-based toolchain")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${target} STREQUAL "esp32p4")
|
||||
# for mipi_csi_share_hw_ctrl.c
|
||||
list(APPEND priv_requires esp_hal_cam)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#endif
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
static DRAM_ATTR smp_retention_state_t s_smp_retention_state[portNUM_PROCESSORS];
|
||||
static DRAM_ATTR _Atomic(smp_retention_state_t) s_smp_retention_state[portNUM_PROCESSORS];
|
||||
#endif
|
||||
|
||||
static bool s_fpu_saved[portNUM_PROCESSORS];
|
||||
|
||||
@@ -74,7 +74,7 @@ static inline void * cpu_domain_clic_sleep_frame_alloc_and_init(uint8_t core_id)
|
||||
}
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state)
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state)
|
||||
{
|
||||
for (uint8_t core_id = 0; core_id < portNUM_PROCESSORS; ++core_id) {
|
||||
if (sleep_cpu_retention_ptr->retent.critical_frame[core_id] == NULL) {
|
||||
|
||||
@@ -49,7 +49,7 @@ typedef struct {
|
||||
} sleep_cpu_retention_t;
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state);
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state);
|
||||
#else
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr);
|
||||
#endif
|
||||
|
||||
@@ -143,7 +143,7 @@ static inline void * cpu_domain_clic_sleep_frame_alloc_and_init(uint8_t core_id)
|
||||
}
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state)
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state)
|
||||
{
|
||||
static DRAM_ATTR uint8_t rv_core_critical_regs[RV_SLEEP_CTX_FRMSZ * portNUM_PROCESSORS] __attribute__((aligned(4)));
|
||||
static DRAM_ATTR uint8_t rv_core_non_critical_regs[sizeof(RvCoreNonCriticalSleepFrame)* portNUM_PROCESSORS] __attribute__((aligned(4)));
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
.macro REG_CLR_BIT addr, value
|
||||
li a0, \addr
|
||||
/* Since all our parameters will be constants, we can pre-calculate it at assemble time */
|
||||
li a1, ~\value
|
||||
li a1, \value
|
||||
not a1, a1
|
||||
lw a2, (a0)
|
||||
and a2, a2, a1
|
||||
sw a2, (a0)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
static SPM_DRAM_ATTR smp_retention_state_t s_smp_retention_state[portNUM_PROCESSORS];
|
||||
static SPM_DRAM_ATTR _Atomic(smp_retention_state_t) s_smp_retention_state[portNUM_PROCESSORS];
|
||||
#endif
|
||||
|
||||
static bool s_fpu_saved[portNUM_PROCESSORS];
|
||||
|
||||
@@ -51,7 +51,7 @@ static inline void * cpu_domain_clic_sleep_frame_alloc_and_init(uint8_t core_id)
|
||||
}
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state)
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state)
|
||||
{
|
||||
for (uint8_t core_id = 0; core_id < portNUM_PROCESSORS; ++core_id) {
|
||||
if (sleep_cpu_retention_ptr->retent.critical_frame[core_id] == NULL) {
|
||||
|
||||
@@ -47,7 +47,7 @@ typedef struct {
|
||||
} sleep_cpu_retention_t;
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state);
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state);
|
||||
#else
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr);
|
||||
#endif
|
||||
|
||||
@@ -83,7 +83,7 @@ static inline void * cpu_domain_clic_sleep_frame_alloc_and_init(uint8_t core_id)
|
||||
}
|
||||
|
||||
#if CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU && !CONFIG_FREERTOS_UNICORE
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, smp_retention_state_t *s_smp_retention_state)
|
||||
esp_err_t esp_sleep_cpu_retention_init_impl(sleep_cpu_retention_t *sleep_cpu_retention_ptr, _Atomic(smp_retention_state_t) *s_smp_retention_state)
|
||||
{
|
||||
static DRAM_ATTR uint8_t rv_core_critical_regs[RV_SLEEP_CTX_FRMSZ * portNUM_PROCESSORS] __attribute__((aligned(4)));
|
||||
static DRAM_ATTR uint8_t rv_core_non_critical_regs[sizeof(RvCoreNonCriticalSleepFrame)* portNUM_PROCESSORS] __attribute__((aligned(4)));
|
||||
|
||||
@@ -158,6 +158,9 @@ if(CONFIG_LIBC_NEWLIB_NANO_FORMAT)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(libc_dir_cmd ${CMAKE_C_COMPILER})
|
||||
string(REPLACE " " ";" cflags_list ${CMAKE_C_FLAGS})
|
||||
# execute_process() quotes every argument, so we need to unquote response file path
|
||||
# otherwise it will be treated in wrong way and clang will ignore it
|
||||
string(REGEX REPLACE "@\"([^\"]*)\"" "@\\1" cflags_list ${cflags_list})
|
||||
list(APPEND libc_dir_cmd ${cflags_list} "-print-file-name=libc.a")
|
||||
execute_process(
|
||||
COMMAND ${libc_dir_cmd}
|
||||
|
||||
@@ -148,6 +148,7 @@
|
||||
.eh_frame_hdr :
|
||||
{
|
||||
ALIGNED_SYMBOL(4, __eh_frame_hdr)
|
||||
ALIGNED_SYMBOL(4, __eh_frame_hdr_start)
|
||||
|
||||
KEEP (*(.eh_frame_hdr))
|
||||
|
||||
@@ -160,6 +161,7 @@
|
||||
.eh_frame :
|
||||
{
|
||||
ALIGNED_SYMBOL(4, __eh_frame)
|
||||
ALIGNED_SYMBOL(4, __eh_frame_start)
|
||||
|
||||
KEEP (*(.eh_frame))
|
||||
|
||||
|
||||
@@ -123,11 +123,9 @@ if(CONFIG_ESP_WIFI_ENABLED OR CONFIG_ESP_HOST_WIFI_ENABLED)
|
||||
endforeach()
|
||||
endif()
|
||||
# TODO IDF-13365: remove the following lines
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
|
||||
set_source_files_properties(regulatory/esp_wifi_regulatory.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-unterminated-string-initialization)
|
||||
endif()
|
||||
set_source_files_properties(regulatory/esp_wifi_regulatory.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-unterminated-string-initialization)
|
||||
endif()
|
||||
|
||||
if(CONFIG_SPIRAM)
|
||||
|
||||
@@ -259,10 +259,11 @@ if(${IDF_TARGET} STREQUAL "linux")
|
||||
set(mbedtls_target_sources ${mbedtls_target_sources} "${COMPONENT_DIR}/port/net_sockets.c")
|
||||
endif()
|
||||
|
||||
# While updating to MbedTLS release/v3.4.0, building mbedtls/library/psa_crypto.c
|
||||
# clang produces an unreachable-code warning.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
target_compile_options(tfpsacrypto PRIVATE "-Wno-unreachable-code")
|
||||
# while building mbedtls/library/x509_crt.c
|
||||
# clang 21 produces an uninitialized-const-pointer warning
|
||||
target_compile_options(mbedx509 PRIVATE "-Wno-uninitialized-const-pointer")
|
||||
endif()
|
||||
|
||||
# net_sockets.c should only be compiled if BSD socket functions are available.
|
||||
|
||||
@@ -84,4 +84,23 @@ if(CONFIG_IDF_TOOLCHAIN_GCC)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown Espressif architecture: ${CONFIG_IDF_TARGET_ARCH}")
|
||||
endif()
|
||||
elseif(CONFIG_IDF_TOOLCHAIN_CLANG)
|
||||
idf_toolchain_add_flags(LINK_OPTIONS "-nostartfiles --ld-path=${CMAKE_LINKER} -z noexecstack")
|
||||
# Clean compile options that were added by previous configurations and may be outdated
|
||||
idf_toolchain_remove_flags(COMPILE_OPTIONS "-mcpu=")
|
||||
if(CONFIG_IDF_TARGET_ARCH_XTENSA)
|
||||
idf_toolchain_add_flags(COMPILE_OPTIONS "--target=xtensa-esp-elf")
|
||||
idf_toolchain_add_flags(ASM_COMPILE_OPTIONS "-Xassembler --longcalls")
|
||||
idf_toolchain_add_flags(COMPILE_OPTIONS "-mcpu=${CONFIG_IDF_TARGET}")
|
||||
elseif(CONFIG_IDF_TARGET_ARCH_RISCV)
|
||||
idf_toolchain_add_flags(COMPILE_OPTIONS "--target=riscv32-esp-elf")
|
||||
if(CONFIG_IDF_TARGET_ESP32P4 AND CONFIG_ESP32P4_SELECTS_REV_LESS_V3)
|
||||
idf_toolchain_add_flags(COMPILE_OPTIONS "-mcpu=esp32p4eco4")
|
||||
else()
|
||||
idf_toolchain_add_flags(COMPILE_OPTIONS "-mcpu=${CONFIG_IDF_TARGET}")
|
||||
endif()
|
||||
idf_toolchain_rerun_abi_detection()
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown Espressif architecture: ${CONFIG_IDF_TARGET_ARCH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -47,6 +47,9 @@ On Linux and macOS, it is recommended to install CMake using the OS-specific pac
|
||||
|
||||
.. tool-esp-clang-libs-notes
|
||||
|
||||
---
|
||||
|
||||
.. tool-esp-clangd-notes
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -48,6 +48,11 @@ On Linux and macOS, it is recommended to install CMake using the OS-specific pac
|
||||
.. tool-esp-clang-libs-notes
|
||||
|
||||
|
||||
---
|
||||
|
||||
.. tool-esp-clangd-notes
|
||||
|
||||
|
||||
---
|
||||
|
||||
.. tool-ninja-notes
|
||||
|
||||
@@ -1,2 +1,9 @@
|
||||
idf_component_register(SRCS "rtti_example_main.cpp"
|
||||
INCLUDE_DIRS ".")
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
# Fix Clang 21 potentially-evaluated-expression warning
|
||||
# rtti_example_main.cpp: error: expression with side effects will be evaluated
|
||||
# despite being used as an operand to 'typeid'
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-potentially-evaluated-expression)
|
||||
endif()
|
||||
|
||||
@@ -46,3 +46,4 @@ warning: unknown kconfig symbol 'ETHERNET_MDC_GPIO' assigned to '23' in .*/examp
|
||||
warning: unknown kconfig symbol 'ETHERNET_MDIO_GPIO' assigned to '18' in .*/examples/protocols/esp_http_client/sdkconfig.ci.*
|
||||
warning: unknown kconfig symbol 'ETHERNET_PHY_RST_GPIO' assigned to '5' in .*/examples/protocols/esp_http_client/sdkconfig.ci.*
|
||||
warning: unknown kconfig symbol 'ETHERNET_PHY_ADDR' assigned to '1' in .*/examples/protocols/esp_http_client/sdkconfig.ci.*
|
||||
warning: \S+ changed binding to STB_WEAK
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER xtensa-esp32-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP xtensa-esp32-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32 -Xassembler --longcalls \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=xtensa-esp32-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX xtensa-esp32-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imac_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
2
tools/cmake/toolchain-clang-esp32h21.cmake
Normal file
2
tools/cmake/toolchain-clang-esp32h21.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei -mabi=ilp32 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei -mabi=ilp32f \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei -mabi=ilp32f \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER riscv32-esp-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP riscv32-esp-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei_xesppie -mabi=ilp32f \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei_xesppie -mabi=ilp32f \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=riscv32-esp-elf -march=rv32imafc_zicsr_zifencei_xesppie -mabi=ilp32f \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=riscv32-esp-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER xtensa-esp32s2-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP xtensa-esp32s2-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s2 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s2 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s2 -Xassembler --longcalls \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=xtensa-esp32s2-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX xtensa-esp32s2-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
include($ENV{IDF_PATH}/tools/cmake/deduplicate_flags.cmake)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER xtensa-esp32s3-elf-clang-ld)
|
||||
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP xtensa-esp32s3-elf-clang-objdump)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s3 \
|
||||
${CMAKE_C_FLAGS}"
|
||||
UNIQ_CMAKE_C_FLAGS)
|
||||
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}"
|
||||
CACHE STRING "C Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s3 \
|
||||
${CMAKE_CXX_FLAGS}"
|
||||
UNIQ_CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}"
|
||||
CACHE STRING "C++ Compiler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("--target=xtensa-esp-elf -mcpu=esp32s3 -Xassembler --longcalls \
|
||||
${CMAKE_ASM_FLAGS}"
|
||||
UNIQ_CMAKE_ASM_FLAGS)
|
||||
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_ASM_FLAGS}"
|
||||
CACHE STRING "Assembler Base Flags"
|
||||
FORCE)
|
||||
|
||||
remove_duplicated_flags("-nostartfiles --ld-path=xtensa-esp32s3-elf-clang-ld -z noexecstack \
|
||||
${CMAKE_EXE_LINKER_FLAGS}"
|
||||
UNIQ_CMAKE_EXE_LINKER_FLAGS)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_EXE_LINKER_FLAGS}"
|
||||
CACHE STRING "Linker Base Flags"
|
||||
FORCE)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX xtensa-esp32s3-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
|
||||
2
tools/cmake/toolchain-clang-esp32s31.cmake
Normal file
2
tools/cmake/toolchain-clang-esp32s31.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
|
||||
include($ENV{IDF_PATH}/tools/cmake/toolchain.cmake)
|
||||
@@ -23,10 +23,10 @@ if(NOT found_clang EQUAL -1)
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_ASM_COMPILER clang)
|
||||
set(CMAKE_LINKER ${_CMAKE_TOOLCHAIN_PREFIX}ld)
|
||||
set(CMAKE_LINKER ${_CMAKE_TOOLCHAIN_PREFIX}clang-ld)
|
||||
set(CMAKE_AR llvm-ar)
|
||||
set(CMAKE_RANLIB llvm-ranlib)
|
||||
set(CMAKE_OBJDUMP ${_CMAKE_TOOLCHAIN_PREFIX}objdump)
|
||||
set(CMAKE_OBJDUMP ${_CMAKE_TOOLCHAIN_PREFIX}clang-objdump)
|
||||
else()
|
||||
set(IDF_TOOLCHAIN "gcc" CACHE STRING "IDF Build Toolchain Type" FORCE)
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
hint: "'esp_secure_boot_verify_rsa_signature_block()' has been made private and is no longer available."
|
||||
|
||||
-
|
||||
re: "error: implicit declaration of function '{}'"
|
||||
re: "error: (implicit declaration of function|use of undeclared identifier) '{}'"
|
||||
hint: '{0}.h header file is not included by esp_system.h anymore. It shall then be manually included with #include "{0}.h"'
|
||||
variables:
|
||||
-
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-FileCopyrightText: 2019-2026 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
import json
|
||||
import os
|
||||
@@ -57,6 +57,8 @@ RISCV_ESP_GDB = 'riscv32-esp-elf-gdb'
|
||||
ESP_ROM_ELFS = 'esp-rom-elfs'
|
||||
QEMU_RISCV = 'qemu-riscv32'
|
||||
QEMU_XTENSA = 'qemu-xtensa'
|
||||
CLANGD = 'esp-clangd'
|
||||
CLANGD_ARCHIVE = 'clangd'
|
||||
# Win tools
|
||||
CMAKE = 'cmake'
|
||||
NINJA = 'ninja'
|
||||
@@ -89,6 +91,7 @@ RISCV_ESP_GDB_VERSION = version_dict[RISCV_ESP_GDB]
|
||||
ESP_ROM_ELFS_VERSION = version_dict[ESP_ROM_ELFS]
|
||||
QEMU_RISCV_VERSION = version_dict[QEMU_RISCV]
|
||||
QEMU_XTENSA_VERSION = version_dict[QEMU_XTENSA]
|
||||
CLANGD_VERSION = version_dict[CLANGD]
|
||||
# Win tools
|
||||
CMAKE_VERSION = version_dict[CMAKE]
|
||||
NINJA_VERSION = version_dict[NINJA]
|
||||
@@ -377,8 +380,10 @@ class TestUsageUnix(TestUsage):
|
||||
self.assertIn(f'- {RISCV_ELF_VERSION} (recommended)', output)
|
||||
self.assertIn(f'* {XTENSA_ELF}:', output)
|
||||
self.assertIn(f'- {XTENSA_ELF_VERSION} (recommended)', output)
|
||||
self.assertIn(f'* {CLANGD}:', output)
|
||||
self.assertIn(f'- {CLANGD_VERSION} (recommended)', output)
|
||||
|
||||
required_tools_installed = 7
|
||||
required_tools_installed = 8
|
||||
output = self.run_idf_tools_with_action(['install'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -387,6 +392,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ESP_GDB, RISCV_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -399,6 +405,7 @@ class TestUsageUnix(TestUsage):
|
||||
XTENSA_ESP_GDB_VERSION,
|
||||
RISCV_ESP_GDB_VERSION,
|
||||
ESP_ROM_ELFS_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -416,6 +423,7 @@ class TestUsageUnix(TestUsage):
|
||||
output,
|
||||
)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-rom-elfs/{ESP_ROM_ELFS_VERSION}/', output)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-clangd/{CLANGD_VERSION}/esp-clangd/bin', output)
|
||||
|
||||
output = self.run_idf_tools_with_action(['list', '--outdated'])
|
||||
self.assertEqual('', output)
|
||||
@@ -443,7 +451,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assertIn((f'{XTENSA_ELF}: version {XTENSA_ELF_VERSION} is outdated by {new_version}'), output)
|
||||
|
||||
def test_tools_for_esp32(self):
|
||||
required_tools_installed = 5
|
||||
required_tools_installed = 6
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32'])
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -452,6 +460,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_not_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_not_installed(output, RISCV_ESP_GDB, RISCV_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -462,6 +471,7 @@ class TestUsageUnix(TestUsage):
|
||||
XTENSA_ELF_VERSION,
|
||||
XTENSA_ESP_GDB_VERSION,
|
||||
ESP_ROM_ELFS_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -479,9 +489,10 @@ class TestUsageUnix(TestUsage):
|
||||
output,
|
||||
)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-rom-elfs/{ESP_ROM_ELFS_VERSION}/', output)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-clangd/{CLANGD_VERSION}/esp-clangd/bin', output)
|
||||
|
||||
def test_tools_for_esp32c3(self):
|
||||
required_tools_installed = 4
|
||||
required_tools_installed = 5
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32c3'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -490,6 +501,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION)
|
||||
self.assert_tool_not_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -507,9 +519,10 @@ class TestUsageUnix(TestUsage):
|
||||
output,
|
||||
)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-rom-elfs/{ESP_ROM_ELFS_VERSION}/', output)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-clangd/{CLANGD_VERSION}/esp-clangd/bin', output)
|
||||
|
||||
def test_tools_for_esp32s2(self):
|
||||
required_tools_installed = 6
|
||||
required_tools_installed = 7
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32s2'])
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -518,6 +531,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_not_installed(output, RISCV_ESP_GDB, RISCV_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -539,9 +553,10 @@ class TestUsageUnix(TestUsage):
|
||||
output,
|
||||
)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-rom-elfs/{ESP_ROM_ELFS_VERSION}/', output)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-clangd/{CLANGD_VERSION}/esp-clangd/bin', output)
|
||||
|
||||
def test_tools_for_esp32s3(self):
|
||||
required_tools_installed = 6
|
||||
required_tools_installed = 7
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32s3'])
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -550,6 +565,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_not_installed(output, RISCV_ESP_GDB, RISCV_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -560,6 +576,7 @@ class TestUsageUnix(TestUsage):
|
||||
XTENSA_ESP_GDB_VERSION,
|
||||
RISCV_ESP_GDB_VERSION,
|
||||
ESP_ROM_ELFS_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -577,9 +594,10 @@ class TestUsageUnix(TestUsage):
|
||||
output,
|
||||
)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-rom-elfs/{ESP_ROM_ELFS_VERSION}/', output)
|
||||
self.assertIn(f'{self.temp_tools_dir}/tools/esp-clangd/{CLANGD_VERSION}/esp-clangd/bin', output)
|
||||
|
||||
def test_tools_for_esp32p4(self):
|
||||
required_tools_installed = 4
|
||||
required_tools_installed = 5
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32p4'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -588,6 +606,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_not_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION)
|
||||
self.assert_tool_not_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
output = self.run_idf_tools_with_action(['check'])
|
||||
@@ -614,10 +633,11 @@ class TestUsageUnix(TestUsage):
|
||||
os.path.join(self.temp_tools_dir, 'tools', XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION, XTENSA_ESP_GDB, 'bin'),
|
||||
output,
|
||||
)
|
||||
self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
# a different test for qemu because of "on_request"
|
||||
def test_tools_for_qemu_with_required(self):
|
||||
required_tools_installed = 9
|
||||
required_tools_installed = 10
|
||||
output = self.run_idf_tools_with_action(['install', 'required', 'qemu-xtensa', 'qemu-riscv32'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -628,6 +648,7 @@ class TestUsageUnix(TestUsage):
|
||||
self.assert_tool_installed(output, ESP_ROM_ELFS, ESP_ROM_ELFS_VERSION)
|
||||
self.assert_tool_installed(output, QEMU_RISCV, QEMU_RISCV_VERSION)
|
||||
self.assert_tool_installed(output, QEMU_XTENSA, QEMU_XTENSA_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -652,7 +673,8 @@ class TestUsageWin(TestUsage):
|
||||
self.assertIn(f'- {RISCV_ELF_VERSION} (recommended)', output)
|
||||
self.assertIn(f'* {XTENSA_ELF}:', output)
|
||||
self.assertIn(f'- {XTENSA_ELF_VERSION} (recommended)', output)
|
||||
|
||||
self.assertIn(f'* {CLANGD}:', output)
|
||||
self.assertIn(f'- {CLANGD_VERSION} (recommended)', output)
|
||||
required_tools_installed = 12
|
||||
output = self.run_idf_tools_with_action(['install'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -667,6 +689,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -684,6 +707,7 @@ class TestUsageWin(TestUsage):
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
DFU_UTIL_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -724,6 +748,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assertIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
output = self.run_idf_tools_with_action(['list', '--outdated'])
|
||||
self.assertEqual('', output)
|
||||
@@ -751,7 +776,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assertIn((f'{XTENSA_ELF}: version {XTENSA_ELF_VERSION} is outdated by {new_version}'), output)
|
||||
|
||||
def test_tools_for_esp32_win(self):
|
||||
required_tools_installed = 9
|
||||
required_tools_installed = 10
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32'])
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -765,6 +790,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_not_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -779,6 +805,7 @@ class TestUsageWin(TestUsage):
|
||||
NINJA_VERSION,
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
self.assertNotIn('version installed in tools directory: ' + DFU_UTIL_VERSION, output)
|
||||
@@ -828,9 +855,10 @@ class TestUsageWin(TestUsage):
|
||||
self.assertNotIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
def test_tools_for_esp32c3_win(self):
|
||||
required_tools_installed = 8
|
||||
required_tools_installed = 9
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32c3'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -844,6 +872,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_not_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -857,6 +886,7 @@ class TestUsageWin(TestUsage):
|
||||
NINJA_VERSION,
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
self.assertNotIn('version installed in tools directory: ' + DFU_UTIL_VERSION, output)
|
||||
@@ -900,9 +930,10 @@ class TestUsageWin(TestUsage):
|
||||
self.assertNotIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
def test_tools_for_esp32s2_win(self):
|
||||
required_tools_installed = 11
|
||||
required_tools_installed = 12
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32s2'])
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
@@ -916,6 +947,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -930,6 +962,7 @@ class TestUsageWin(TestUsage):
|
||||
NINJA_VERSION,
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -978,9 +1011,10 @@ class TestUsageWin(TestUsage):
|
||||
self.assertIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
def test_tools_for_esp32s3_win(self):
|
||||
required_tools_installed = 11
|
||||
required_tools_installed = 12
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32s3'])
|
||||
print(output)
|
||||
self.assert_tool_installed(output, XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF_ARCHIVE_PATTERN)
|
||||
@@ -995,6 +1029,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
@@ -1010,6 +1045,7 @@ class TestUsageWin(TestUsage):
|
||||
NINJA_VERSION,
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn('version installed in tools directory: ' + tool_version, output)
|
||||
|
||||
@@ -1058,9 +1094,10 @@ class TestUsageWin(TestUsage):
|
||||
self.assertIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
def test_tools_for_esp32p4_win(self):
|
||||
required_tools_installed = 8
|
||||
required_tools_installed = 9
|
||||
output = self.run_idf_tools_with_action(['install', '--targets=esp32p4'])
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
self.assert_tool_installed(output, RISCV_ESP_GDB, RISCV_ESP_GDB_VERSION)
|
||||
@@ -1074,6 +1111,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_not_installed(output, ESP32ULP, ESP32ULP_VERSION)
|
||||
self.assert_tool_not_installed(output, XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION)
|
||||
self.assert_tool_not_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
output = self.run_idf_tools_with_action(['check'])
|
||||
@@ -1086,6 +1124,7 @@ class TestUsageWin(TestUsage):
|
||||
NINJA_VERSION,
|
||||
IDF_EXE_VERSION,
|
||||
CCACHE_VERSION,
|
||||
CLANGD_VERSION,
|
||||
]:
|
||||
self.assertIn(f'version installed in tools directory: {tool_version}', output)
|
||||
|
||||
@@ -1118,10 +1157,11 @@ class TestUsageWin(TestUsage):
|
||||
self.assertNotIn(
|
||||
os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output
|
||||
)
|
||||
self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', CLANGD, CLANGD_VERSION, CLANGD, 'bin'), output)
|
||||
|
||||
# a different test for qemu because of "on_request"
|
||||
def test_tools_for_qemu_with_required_win(self):
|
||||
required_tools_installed = 14
|
||||
required_tools_installed = 15
|
||||
output = self.run_idf_tools_with_action(['install', 'required', 'qemu-xtensa', 'qemu-riscv32'])
|
||||
self.assert_tool_installed(output, OPENOCD, OPENOCD_VERSION)
|
||||
self.assert_tool_installed(output, RISCV_ELF, RISCV_ELF_VERSION, RISCV_ELF_ARCHIVE_PATTERN)
|
||||
@@ -1137,6 +1177,7 @@ class TestUsageWin(TestUsage):
|
||||
self.assert_tool_installed(output, IDF_EXE, IDF_EXE_VERSION)
|
||||
self.assert_tool_installed(output, CCACHE, CCACHE_VERSION)
|
||||
self.assert_tool_installed(output, DFU_UTIL, DFU_UTIL_VERSION)
|
||||
self.assert_tool_installed(output, CLANGD, CLANGD_VERSION, CLANGD_ARCHIVE)
|
||||
self.assertIn('Destination: {}'.format(os.path.join(self.temp_tools_dir, 'dist')), output)
|
||||
self.assertEqual(required_tools_installed, output.count('Done'))
|
||||
|
||||
|
||||
146
tools/tools.json
146
tools/tools.json
@@ -278,36 +278,36 @@
|
||||
"versions": [
|
||||
{
|
||||
"linux-amd64": {
|
||||
"sha256": "88910c21350c06a521f243304d1a3adbdb78447123b3f8e27493aab75e3cc07f",
|
||||
"size": 339870496,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-x86_64-linux-gnu.tar.xz"
|
||||
"sha256": "6e62bf1973b57b5388aad281ce1463e953e70b3d8df74ef4668c70f31fbeda63",
|
||||
"size": 416927952,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-x86_64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-arm64": {
|
||||
"sha256": "41f536fdee22527011d89e416b301648afd9f738d03e1c62f2b27e36ec395c4c",
|
||||
"size": 319722760,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-aarch64-linux-gnu.tar.xz"
|
||||
"sha256": "a25e5446ba3aa4bccfafa4328cec240c5b1ae7638978d868c26777c4ceca241b",
|
||||
"size": 371652712,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-aarch64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-armhf": {
|
||||
"sha256": "7b695e88e21ba8a503d504f940dd34a7e4d3e98605c856b6836eec9117a5be94",
|
||||
"size": 323395316,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-arm-linux-gnueabihf.tar.xz"
|
||||
"sha256": "dea30c6e3548aea856e047727054b8d9fe91dcf19dbb76ae426951a8bc7d960e",
|
||||
"size": 383104848,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-arm-linux-gnueabihf.tar.xz"
|
||||
},
|
||||
"macos": {
|
||||
"sha256": "7dca85cd594185d8f9cf76f7e0c3420ee07057c1538b0016d8342677463f9ade",
|
||||
"size": 303055152,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-x86_64-apple-darwin.tar.xz"
|
||||
"sha256": "0096cbd1713b226bb403b19547003918943ec3294481d2a69c1596c9597f1ba5",
|
||||
"size": 362965152,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-x86_64-apple-darwin.tar.xz"
|
||||
},
|
||||
"macos-arm64": {
|
||||
"sha256": "85ff833a326593df376010a2aa18d6aa444f239c1dfed604e13502d00c19db30",
|
||||
"size": 278008728,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-aarch64-apple-darwin.tar.xz"
|
||||
"sha256": "b04a345c7b4125400e4de78734cece01147e0cc43b57aeef846ef3b8ff57ef7d",
|
||||
"size": 340183960,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-aarch64-apple-darwin.tar.xz"
|
||||
},
|
||||
"name": "esp-20.1.1_20250829",
|
||||
"name": "esp-21.1.3_20260408",
|
||||
"status": "recommended",
|
||||
"win64": {
|
||||
"sha256": "f40d7fa0efa399d129b675585355a7ef42a3492188d743e8e089b6038fcc0da1",
|
||||
"size": 365038604,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/clang-esp-20.1.1_20250829-x86_64-w64-mingw32.tar.xz"
|
||||
"sha256": "415566ace6f47a9abc302b4ba79776d27668fd3f4e9c0d26861ec4f970323618",
|
||||
"size": 426383328,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clang-esp-21.1.3_20260408-x86_64-w64-mingw32.tar.xz"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -342,36 +342,36 @@
|
||||
"versions": [
|
||||
{
|
||||
"linux-amd64": {
|
||||
"sha256": "0128e2a86b262e3edfce026034ede07e2f45732b10c6cb8ac522c8f4c72befd8",
|
||||
"size": 79625368,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-x86_64-linux-gnu.tar.xz"
|
||||
"sha256": "c75406f5f0a1fe9692cdf6e6628cbbdf3f25e5721bb58d5e5540ea756d1197f3",
|
||||
"size": 83267264,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-x86_64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-arm64": {
|
||||
"sha256": "cca598861f999bfd408491f4288c2f381b448f9ddbdac2fb4144747329878405",
|
||||
"size": 72943108,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-aarch64-linux-gnu.tar.xz"
|
||||
"sha256": "a3d89fcb12b59b7b96a20c05e32a4c7ffe3400f965c153310137ffa02e27ec38",
|
||||
"size": 72333960,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-aarch64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-armhf": {
|
||||
"sha256": "26251ee323f616199fcef7a8ea5ee95a2cda2c1e781196ec002c49aeb99de1db",
|
||||
"size": 75990564,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-arm-linux-gnueabihf.tar.xz"
|
||||
"sha256": "79995c0ce185aad89b3f96d097e6ca6c0273cccf47961c5e6c89d6cd494ea0d0",
|
||||
"size": 75211944,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-arm-linux-gnueabihf.tar.xz"
|
||||
},
|
||||
"macos": {
|
||||
"sha256": "1c8ad98599a58c64396476ae9f66e33f408a2b2ed8ee6f8b2f0a92a5bd6bad84",
|
||||
"size": 60626132,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-x86_64-apple-darwin.tar.xz"
|
||||
"sha256": "2e3c51ffa570f7f3ea562686b3fef1a1c07a541096ac291b9bb8bfbac7b82f9c",
|
||||
"size": 59725364,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-x86_64-apple-darwin.tar.xz"
|
||||
},
|
||||
"macos-arm64": {
|
||||
"sha256": "9582374ed7664aa46c5fc8cedde74b81ec85db9013e7ce85d01e172e92f0ac1f",
|
||||
"size": 51084140,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-aarch64-apple-darwin.tar.xz"
|
||||
"sha256": "b524f0f36c6b8897b5dc2a85f66102cc44a2d1dcfdde15fa96796b7c1778b8d3",
|
||||
"size": 50260232,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-aarch64-apple-darwin.tar.xz"
|
||||
},
|
||||
"name": "esp-20.1.1_20250829",
|
||||
"name": "esp-21.1.3_20260408",
|
||||
"status": "recommended",
|
||||
"win64": {
|
||||
"sha256": "f4346641a38e6a9adad79c429be506b3df26540c50f39ab49dba9ad2c797a805",
|
||||
"size": 42491440,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-20.1.1_20250829/libs-clang-esp-20.1.1_20250829-x86_64-w64-mingw32.tar.xz"
|
||||
"sha256": "00cc2ba925b6d807d722635516a1c44ce3e82cb9f01a2ea9385f19e6cb88c7c5",
|
||||
"size": 43058104,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/libs-clang-esp-21.1.3_20260408-x86_64-w64-mingw32.tar.xz"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1080,6 +1080,76 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Clangd for all Espressif chips",
|
||||
"export_paths": [
|
||||
[
|
||||
"esp-clangd",
|
||||
"bin"
|
||||
]
|
||||
],
|
||||
"export_vars": {},
|
||||
"info_url": "https://github.com/espressif/llvm-project",
|
||||
"install": "always",
|
||||
"license": "Apache-2.0",
|
||||
"name": "esp-clangd",
|
||||
"supported_targets": [
|
||||
"esp32",
|
||||
"esp32s2",
|
||||
"esp32s3",
|
||||
"esp32c3",
|
||||
"esp32c2",
|
||||
"esp32c6",
|
||||
"esp32c5",
|
||||
"esp32h2",
|
||||
"esp32p4",
|
||||
"esp32c61",
|
||||
"esp32h21",
|
||||
"esp32h4",
|
||||
"esp32s31"
|
||||
],
|
||||
"version_cmd": [
|
||||
"clangd",
|
||||
"--version"
|
||||
],
|
||||
"version_regex": "\\([^\\s]+\\s+([0-9a-zA-Z\\.\\-_]+)\\)",
|
||||
"versions": [
|
||||
{
|
||||
"linux-amd64": {
|
||||
"sha256": "7133e67db271ca96b30ec9f5c34c903eaf5fe10120cfe44f85eb88db7ddbe230",
|
||||
"size": 17077740,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-x86_64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-arm64": {
|
||||
"sha256": "468e6fa03def6bcf0c0469d25b8d8b86212e5a94716d0b3db149f21b77791c54",
|
||||
"size": 14706612,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-aarch64-linux-gnu.tar.xz"
|
||||
},
|
||||
"linux-armhf": {
|
||||
"sha256": "401a3b08011de2a52af6ed729ddf49f970072047886423b148a3cae980e1ef2d",
|
||||
"size": 15367384,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-arm-linux-gnueabihf.tar.xz"
|
||||
},
|
||||
"macos": {
|
||||
"sha256": "cb8ac31ea7f8e20da69cea9e1720500571c8f2bae335eb1721b676f7ef3950fe",
|
||||
"size": 12662520,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-x86_64-apple-darwin.tar.xz"
|
||||
},
|
||||
"macos-arm64": {
|
||||
"sha256": "6dccab9acc9766c90383e9b2585fa1cfabad6125bdc32987a86a02cea598970d",
|
||||
"size": 10995644,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-aarch64-apple-darwin.tar.xz"
|
||||
},
|
||||
"name": "esp-21.1.3_20260408",
|
||||
"status": "recommended",
|
||||
"win64": {
|
||||
"sha256": "1a91c04bb570e0740eede529b20c98c2dd0be6750eb7d91a7226e19f3d88d490",
|
||||
"size": 14144936,
|
||||
"url": "https://github.com/espressif/llvm-project/releases/download/esp-21.1.3_20260408/clangd-esp-21.1.3_20260408-x86_64-w64-mingw32.tar.xz"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"version": 3
|
||||
|
||||
Reference in New Issue
Block a user