Commit Graph
61 Commits
Author SHA1 Message Date
Jan Beran f963565341 fix: force colors in output of RunTool and ensure_build_directory 2026-06-24 12:47:16 +02:00
Jan Beran fa61d8c902 Merge branch 'fix/remove-menuconfig-curses' into 'master'
Cleanup after dropping curses from menuconfig

See merge request espressif/esp-idf!48246
2026-06-17 18:24:53 +08:00
Jan BeranandCursor dd742179ee fix: cleanup after dropping curses from menuconfig
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 16:56:46 +02:00
Jan Beran 4b12e9a132 fix: update version of esp-idf-configdep in tools.json 2026-06-11 11:05:10 +02:00
Jan BeranandCursor 9881fa8b12 ci(cmakev2): suppress CMake warning for unused CONFIGDEP_ENABLE variable
cmakev2 does not use configdep yet, so the manually specified variable
CONFIGDEP_ENABLE is unused. CMake warns about it, which causes CI to
fail. Until configdep is adopted by cmakev2, suppress the warning.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 01:26:10 +08:00
Jan Beran 3abb4c095b test: add esp-idf-configdep integration tests
Add build-level tests verifying configdep selective rebuild behavior:
- test_configdep.py: selective rebuild (only affected .obj rebuilt) and
  ELF string verification after Kconfig toggle
- test_rebuild_configdep.py: full rebuild graph tests with configdep enabled,
  including the two-build "settle" pattern for .cdep stub timestamps

Place the configdep test app in tools/test_build_system/configdep_test_app/
alongside the build system test infrastructure. Split configdep-specific
rebuild coverage from pure CMake/Ninja rebuild tests (test_rebuild.py runs
with configdep disabled via a module-local idf_py fixture).
2026-06-02 01:26:10 +08:00
Jan Beran 9522af1d8f feat: introduce esp-idf-configdep as a build optimization
The esp-idf-configdep utility works as a compiler wrapper. It lets the
compiler compile the app and checks whether -MF option was used to
generate dependency files. If yes, it checks for sdkconfig.h dependency
in those files.

Target file depending on sdkconfig.h is then scanned for all CONFIG_*
occurrences and the dependency file is altered so that the given target
file is marked as "dirty" only if the config options it actually uses
are changed.

This ensures that after a configuration update, only affected files are
rebuilt, reducing incremental build times.

The compiler launcher mechanism is changed from RULE_LAUNCH_COMPILE
(Makefile-only) to CMAKE_*_COMPILER_LAUNCHER (generator-agnostic),
enabling launcher chaining (configdep -> ccache -> compiler).

Made-with: Cursor
2026-06-02 01:26:10 +08:00
Jan Beran 1996dd0e4a Merge branch 'fix/optimize_menuconfig_speed' into 'master'
fix: optimize menuconfig speed

Closes IDF-15411 and IDF-7010

See merge request espressif/esp-idf!46242
2026-06-01 14:52:23 +08:00
Jan BeranandCursor c974f9420b feat(menuconfig): optimize menuconfig speed
When esp-idf-kconfig >= 3.9.0 is installed, we can use the optimized
menuconfig target without the need to preprocess the sdkconfig file by
kconfgen (removing deprecated options - menuconfig - readding deprecated
options).

Also removed unused {menuconfig_depends} from the new target.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 14:57:48 +08:00
Jan Beran 05668daa42 ci(pre-commit): bump up kconfig related checks 2026-05-20 12:56:29 +02:00
Jan Beran 4ad408da59 fix(kconfig): add KCONFIG_PROMPTLESS_NO_WARN to config.env.in
Some config options, like IDF_TARGET, are present in
sdkconfig.defaults even though they are promptless. The build system
handles them manually and passes them to esp-idf-kconfig via
config.env. However, esp-idf-kconfig reports them like a normal
promptless symbol, which causes confusion.

This commit adds KCONFIG_PROMPTLESS_NO_WARN — a semicolon-separated
list of config option names that, even though promptless, should be
excluded from the report.

Closes https://github.com/espressif/esp-idf/issues/18441
2026-04-23 15:08:01 +08:00
Jan Beran 2af9ca0884 Merge branch 'docs/clarify_renames' into 'master'
docs(kconfig): clarify how multiple renames work in sdkconfig.renames

Closes DOC-14265

