Commit Graph
7388 Commits
Author SHA1 Message Date
armando f5f8fcc4cf ci(p4): re-enable p4 jobs 2025-11-21 02:48:05 +00:00
Roland Dobai fa1fceafd4 Merge branch 'feat/update_ccache_to_4.12.1_v6.0' into 'release/v6.0'
feat(tools): Updated ccache 4.11.2 -> 4.12.1 (v6.0)

See merge request espressif/esp-idf!43566
2025-11-21 00:13:27 +01:00
morris 7f0f043e63 Merge branch 'refactor/gpio_rom_func_rename_v6.0' into 'release/v6.0'
refactor(rom/gpio): add 'rom_' prefix to GPIO ROM functions (v6.0)

See merge request espressif/esp-idf!43400
2025-11-20 21:35:13 +08:00
Marek Fiala 063eebb046 feat(tools): Updated ccache 4.11.2 -> 4.12.1
Closes https://github.com/espressif/esp-idf/issues/17756
2025-11-20 14:11:26 +01:00
Marek Fiala 7a8389b6c8 refactor(tools): test_idf_tools.py ruff changes 2025-11-20 14:11:26 +01:00
Roland Dobai 0825f0f0cf Merge branch 'feat/cmakev2_size_targets_v6.0' into 'release/v6.0'
fix(cmakev2): add size report targets (v6.0)

See merge request espressif/esp-idf!43546
2025-11-20 13:54:22 +01:00
glmfe e187d3b259 feat(protocol_examples_common): Use Ethernet Init component
- Refactored protocol_examples_common to use ethernet_init component
2025-11-20 18:57:03 +08:00
Marius Vikhammer ad29ffc78f Merge branch 'ci/enable-junit-report-in-mr_v6.0' into 'release/v6.0'
ci: enable junit report in MR (v6.0)

See merge request espressif/esp-idf!43290
2025-11-20 18:43:39 +08:00
Frantisek Hrbata 91add83a38 feat(cmakev2/size): add idf_create_size_report function
The idf_create_size_report function allows for the creation of size
report targets based on the generated link map file. The size report
targets are created using the TARGET option name: "<target>",
"<target>-files", and "<target>-components". These size report targets
are added to the idf_default_project with the TARGET set to "size",
resulting in the creation of "size", "size-files", and "size-components"
targets for the default project.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:51 +01:00
Frantisek Hrbata 3318bd4c1d fix(cmakev2/project): unset global variables in idf_project_init macro
The idf_project_init macro is evaluated within the global variable
scope, and currently, there are a few variables still set. Let's ensure
all variables are properly unset to avoid polluting the global variable
namespace.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:51 +01:00
Frantisek Hrbata a500965fcb fix(cmakev2/build): display a warning when the MINIMAL_BUILD property is set
The MINIMAL_BUILD property is not relevant in cmakev2, as only
components explicitly linked through targets are included in the build
by design. Display a warning when this outdated build property is set.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata 177483ec55 fix(cmakev2/build): fix the generation of the link map file
The link flag for generating the map file is currently added globally to
the link_options. If multiple executables are generated, the link map
file is overwritten by the last created executable. Since cmakev2
supports building multiple executables, the link map file options need
to be set for each executable individually. To address this, add a new
MAPFILE_TARGET option to the idf_build_executable function. When set,
the link map file will be generated by the linker, and a target
specified in the MAPFILE_TARGET option will be created for the map file.

This also splits the idf_project_default macro.  Only the
idf_project_init macro needs be called within the global scope, as it
includes the project_include.cmake files and the cmake version of the
configuration. The remaining functionality of the idf_project_default
macro is implemented in a __project_default helper function to avoid
polluting the global variable space.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata f23de1f518 fix(cmakev2/build): pass binary target to idf_build_generate_metadata
Currently, the `idf_build_generate_metadata` function takes an
executable target as an argument, and the binary name is stored in the
`EXECUTABLE_BINARY` property. This approach is inconvenient because a
single executable might generate multiple binary images, making it
unreliable to store the binary image name in the executable property due
to the N:1 relationship. To address this, pass the binary image target
instead of the executable target to the `idf_build_generate_metadata`
function. This change is facilitated by linking the binary target,
executable target, and library interface targets with the following
properties:

binary:EXECUTABLE_TARGET -> executable:LIBRARY_INTERFACE -> library

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
Frantisek Hrbata 621af79762 fix(cmakev2/project): remove temporary workaround for partition and bootloader flash dependencies
With commit b719292b75 ("refactor(build-system): Simplify flash target creation"),
partition table and bootloader components are correctly adding their
dependency on the flash target, so there is no need for this to be done
in the build system. This removes the temporary workaround.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-20 10:22:50 +01:00
harshal.patil c1503cd847 feat(bootloader_support): Support Flash Encryption using Key Manager 2025-11-20 11:37:05 +05:30
Sudeep Mohanty c3658a495e test(cmakev2): Enable test_build_uf2 for buildv2 CI tests 2025-11-19 14:45:55 +05:30
Sudeep Mohanty e5f35bc2d7 feat(cmakev2): Add uf2 target support for cmakev2
This commit adds support for uf2 targets for cmake2. The following
changes have been made:
- Adds a new tools/cmakev2/uf2.cmake.
- Adds the idf_create_uf2() function to create the uf2 targets. This
  function now takes the executable as an argument thus allowing the uf2
  target to be created per-executable.
