mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 12:35:28 +00:00

Currently, several example dependencies rely on the fact that all registered components are added to the build, along with components specified in common requirements. This results in longer build times because even unused components must be built. Switch all examples to use idf_minimal_build to compile only the components actually required by the example. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
21 lines
1001 B
CMake
21 lines
1001 B
CMake
# The following four lines of boilerplate have to be in your project's CMakeLists
|
|
# in this exact order for cmake to work correctly
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
|
# "Trim" the build. Include the minimal set of components, main, and anything it depends on.
|
|
idf_build_set_property(MINIMAL_BUILD ON)
|
|
project(mqtt_tcp_custom_outbox)
|
|
|
|
# Add custom outbox implementation to mqtt component
|
|
idf_component_get_property(mqtt mqtt COMPONENT_LIB)
|
|
target_sources(${mqtt} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/main/custom_outbox.cpp)
|
|
|
|
# Our C++ needs an extra dependency to mqtt component, so we add it to mqtt component.
|
|
# This is needed because we are adding another source to the mqtt component and the build
|
|
# system needs to be aware of it to be able to compile and link the mqtt component.
|
|
# First we get our dependency
|
|
idf_component_get_property(pthread pthread COMPONENT_LIB)
|
|
# And them we link the components
|
|
target_link_libraries(${mqtt} ${pthread})
|