mirror of
https://github.com/espressif/esp-idf.git
synced 2026-08-18 06:35:35 +03:00
docs(idf-py.rst): Added cmake preset paragraph
This commit is contained in:
committed by
Frantisek Hrbata
parent
58b848dc15
commit
cd00ca0b50
@@ -306,6 +306,69 @@ Use the Claude CLI to add the ESP-IDF MCP server:
|
||||
|
||||
claude mcp add esp-idf python /path/to/esp-idf/tools/idf.py mcp-server --env IDF_PATH=/path/to/esp-idf
|
||||
|
||||
Configuration Presets: ``--preset``
|
||||
====================================
|
||||
|
||||
ESP-IDF supports `CMake presets`_ to simplify managing multiple build configurations. This feature allows you to define reusable configuration profiles that specify build directories, cache variables, and other CMake settings.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
idf.py --preset <preset-name> build
|
||||
|
||||
This command builds the project using the specified configuration preset. The preset defines settings such as the build directory location, CMake cache variables (including ``SDKCONFIG`` paths), and generator preferences.
|
||||
|
||||
Preset Definition Files
|
||||
-----------------------
|
||||
|
||||
Create a ``CMakePresets.json`` or ``CMakeUserPresets.json`` file in your project root directory to define **configuration presets**. For example:
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"version": 3,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "default",
|
||||
"binaryDir": "build/default",
|
||||
"displayName": "Default Configuration",
|
||||
"cacheVariables": {
|
||||
"SDKCONFIG": "./build/default/sdkconfig"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "production",
|
||||
"binaryDir": "build/production",
|
||||
"displayName": "Production Build",
|
||||
"cacheVariables": {
|
||||
"SDKCONFIG_DEFAULTS": "sdkconfig.defaults.prod_common;sdkconfig.defaults.production",
|
||||
"SDKCONFIG": "./build/production/sdkconfig"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
.. note:: The ``version`` field represents the JSON schema version for CMake Presets. In this example it is set to ``3`` to match the schema supported by ESP-IDF’s minimal supported CMake version. If you are using a newer CMake version, you can increase the ``version`` field accordingly - see `CMake Presets`_.
|
||||
|
||||
**Current Limitations**
|
||||
|
||||
- The ``inherits`` field for preset inheritance is not currently supported by ESP-IDF. Presets with inheritance will show a warning.
|
||||
|
||||
Automatic Preset Selection
|
||||
---------------------------
|
||||
|
||||
If no preset is specified but a ``CMakePresets.json`` file exists, ``idf.py`` will automatically select a preset:
|
||||
|
||||
1. If a preset named ``default`` exists, it will be used
|
||||
2. Otherwise, the first preset in the file will be selected
|
||||
|
||||
.. note:: The environment variable ``IDF_PRESET`` can be used to set the default preset name, e.g., ``export IDF_PRESET=production``. Command-line arguments override environment variables.
|
||||
|
||||
**SDKCONFIG File Placement**
|
||||
|
||||
By default, the ``sdkconfig`` file is created in the project root directory. However, when using CMake presets, you can specify a custom location for the ``sdkconfig`` file using the ``SDKCONFIG`` cache variable.
|
||||
|
||||
For a complete example, see the :example_file:`Multiple Build Configurations Example <build_system/cmake/multi_config/README.md>`.
|
||||
|
||||
Global Options
|
||||
==============
|
||||
|
||||
@@ -449,3 +512,4 @@ Basic Usage Examples
|
||||
.. _esptool: https://github.com/espressif/esptool/#readme
|
||||
.. _CCache: https://ccache.dev/
|
||||
.. _click context: https://click.palletsprojects.com/en/stable/api/#context
|
||||
.. _CMake presets: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
||||
|
||||
Reference in New Issue
Block a user