- idf_project_default() is updated to create the uf2 targets.
2025-11-19 14:45:55 +05:30
Sudeep Mohanty e28a2262f3 test(cmakev2): Enable test_build_dfu for buildv2 CI tests 2025-11-19 14:45:55 +05:30
Sudeep Mohanty 0fe5868cf2 feat(cmakev2): Add dfu target support for cmakev2
This commit adds support for dfu targets for cmake2. The following
changes have been made:
- Adds a new tools/cmakev2/dfu.cmake file on similar lines as the
  tools/cmake/dfu.cmake file.
- Adds the idf_create_dfu() function to create the dfu targets. This
  function now takes the executable as an argument thus allowing the dfu
  target to be created per-executable.
- idf_project_default() is updated to create the dfu target.
2025-11-19 14:45:55 +05:30
Sudeep Mohanty 55de37fbf1 test(cmakev2): Enable test_rebuild.py for buildv2 CI tests
The test_rebuild_no_changes test verifies that running idf.py build
successively without any file changes results in identical build
artifacts on the second run (i.e., nothing gets rebuilt).

This test was failing in buildv2 because it expected kconfig_menus.json
to be present in build/config/ after a normal build. However, in
cmakev2, kconfig_menus.json is not generated during regular builds.

In cmakev1, kconfig_menus.json was generated globally during every
build alongside other config files (sdkconfig.h, sdkconfig.cmake, etc).

In cmakev2, kconfig_menus.json generation does not happend for
normal builds because it depends on the Kconfig menu hierarchy
and cannot be generated globally. It must be generated per-executable.

Hence, this commit updates the artefacts list for cmakev2 to not expect
the kconfig_menus.json file during a build/re-build action.
2025-11-19 14:45:55 +05:30
Song Ruo Jing ae7962e697 refactor(rom/gpio): add 'rom_' prefix to GPIO ROM functions 2025-11-19 12:17:52 +08:00
Alexey Lapshin cbe44f2e33 fix(test): fix tests according to the new toolchain flags 2025-11-19 01:12:40 +07:00
Alexey Lapshin a217630b1e feat(build): propagate compiler flags from files to toolchain.cmake
This change improves build consistency across external projects integrated
through CMake by ensuring that compiler flags defined in configuration files
are passed correctly to the toolchain. It covers the majority of use cases,
as external projects are typically also CMake-based. For projects that use
a custom build system, users will still need to specify the required flags
manually.
2025-11-19 01:12:40 +07:00
morris e9539d4560 refactor: avoid function calls inside MIN/MAX macros 2025-11-18 15:18:14 +08:00
Mahavir Jain 582d3cce08 Merge branch 'feat/extend_pmp_protection_esp32p4_eco5_v6.0' into 'release/v6.0'
Extend PMP memprot for ESP32-P4 V3 (v6.0)

See merge request espressif/esp-idf!43264
2025-11-17 10:18:18 +05:30
Euripedes Rocha 98a9e14d0e Merge branch 'removes_esp_mqtt_v6.0' into 'release/v6.0'
change(mqtt): Removes the mqtt client from idf (v6.0)

See merge request espressif/esp-idf!43292
2025-11-15 18:25:58 +01:00
Alexey Gerenkov 6c118b39c0 Merge branch 'move_sysview_to_component_registry_v6.0' into 'release/v6.0'
Move sysview to component registry (v6.0)

See merge request espressif/esp-idf!43218
2025-11-14 18:32:46 +08:00
Euripedes Rocha Filho dcf03ca0d2 remove(mqtt): Moves esp-mqtt to component manager
esp-mqtt is now a managed component at espressif/mqtt
2025-11-14 10:53:56 +01:00
morris 9245d8ee46 Merge branch 'refactor/remove_twai_errata_config_v6.0' into 'release/v6.0'
refactor(driver_twai): remove twai errata config (v6.0)

See merge request espressif/esp-idf!43029
2025-11-14 13:52:24 +08:00
Erhan Kurubas 7d4ae881c5 change(app_trace): move sysview to component registry 2025-11-13 10:50:42 +01:00
Alexey Gerenkov ccc59ed681 Merge branch 'esp_tracing_component_v6.0' into 'release/v6.0'
New Esp tracing component (v6.0)

See merge request espressif/esp-idf!43059
2025-11-13 17:44:25 +08:00
Fu Hanxi d7a7d4cea7 ci: remove generate pytest report job
this is a temp workaround, since the current job takes too much time.
should replace it a new implementation
2025-11-12 10:19:13 +01:00
harshal.patil 3e7602a2e4 feat(cpu_region_protect): Extend PMP memprot for ESP32-P4 V3 2025-11-11 17:54:17 +05:30
Jiang Jiang Jian 5d40b0d252 Merge branch 'feat/esp_idf_lp_uart_wakeup_v6.0' into 'release/v6.0'
feat(esp_hw_support): support lp uart wakeup during sleep (v6.0)

