feat(build): add COMPILER_CXX_TRIVIAL_AUTO_VAR_INIT to keep C++26 behavior after toolchain upgrade

This commit is contained in:
Alexey Lapshin
2026-06-17 17:24:25 +07:00
parent 71618c88e3
commit 00ec8187b4
3 changed files with 67 additions and 0 deletions
+16
View File
@@ -242,6 +242,22 @@ function(__init_project_configuration)
list(APPEND compile_options "-Wunused-but-set-variable=1")
endif()
if(CONFIG_COMPILER_CXX_TRIVIAL_AUTO_VAR_INIT_UNINITIALIZED)
set(compiler_cxx_trivial_auto_var_init "uninitialized")
elseif(CONFIG_COMPILER_CXX_TRIVIAL_AUTO_VAR_INIT_PATTERN)
set(compiler_cxx_trivial_auto_var_init "pattern")
elseif(CONFIG_COMPILER_CXX_TRIVIAL_AUTO_VAR_INIT_ZERO)
set(compiler_cxx_trivial_auto_var_init "zero")
endif()
if(compiler_cxx_trivial_auto_var_init)
idf_toolchain_remove_flags(CXX_COMPILE_OPTIONS "-ftrivial-auto-var-init")
check_cxx_compiler_flag("-ftrivial-auto-var-init=${compiler_cxx_trivial_auto_var_init}"
compiler_supports_ftrivial_auto_var_init)
if(compiler_supports_ftrivial_auto_var_init)
idf_toolchain_add_flags(CXX_COMPILE_OPTIONS "-ftrivial-auto-var-init=${compiler_cxx_trivial_auto_var_init}")
endif()
endif()
# Clang finds some warnings in IDF code which GCC doesn't.
# All these warnings should be fixed before Clang is presented
# as a toolchain choice for users.