CMake Utilities

[中文]

cmake_utilities is a collection of CMake utilities that are commonly used in the components of esp-iot-solution.

Supported Features:

  • project_include.cmake: add additional features like DIAGNOSTICS_COLOR to the project. The file will be automatically parsed, for details, please refer project-include-cmake.

  • package_manager.cmake: provides functions to manager components’ versions, etc.

  • gcc.cmake: manager the GCC compiler options like LTO through menuconfig.

  • relinker.cmake provides a way to move IRAM functions to flash to save RAM space.

  • gen_compressed_ota.cmake: add new command idf.py gen_compressed_ota to generate xz compressed OTA binary. please refer xz.

  • gen_single_bin.cmake: add new command idf.py gen_single_bin to generate single combined bin file (combine app, bootloader, partition table, etc).

How to Use

Use

  1. Add dependency of this component in your component or project’s idf_component.yml.

    dependencies:
      espressif/cmake_utilities: "0.*"
    
  2. Include the CMake Features/Script in your component’s or project’s CMakeLists.txt after idf_component_register.

    // Note: should remove .cmake postfix when using include(), otherwise the requested file will not found
    // Note: should place this line after `idf_component_register` function
    // only include the one you needed.
    include(package_manager)
    
  3. Then you can use the corresponding features provided by the CMake script.

Detailed Reference

  1. relinker

  2. gen_compressed_ota

  3. GCC Optimization