Djordje Nedic
11f3898e33
tools: Fix cmake variable propagation
...
This fixes the issue where component CMAKE variables propagate by default to the entire project, for instance compiler flags.
Useful for when you want to have component specific compiler flags or defines.
Closes https://github.com/espressif/esp-idf/pull/8806
Closes https://github.com/espressif/esp-idf/issues/8881
2022-05-16 16:55:34 +02:00
Sergei Silnov
69cf85e6a6
tools: Enable the component manager by default in CMake
2022-05-03 17:38:36 +02:00
Ivan Grokhotkov
273633ee31
build system: add WHOLE_ARCHIVE component property
...
This component property allows including all component object files
into the executable. It is equivalent to wrapping the component
library with -Wl,--whole-archive and -Wl,--no-whole-archive flags.
Closes https://github.com/espressif/esp-idf/issues/8667
2022-04-05 18:50:20 +02:00
Ivan Grokhotkov
09e50b27ed
cmake: handling of space-separated EXTRA_COMPONENT_DIRS
...
COMPONENT_DIRS and EXTRA_COMPONENT_DIRS should be defined as CMake
lists, using 'set' or 'list' commands. Some applications written
for earlier versions of ESP-IDF used to define these variables as
space separated strings.
For example, the following is correct:
set(EXTRA_COMPONENT_DIRS path/to/components path/to/more/components)
The following is not correct:
set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} component1")
set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} component2")
The string "component1 component2" may indicate a single directory
name with a space, or two directory names separated by space.
However due to the fact that such way of defining EXTRA_COMPONENT_DIRS
was supported in IDF 4.3 and earlier, we need to provide backward
compatibility for it.
This commit introduces a new script, split_paths_by_spaces.py, which
is invoked if EXTRA_COMPONENT_DIRS or COMPONENT_DIRS variable contains
spaces. The script tries to determine if each space should be
interpreted as a separator or as part of the directory name.
When this cannot be done unambiguously, the script reports an error.
In all cases when space separators are detected, the script reports
a warning, and prints instructions for fixing the CMakeLists.txt.
Breaking change in this commit: specifying non-existent directories
in COMPONENT_DIRS or EXTRA_COMPONENT_DIRS is no longer allowed.
2021-12-14 19:17:53 +01:00
Ivan Grokhotkov
ae7d1fff49
cmake: add component dependency graph generation helpers
...
These optional feature produces a graphviz file showing component
dependencies. It is useful for debugging reasons why certain
components got added to the build.
2021-12-02 15:29:00 +01:00
Roland Dobai
b1817115ce
Merge branch 'feature/improve_chip_target_detection' into 'master'
...
tools: Improve chip target detection
Closes IDF-3751
See merge request espressif/esp-idf!15691
2021-11-05 15:31:32 +00:00
simon.chupin
bca79c75d5
tools: Improve chip target detection
2021-11-03 15:36:56 +01:00
Fu Hanxi
42405604af
idf.py gdb: autoload prefix_map_gdbinit when exists in project_description.json
2021-10-26 14:20:40 +08:00
Ivan Grokhotkov
e39d3b2160
build system: project: quote linker map file argument
2021-10-06 10:14:55 +02:00
morris
0f7b90d205
cmake: don't treat the readme file as a component
2021-09-24 10:56:58 +08:00
simon.chupin
844dd5075f
Tools: make idf_size work with overflow
...
Closes https://github.com/espressif/esp-idf/issues/6914
closes https://github.com/espressif/esp-idf/issues/4234
2021-09-16 14:12:46 +02:00
Jakob Hasse
b3271a51af
Merge branch 'bugfix/common_components_linux' into 'master'
...
[build system]: Fixed common requirement for Linux target
Closes IDF-3638
See merge request espressif/esp-idf!14743
2021-08-17 08:48:38 +00:00
Jakob Hasse
7029f0537e
[build system]: Fixed common requirement for Linux
2021-08-13 16:50:29 +08:00
Omar Chebib
339454ff19
bootloader: Kconfig files in bootloader_components is now part of menuconfig
...
It is now possible to configure the options (Kconfig) of bootloader components
directly from the menuconfig
2021-08-12 10:43:00 +08:00
Martina
1e5a2f92c3
feature/update_cmake: Update of outdated CMake version 3.16.4->3.20.3 and CCache version 3.7->4.3 in tools.json
...
Closes https://github.com/espressif/esp-idf/issues/7083
2021-07-26 21:30:59 +08:00
Angus Gratton
a5faf86934
Merge branch 'bugfix/override_cmake_python' into 'master'
...
cmake: Minor Python CMake build fixes
Closes IDFGH-4454
See merge request espressif/esp-idf!12975
2021-04-13 03:39:16 +00:00
Angus Gratton
886c465120
cmake: Set IDFTOOL variable using the correct PYTHON interpreter variable
2021-04-01 09:51:26 +11:00
Angus Gratton
7a2c126054
cmake: Fix passing PYTHON path via CMake variable if using IDF as library
...
Closes https://github.com/espressif/esp-idf/issues/6285
2021-04-01 09:50:56 +11:00
Renz Bagaporo
b5c3d4f615
cmake: swap priority between EXTRA_COMPONENT_DIRS and project components
2021-03-22 19:01:33 +08:00
Sergei Silnov
a5981c12c2
Move call for component manager to build.cmake
2021-02-04 15:07:23 +01:00
Sergei Silnov
99bf2ed61d
idf.py: remove mentions of idf_project.yml and update tests
2021-01-29 23:08:47 +01:00
Ivan Grokhotkov
ed7fbfefac
build system: don't add GCC-specific options when building with clang
2021-01-24 12:48:29 +01:00
Roland Dobai
548ea1bdd5
tools: Wrap flash binaries into a UF2 file for flashing through USB MSC
...
@mmoskal This commit adds basic support for UF2 into ESP-IDF.
2020-12-29 18:14:47 +01:00
Michael (XIAO Xufeng)
b52c764bf3
idf_size.py: add support for esp32c3 and risc-v
2020-11-13 07:49:11 +11:00
Renz Bagaporo
7b9ab1e597
cmake: add hidden option to link components as group
...
Adds a hidden option to link components in projects as one big group for
debugging purposes. Makes it easy to single out if symbols are not
really defined or some requirements are missing for components leading
to undefined link errors.
2020-07-15 08:05:33 +08:00
Renz Bagaporo
565dc4ba4b
cmake: convert python path to cmake path
2020-07-09 12:07:45 +08:00
Renz Christian Bagaporo
7f37fb81ca
cmake: fix extra component dir ordering
2020-06-02 15:43:03 +08:00
Roland Dobai
ab9f714248
Add build system support for programming ESP32-S2 using DFU utils
2020-04-30 07:59:18 +02:00
Roland Dobai
1821ee8851
tools: Add proper multi-chip support for idf_size.py
2020-02-27 19:50:05 +01:00
KonstantinKondrashov
b49a657448
build: Add CONFIG_APP_PROJECT_VER to set the project version from Kconfig
2020-01-15 11:02:27 +00:00
Sergei Silnov
dfafa98253
Use component manager if available as python package
2019-12-19 16:48:36 +01:00
Renz Christian Bagaporo
42d4f39a9a
cmake: consider sdkconfig defaults value from environment
2019-11-03 16:43:58 +08:00
Renz Christian Bagaporo
bf1df9b5b5
cmake: do not check if sdkconfig exists
2019-11-03 16:43:58 +08:00
Renz Christian Bagaporo
d43cc4fa4b
cmake: allow multiple sdkconfig defaults to be specified
2019-11-03 16:43:58 +08:00
Angus Gratton
f4ea7c5a46
cmake: Set uninitialized variable warnings in ULP & bootloader subprojects
...
Fixes issue where PYTHON was not being expanded when running ulp_mapgen.py,
causing Windows launch setting to be used - reported here:
https://esp32.com/viewtopic.php?f=13&t=12640&p=50283#p50283
2019-10-29 05:38:39 +00:00
Angus Gratton
96b96ae244
Merge branch 'bugfix/cmake_component_names' into 'master'
...
CMake: Component name related bugfixes
See merge request espressif/esp-idf!5921
2019-09-17 11:16:25 +08:00
Angus Gratton
9a7ab28cc2
idf.py: Add environment variable to enable ccache by default
2019-09-03 10:25:28 +10:00
Renz Christian Bagaporo
ba2ec73d59
cmake: fix build failure when git repo is initialized but no first commit
...
Closes https://github.com/espressif/esp-idf/issues/3920
2019-08-28 09:53:37 +08:00
Renz Christian Bagaporo
826568a120
cmake: introduce BUILD_COMPONENT_ALIASES
...
This commit makes it so that BUILD_COMPONENT holds only the component,
and a new property BUILD_COMPONENT_ALIASES hold the full name of the
component.
This also removes erroneous check for duplicate components, as this can
never happen:
(1) if two components have the same name but different prefixes,
the internal names are still unique between them
(2)if two components happen to have the same name and same prefix, the
latter would override the former
2019-08-27 20:40:29 +08:00
Renz Christian Bagaporo
4690152eca
cmake: make default version 1
2019-08-21 12:46:38 +08:00
Renz Christian Bagaporo
72a5762525
cmake: make use of ccache opt-in
2019-06-29 00:22:57 +00:00
Angus Gratton
d9ca915fa4
Merge branch 'bugfix/cmake_project_vars_not_set_by_redefinition' into 'master'
...
cmake: set variables set by project call
See merge request idf/esp-idf!5187
2019-06-28 15:31:10 +08:00
Angus Gratton
396131433a
Merge branch 'feature/idf_size_json' into 'master'
...
idf_size: Support JSON output
Closes IDF-264
See merge request idf/esp-idf!4987
2019-06-24 19:06:12 +08:00
Renz Christian Bagaporo
7edef74347
cmake: set variables set by project call
...
ESP-IDF overrides project() definition for user convenience. This
redefinition lacks setting the variables documented at
the project command documentation
https://cmake.org/cmake/help/v3.5/command/project.html in the parent
scope.
This commit sets those variables.
Closes https://github.com/espressif/esp-idf/issues/3611 .
2019-06-12 11:01:59 +08:00
Angus Gratton
05be37c87c
idf_size: Support JSON output
...
Pass -DOUTPUT_JSON=1 to get JSON formatted output from CMake targets
2019-05-29 17:11:53 +10:00
Renz Christian Bagaporo
83ce35d638
cmake: do not use link groups
2019-05-28 10:51:02 +08:00
Renz Christian Bagaporo
b4ad6c1426
cmake: refactor quick check given component dirs
2019-05-20 19:24:17 +08:00
Renz Christian Bagaporo
5175a152d9
cmake: exclude dot-dirs from added components
2019-05-20 18:24:34 +08:00
Renz Christian Bagaporo
078c69e689
cmake: remove redundant variable setting
2019-05-20 18:24:34 +08:00
Renz Christian Bagaporo
7493bd2e28
cmake: add command to get config value
2019-05-14 18:01:14 +08:00