Commit Graph

76 Commits

Author SHA1 Message Date
Frantisek Hrbata
53f271ce10 tools: extend information in project_description.json
This extends information provided in the project_description.json file.
Newly added information can be used in the SBOM generating tool and
also to improve hints regarding the the component dependency issues.

Added fields

version:
   This adds versioning to the project_description.json file,
   so it's easy to identify if it contains the required information.

project_version:
   Can be used as a version for the resulting binary e.g. `hello_world.bin`.

idf_path:
   This one is probably not necessary, but it allows tools to run even without
   esp-idf environment exported(e.g. export.sh).

c_compiler:
   The `CMAKE_C_COMPILER` value with full path to the compiler binary. This can
   be used to get information about toolchain, which was used to build the project.

common_component_reqs:
   List of common components as presented in cmake's __COMPONENT_REQUIRES_COMMON
   and set in tools/cmake/build.cmake:__build_init().

build_component_info:
   Detailed information about components used during build. It's a
   dictionary with the component name as a key and each component has
   a dictionary with detailed information. Following is an example for
   the efuse component.

   "efuse": {
       "alias": "idf::efuse",
       "target": "___idf_efuse",
       "prefix": "idf",
       "dir": "/home/fhrbata/work/esp-idf/components/efuse",
       "type": "LIBRARY",
       "lib": "__idf_efuse",
       "reqs": [],
       "priv_reqs": [ "bootloader_support", "soc", "spi_flash" ],
       "managed_reqs": [],
       "managed_priv_reqs": [],
       "file": "/home/fhrbata/work/blink/build/esp-idf/efuse/libefuse.a",
       "sources": [ "/home/fhrbata/work/esp-idf/components/efuse/esp32s3/esp_efuse_table.c", ... ],
       "include_dirs": [ "include", "esp32s3/include" ]
   }

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-08 18:35:00 +02:00
Sergei Silnov
bb272d1b0a build & config: Check requirements of managed components of main and add interface versioning 2023-03-03 20:02:49 +01:00
Sergei Silnov
2540cee253 build & config: Don't include common components on early expansion 2023-02-27 10:06:31 +01:00
Fu Hanxi
53f390fb62 build_system: stop looking for sdkconfig file specified by env var SDKCONFIG_DEFAULTS in bootloader subproject 2023-01-10 09:49:23 +08:00
Sergei Silnov
c3969b789e build & config: Add IDF_COMPONENT_MANAGER build property 2022-05-27 12:57:00 +02:00
Sergei Silnov
66f60095c2 tools: Enable the component manager by default in CMake 2022-05-16 17:10:07 +02: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
Renz Christian Bagaporo
c564d1730f esp_common: append gc sections link flag 2019-05-14 18:01:14 +08:00
Renz Christian Bagaporo
c6dc47b3e2 cmake: build system changes 2019-05-13 19:57:39 +08:00