From a093ed39dfa0f3f6034a10eb4ae050025e484a88 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Tue, 6 Oct 2020 12:34:11 +0200 Subject: [PATCH] docs: add migration guide for COMPONENT_DIRS and EXTRA_COMPONENT_DIRS --- docs/en/migration-guides/build-system.rst | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/en/migration-guides/build-system.rst b/docs/en/migration-guides/build-system.rst index b01fc66729..66e5a013db 100644 --- a/docs/en/migration-guides/build-system.rst +++ b/docs/en/migration-guides/build-system.rst @@ -1,8 +1,8 @@ Migrate Build System to ESP-IDF 5.0 =================================== -Migrating from make to cmake ----------------------------- +Migrating from GNU Make build system +------------------------------------ Please follow the :ref:`build system ` guide for migrating make-based projects no longer supported in ESP-IDF v5.0. @@ -27,3 +27,24 @@ This behavior was caused by transitive dependencies of various common components In ESP-IDF v5.0, this behavior is fixed and these components are no longer added as public requirements by default. Every component depending on one of the components which isn't part of common requirements has to declare this dependency explicitly. This can be done by adding ``REQUIRES `` or ``PRIV_REQUIRES `` in ``idf_component_register`` call inside component's ``CMakeLists.txt``. See :ref:`Component Requirements` for more information on specifying requirements. + +Setting ``COMPONENT_DIRS`` and ``EXTRA_COMPONENT_DIRS`` variables +----------------------------------------------------------------- + +.. highlight:: cmake + +ESP-IDF 5.0 includes a number of improvements to support building projects with space characters in their paths. To make that possible, there are some changes related to setting ``COMPONENT_DIRS`` and ``EXTRA_COMPONENT_DIRS`` variables in project CMakeLists.txt files. + +Adding non-existent directories to ``COMPONENT_DIRS`` or ``EXTRA_COMPONENT_DIRS`` is no longer supported and will result in an error. + +Using string concatenation to define ``COMPONENT_DIRS`` or ``EXTRA_COMPONENT_DIRS`` variables is now deprecated. These variables should be defined as CMake lists, instead. For example, use:: + + set(EXTRA_COMPONENT_DIRS path1 path2) + list(APPEND EXTRA_COMPONENT_DIRS path3) + +instead of:: + + set(EXTRA_COMPONENT_DIRS "path1 path2") + set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} path3") + +Defining these variables as CMake lists is compatible with previous IDF versions.