See merge request espressif/esp-idf!43151
2025-11-11 19:22:19 +08:00
wanckl 9176ef32a4 refactor(driver_twai): using hal/config in hal layer 2025-11-11 13:18:14 +08:00
hebinglin b113517e70 feat(esp_hw_support): support lp uart wakeup during sleep v6.0 2025-11-06 19:25:20 +08:00
Frantisek Hrbata d5fcecbe85 ci(pre-commit): exclude buildv2_test_app from check-readmes
The `tools/test_build_system/buildv2_test_app` is a cmakev2 build system
testing application, same as `build_test_app`, which should be removed
from the readme check performed by check_build_test_rules.py.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-05 12:02:08 +01:00
Frantisek Hrbata dd5aae9c56 feat(cmakev2/project): add warning for usage of deprecated variables
The COMPONENTS and EXCLUDE_COMPONENTS variables are unused in cmakev2. A
deprecation warning will be printed if they are set. This change also
includes a helper functions for printing deprecation warnings.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-05 11:23:03 +01:00
Frantisek Hrbata 5724a6e1e4 fix(cmakev2/project): drop prefix_map_gdbinit in favor of gdbinit/prefix_map
The cmakev1 dropped generation of prefix_map_gdbinit, reflect this
change also in cmakev2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-05 11:23:03 +01:00
Frantisek Hrbata a384cde5ae fix(cmakev2/project): bump C and CXX standard
The cmakev1 bumped C and CXX standard to gnu23 and gnu++26, do the same
in cmakev2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-05 11:23:03 +01:00
Frantisek Hrbata 33e7824e33 fix(cmakev2/compat): add esp_stdio to common requires
The cmakev1 added esp_stdio to common requires, add it in cmakev2 too
for backward compatibility.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-05 11:23:03 +01:00
Erhan Kurubas dcde633acd feat(tracing): add new component for tracing 2025-11-05 09:57:18 +01:00
morris 11c39ccf4b Merge branch 'feat/p4_eco5_target_test_v6.0' into 'release/v6.0'
esp32p4: temporarily disable target test (v6.0)

See merge request espressif/esp-idf!43026
2025-11-05 11:13:26 +08:00
Roland Dobai 36d7618208 Merge branch 'feat/cmakev2_v6.0' into 'release/v6.0'
feat(cmakev2): introduce cmake-based build system v2 (v6.0)

See merge request espressif/esp-idf!43078
2025-11-04 18:02:10 +01:00
Marek Fiala 4591a6f29b Revert "fix: Updated locale handling to prevent issues with build tools"
This reverts commit 7e09b471ab.
2025-11-04 09:20:51 +01:00
Frantisek Hrbata 48b1594238 feat(toolchain): more remove_duplicated_flags function to separate file
Currently, the toolchain CMake files use the remove_duplicated_flags
function from utilities.cmake. The cmakev2 implementation also includes
this function for backward compatibility. Move the
remove_duplicated_flags function to a separate file,
deduplicate_flags.cmake, so it can be shared between cmakev1 and
cmakev2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 07:49:45 +01:00
Frantisek Hrbata 07a7581187 feat(cmakev2/compat): add idf_component_register to the API
Using idf_component_register is the preferred method for creating new
components for cmakev2. This approach ensures compatibility with both
versions of the build system. The KCONFIG and KCONFIG_PROJBUILD options
have been removed from the API documentation, but are retained in code
in case a cmakev1 component uses these options to warn about
incompatibility. Also remove a note about `project_include.cmake`,
because cmakev2 includes all project_include files.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 07:48:15 +01:00
Frantisek Hrbata 832128e864 fix(cmakev2/component): set the cmakev2 component archive name
Currently, the archive file name is set only in the cmakev1
idf_component_register shim. The predictable component archive file name
is important, for example, for usage in linker fragments. Ensure that
the cmakev2 component also has the archive file name set.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 07:48:15 +01:00
Frantisek Hrbata 6f516845fc fix(cmakev2/component): fix setting SOURCES for cmakev2 components
Currently, when the cmakev2 component sources are set, the SRCS target
property is used.  This is obviously wrong because the correct CMake
property is SOURCES.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 07:48:15 +01:00
Frantisek Hrbata e6b1c5857b feat(cmakev2/build): rename LINKER_SCRIPTS_STATIC to LINKER_SCRIPTS
Rename the LINKER_SCRIPTS_STATIC component property to LINKER_SCRIPTS.
This property stores linker scripts that are not processed by ldgen,
which essentially includes all of them. The only linker script processed
by ldgen is sections.ld, which is handled by the esp_system component.
This implies that there is likely no practical use case for other
components to utilize ldgen processed linker scripts. This change is
purely cosmetic to allow components to add linker scripts with:

idf_component_set_property(${COMPONENT_TARGET} LINKER_SCRIPTS linker_script.ld APPEND)

instead of

idf_component_set_property(${COMPONENT_TARGET} LINKER_SCRIPTS_STATIC linker_script.ld APPEND)

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-11-04 07:48:15 +01:00