See merge request espressif/esp-idf!46749
2026-04-15 16:47:48 +08:00
Jan Beran 29deb3f617 docs(kconfig): clarify how multiple renames work in sdkconfig.renames
Describe how multiple renames of one deprecated option to several new
options work.
2026-04-15 10:37:56 +08:00
Jan Beran 4ca48c370e Merge branch 'docs/clarify_sdkconfig_defaults_example' into 'master'
docs: clarify how SDKCONFIG_DEFAULTS cache variable works

Closes IDF-15373

See merge request espressif/esp-idf!46122
2026-03-31 21:17:57 +08:00
Jan Beran 7356b34389 docs: clarify how SDKCONFIG_DEFAULTS cache variable works 2026-03-31 16:24:09 +08:00
Jan Beran a2277f14df ci(tools): Move misspelled KConfig test to dedicated kconfig_test_app
Separate the misspelled KConfig.projbuild test case into its own test app
so it doesn't interfere with the general-purpose build_test_app. The test
now uses a pytest marker to select kconfig_test_app as the source.
2026-03-16 08:57:40 +01:00
Jan Beran ae6cc85d80 Revert "fix(linux): disable binary generating for linux target, leave only elf"
This reverts commit 31b2a047f2.
2026-02-25 09:44:30 +01:00
Jan Beran 31b2a047f2 fix(linux): disable binary generating for linux target, leave only elf 2026-02-24 13:47:12 +01:00
Jan Beran f9e55bdca2 Merge branch 'feat/add-report-to-cmakev2' into 'master'
feat(cmakev2): add config-report target

Closes IDF-14430

See merge request espressif/esp-idf!45687
2026-02-18 22:10:16 +08:00
Jan Beran 86020e9732 feat(cmakev2): add config-report target 2026-02-18 16:23:37 +08:00
Jan Beran 132f191874 feat(core-ext): Add refresh-config command
This command will allow users to resolve mismatches in default values
between sdkconfig and Kconfig according to a policy specified:

* sdkconfig: Using default values from sdkconfig (backward compatible)
* interactive: User can choose the source for every affected config
  option separatedly
* kconfig: Using default values from Kconfig
2025-11-25 20:31:08 +08:00
Jan Beran 542a4f7d1f ci: move kconfig documentation under tools codeowners 2025-11-18 20:42:38 +08:00
Jan Beran bf9b9a0259 change(kconfig): add support for configuration report 2025-11-18 20:42:38 +08:00
Jan Beran b51329bdb1 fix: set sufficient buffer limit for idf.py confserver 2025-10-02 13:19:30 +02:00
Jan Beran 94c59a9755 fix: Ensure deprecated options are correctly handled in linker fragments 2025-09-30 14:55:54 +02:00
Jan Beran f7e1c5ec6c ci(pre-commit): bump up kconfcheck pre-commit hook version to 3.2.0 2025-09-30 14:40:18 +02:00
Jan Beran f7393ab305 fix(kconfig.cmake): Do not regenerate unnecessary config files 2025-09-29 10:03:47 +02:00
Jan Beran 152aa6bf63 docs: add link to esp-idf-kconfig migration guide 2025-08-07 19:37:00 +02:00
Jan Beran 806775f54e change: use esp_kconfiglib instead of kconfiglib in Python imports 2025-07-21 16:36:55 +02:00
Jan Beran 19d370f594 docs: how to update ESP-IDF environment without updating ESP-IDF itself
Closes https://github.com/espressif/esp-idf/issues/16077
2025-06-23 12:47:59 +02:00
Jan Beran 40314930a6 docs: Fix spelling of the word "Kconfig" 2025-06-17 08:52:37 +02:00
Jan Beran c6a0d9118e change: Support misspelled Kconfig[.projbuild] file names
If the name is misspelled, CMake prints out a warning.
Original issue: https://github.com/espressif/esp-idf-kconfig/issues/14
2025-05-29 14:18:20 +02:00
Jan Beran ba86dbb9f6 change(gen_soc_caps_kconfig): check if config options have the same type
Also introduce ignore pragma to prevent some #defines from .h files to
be translated to Kconfig files.
2025-05-07 13:37:05 +02:00
Jan Beran 253722b0eb docs: Fix link to the kconfserver documentation 2025-05-05 13:31:42 +02:00
Jan Beran 2ccbb2f91d fix(kconfig): Fix issues with Kconfig files 2025-03-03 13:02:41 +01:00
Jan Beran 0ef626c3cb fix(esp_system): Remove unnecessary select from esp_system/Kconfig 2025-03-03 09:19:07 +01:00
Jan Beran c7993c2725 change: move check_deprecated_configs.py file to esp-idf-kconfig 2025-02-24 12:52:55 +01:00
Jan Beran 92abdb88c8 fix: remove duplicit lines from sdkconfig.rename files 2025-01-06 10:17:09 +01:00
Jan Beran 04e06f87d0 ci(pre-commit): bump kconfig checker pre-commit version to 2.4.1 2024-12-17 14:28:06 +01:00
Jan Beran 06508329c8 Merge branch 'docs/edit_kconfig_docs' into 'master'
docs(kconfiglib): Make a detailed docs section about Kconfig

