https://github.com/espressif/idf-build-apps
Tool to build multiple IDF applications in CI
https://github.com/espressif/idf-build-apps
ci esp-idf
Last synced: 3 months ago
JSON representation
Tool to build multiple IDF applications in CI
- Host: GitHub
- URL: https://github.com/espressif/idf-build-apps
- Owner: espressif
- License: apache-2.0
- Created: 2023-02-03T14:01:17.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-31T14:09:45.000Z (3 months ago)
- Last Synced: 2025-04-02T23:13:31.548Z (3 months ago)
- Topics: ci, esp-idf
- Language: Python
- Homepage: https://docs.espressif.com/projects/idf-build-apps/en/latest/index.html
- Size: 823 KB
- Stars: 19
- Watchers: 4
- Forks: 6
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# idf-build-apps
[](https://espressif-docs.readthedocs-hosted.com/projects/idf-build-apps/en/latest/)
[](https://pypi.org/project/idf_build_apps/)
[](https://pypi.org/project/idf_build_apps/)`idf-build-apps` is a tool that helps users find and build [ESP-IDF][esp-idf], and [ESP8266 RTOS][esp8266-rtos] projects in a large scale.
## What is an `app`?
A project using [ESP-IDF][esp-idf] SDK, or [ESP8266 RTOS][esp8266-rtos] SDK typically contains:
- Build recipe in CMake or Make and the main component with app sources
- (Optional) One or more [sdkconfig][sdkconfig] files`app` is the abbreviation for application. An application is a set of binary files that is being built with the specified [sdkconfig][sdkconfig] and the target chip. `idf-build-apps` could build one project into a number of applications according to the matrix of these two parameters.
## Installation
```shell
pip install idf-build-apps
```or `pipx`
```shell
pipx install idf-build-apps
```## Basic Usage
`idf-build-apps` is a python package that could be used as a library or a CLI tool.
As a CLI tool, it contains three sub-commands.
- `find` to find the buildable applications
- `build` to build the found applications
- `completions` to activate autocompletions or print instructions for manual activationFor detailed explanation to all CLI options, you may run
```shell
idf-build-apps -h
idf-build-apps find -h
idf-build-apps build -h
idf-build-apps completions -h
```As a library, you may check the [API documentation][api-doc] for more information. Overall it provides
- Two functions, `find_apps` and `build_apps`
- Two classes, `CMakeApp` and `MakeApp`## Quick CLI Example
To build [ESP-IDF hello world example project][hello-world] with ESP32:
```shell
idf-build-apps build -p $IDF_PATH/examples/get-started/hello_world/ --target esp32
```The binary files will be generated under `$IDF_PATH/examples/get-started/hello_world/build` directory.
## Documentation
For detailed information, please refer to [our documentation site][doc]!
## Contributing
Thanks for your contribution! Please refer to our [Contributing Guide](CONTRIBUTING.md)
[esp-idf]: https://github.com/espressif/esp-idf
[esp8266-rtos]: https://github.com/espressif/ESP8266_RTOS_SDK
[sdkconfig]: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html
[hello-world]: https://github.com/espressif/esp-idf/tree/master/examples/get-started/hello_world
[supported-targets]: https://github.com/espressif/esp-idf/tree/v5.0#esp-idf-release-and-soc-compatibility
[doc]: https://docs.espressif.com/projects/idf-build-apps/en/latest/
[api-doc]: https://docs.espressif.com/projects/idf-build-apps/en/latest/references/api/modules.html