Welcome to idf-build-apps’s documentation!

idf-build-apps

Documentation Status pypi_package_version supported_python_versions

idf-build-apps is a tool that helps users find and build ESP-IDF projects faster.

What is an app?

An ESP-IDF project would typically contain:

  • Build recipe in CMake and the main component with app sources

  • (Optional) One or more sdkconfig files

app is the abbreviation for application. An application is the binary that is being built with the specified sdkconfig and the target chip. idf-build-apps could build one project into a number of applications.

Installation

pip install idf-build-apps

or pipx

pipx install idf-build-apps

Basic Usage

idf-build-apps is a callable python package, and an executable script with the same name would also be installed. It contains two sub-commands.

  • find to find the buildable applications

  • build to build the found applications

For detailed explanation to all CLI options, you may run

idf-build-apps -h
idf-build-apps find -h
idf-build-apps build -h

Quick Example

To build the applications for all targets of the ESP-IDF hello world example project under ESP-IDF v5.0:

idf-build-apps build -p $IDF_PATH/examples/get-started/hello_world/ --target all --build-dir build_@t

It would get the default supported targets from your IDF version, build the hello world project with all targets and the default sdkconfig file.

Partial build log:

2023-02-22 12:14:58 INFO Found 5 apps in total
2023-02-22 12:14:58 INFO Total 5 apps. running build for app 1-5
2023-02-22 12:14:58 INFO Building the following apps:
2023-02-22 12:14:58 INFO   (cmake) App /tmp/test/esp/esp-idf/examples/get-started/hello_world/, target esp32, sdkconfig (default), build in /tmp/test/esp/esp-idf/examples/get-started/hello_world/build_esp32 (preserve: True)
2023-02-22 12:14:58 INFO   (cmake) App /tmp/test/esp/esp-idf/examples/get-started/hello_world/, target esp32c2, sdkconfig (default), build in /tmp/test/esp/esp-idf/examples/get-started/hello_world/build_esp32c2 (preserve: True)
2023-02-22 12:14:58 INFO   (cmake) App /tmp/test/esp/esp-idf/examples/get-started/hello_world/, target esp32c3, sdkconfig (default), build in /tmp/test/esp/esp-idf/examples/get-started/hello_world/build_esp32c3 (preserve: True)
2023-02-22 12:14:58 INFO   (cmake) App /tmp/test/esp/esp-idf/examples/get-started/hello_world/, target esp32s2, sdkconfig (default), build in /tmp/test/esp/esp-idf/examples/get-started/hello_world/build_esp32s2 (preserve: True)
2023-02-22 12:14:58 INFO   (cmake) App /tmp/test/esp/esp-idf/examples/get-started/hello_world/, target esp32s3, sdkconfig (default), build in /tmp/test/esp/esp-idf/examples/get-started/hello_world/build_esp32s3 (preserve: True)

For detailed information, please refer to our documentation site!

Contributing

Thanks for your contribution! Please refer to our Contributing Guide