See merge request espressif/esp-idf!32995
2024-11-11 16:06:40 +08:00
Jan Beran dbc6be3138 fix(docs): Fix links pointing to esp-idf-kconfig Documentation 2024-11-06 15:51:13 +01:00
Jan Beran 1fcf006ec6 docs(kconfiglib): Add Project and Component configuration guide
* Project Configuration Guide: how to configure the project, purpose of
  sdkconfig.defaults, where is the configuration stored...
* Component configuration: how to write Kconfig files, how to ensure
  backward compatibility...

Also, general information about Kconfig and its files was added. Other parts of the
documentation (e.g. build-system) now point to these new guides in order
to provide more info.
2024-10-29 10:31:03 +01:00
Jan Beran d77d1f5a95 fix(uf2): Ignore ESPBAUD, ESPPORT when calling idf.py uf2[-app] 2024-09-23 15:48:59 +02:00
Jan Beran a7141f75d7 fix: Fix condition checking if secure boot signing key exists 2024-08-09 08:38:38 +02:00
Jan Beran 852bf714a7 ci(pre-commit): bump kconfig checker pre-commit version to 2.3.0 2024-07-30 14:00:25 +02:00
Jan Beran fdffa19958 Docs: document inversion in kconfig 2024-07-23 17:26:42 +08:00
Jan Beran 01ee296db0 fix: fix various errors in Kconfig files 2024-07-17 11:33:22 +02:00
Jan Beran 832c3f265a fix: Generate secure keys in project dir instead of build dir 2024-06-28 12:36:49 +02:00
Jan Beran b286105d5f feat: Add unit tests for new wrapper commands 2024-06-24 10:56:10 +02:00
Jan Beran 950428c2f4 feat(tools): Add often used espefuse subcommands to idf.py 2024-06-07 16:23:17 +02:00
Jan Beran 981062d54f feat(tools): add often used espsecure subcommands to idf.py 2024-05-20 15:13:35 +02:00
Jan Beran 0dec6fe65d feat(tools): Add idf.py merge-bin command and cmake target 2024-04-16 12:49:18 +02:00
Jan Beran 4adc52f94e feat(test_idf_tools): Add tests for esp32p4 for linux and win 2024-03-11 09:33:05 +01:00
Jan Beran 615285f6de fix(install.ps1): fix ReferenceError in install.ps1 script
This fix preventing RefferenceError when accessing g.idf_path
before initialization
2024-02-29 09:57:10 +01:00
Jan Beran 9ebba1b5c2 change(idf_tools): switch from old string formatting to f-strings and parentheses 2024-02-20 09:00:33 +01:00
Jan Beran 6e88ba4832 feat(idf_tools): Switch from global variables to global singleton 2024-02-20 09:00:33 +01:00
Jan Beran dc68d08237 fix: Bump up pre-commit hooks version 2024-02-06 13:59:52 +01:00
Jan Beran 535aa9df84 refactor(tools): add docstrings and type annotations into idf_tools.py 2024-01-31 16:08:32 +01:00
Jan Beran 858e3fe5ec docs(esp-idf-monitor): Add information about ESP_IDF_MONITOR_NO_RESET 2024-01-31 09:35:44 +01:00
Jan Beran b1d9762205 feat: Propagate arguments when running ninja monitor 2024-01-31 09:35:44 +01:00
Jan Beran fa857bc9c3 feat: Use python-reorder-imports instead of isort 2024-01-12 21:43:52 +08:00