Commit Graph

500 Commits

Author SHA1 Message Date
Ivan Grokhotkov
06c0b8a5d0 cmake: don't search for toolchain files in component directory
This feature was added when we thought that target components might be
added out of IDF tree. That never became possible, and with recent
changes in IDF architecture it is unlikely that this feature will be
necessary any time soon. Remove it, simplifying the code.
2021-09-16 10:54:27 +02:00
Ivan Grokhotkov
14e600801e cmake: allow selection of clang based toolchain
This is an experimental feature intended at the moment for ESP-IDF
developers only.

If IDF_TOOLCHAIN=clang environment variable or CMake variable is set,
use toolchain-clang-esp32xx.cmake instead of toolchain-esp32xx.cmake.

These changes aren't sufficient to actually build any IDF project with
clang; subsequent commits add a few workarounds required to do this.

Toolchain files are added for esp32 and esp32s2, which are the targets
supported in our llvm-project fork at the moment.
2021-09-16 10:54:27 +02:00
Sergei Silnov
37b791e242 Build System: Don't track dependencies.lock 2021-08-30 13:23:23 +02:00
Jakob Hasse
376559d14c [cmake]: fixed FPGA setting during early build 2021-08-26 10:11:56 +08: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
Zim Kalinowski
1c690aa5d2 Merge branch 'feature/bootloader_components_kconfig_in_menuconfig' into 'master'
bootloader: Kconfig files in bootloader_components is now part of menuconfig

Closes IDF-3696

See merge request espressif/esp-idf!14740
2021-08-16 06:01:50 +00:00
Jakob Hasse
7029f0537e [build system]: Fixed common requirement for Linux 2021-08-13 16:50:29 +08:00
Jakob Hasse
dd3f43ca2d [build system]: add ruby check before mocking 2021-08-13 14:31:44 +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
Jakob Hasse
e8082ed6c7 [cmake]: fix idf_component_mock requirement macro 2021-07-28 18:50:43 +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
Fu Hanxi
69650e0c18 Merge branch 'feature/espcoredump_test_refactor' into 'master'
Feature: espcoredump test refactor

See merge request espressif/esp-idf!13092
2021-07-22 04:35:58 +00:00
Fu Hanxi
a6068ef259 Merge branch 'feature/pass_idf_version_to_component_manager' into 'master'
feat: pass idf version to component manager

See merge request espressif/esp-idf!14343
2021-07-22 04:04:19 +00:00
Ivan Grokhotkov
2f811b7975 cmake: sort lists obtained from file(GLOB)
CMake sorts result of file(GLOB) command since version 3.6.0:
https://gitlab.kitware.com/cmake/cmake/-/commit/edcccde7d

Since ESP-IDF sets cmake_minimum_required version to 3.5, and version
3.5.1 is used in CI, sort file lists obtained from file(GLOB)
manually.

This helps obtain reproducible order of libraries passed to the linker
and to ldgen.
2021-07-22 10:14:33 +08:00
Jakob Hasse
366ede3ffb [cmake]: Fixed mock register function
* REQUIRES was missing from multi value args
2021-07-19 13:57:19 +08:00
Fu Hanxi
b26b6d7dc9 feat: set IDF_VERSION to environment variable 2021-07-16 12:01:57 +08:00
Shu Chen
75bd02bd46 esp32h2: add some more fixes and TODOs 2021-07-01 20:36:39 +08:00
Shu Chen
2b9e8fed71 esp32h2: add esp32h2 build target
Add esp32h2 support in the following components:
 * Kconfig
 * components/esptool_py
 * components/riscv
 * components/xtensa
 * tools
2021-07-01 19:51:33 +08:00
Anton Maklakov
f01002d2fc tools: stop building if compiler is unsupported 2021-06-28 23:36:15 +08:00
Jakob Hasse
79b0256d63 [driver]: partial mocking of driver component
* added mocking of spi master and gpio
* mock registering in one function in
  component.cmake
2021-06-24 10:10:29 +08:00
Alex Lisitsyn
ea6710ce98 soc/hal: add tinyusb support esp32s3
add usb hal/soc, usb_ll files and esp32s3 target for usb
move usb_hal.h into soc common folder
soc/hal: fix soc and periph for usb
tinyusb: fix tinyusb io header
hal: usb_ll fix pull up/down config for esp32s3
soc/hal: fix peripheral addresses
2021-05-06 16:20:54 +08:00
Martin Gano
1546e970db Merge branch 'master' into 'feature/refactor-idf-monitor'
# Conflicts:
#   tools/ci/mypy_ignore_list.txt
2021-04-13 20:55:19 +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
Martin Gaňo
b77addea2f Decompose idf_monitor.py 2021-04-12 10:47:33 +02:00
Angus Gratton
5a8e9ef2bc cmake: Improve the error message if the Python interpreter fails to run
RESULT_VARIABLE will return a string not a number in this case, so display it
for the user.
2021-04-01 09:51:28 +11: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
No One
8416e724c0 build system: fix NOTFOUND git version error
CMake would fail to find the git version of the IDF repo due to
not being able to parse the whitespace in the git describe command
2021-02-26 14:39:23 +08:00
Angus Gratton
0f62d0dd9b Merge branch 'bugfix/git_describe' into 'master'
tools: Use git describe --match for filtering out internal names

Closes IDF-2410

See merge request espressif/esp-idf!12398
2021-02-25 07:23:38 +00:00
Renz Bagaporo
43f6c7a533 esp_common: simplify component build script 2021-02-24 12:16:37 +08:00
Roland Dobai
48488f1683 tools: Use git describe --match for filtering out internal names 2021-02-23 06:55:21 +00:00
Angus Gratton
e22de81955 Merge branch 'feature/idfpy_update_component_manager_tests' into 'master'
CMake - process dependencies for all components by component manager

Closes PACMAN-87

See merge request espressif/esp-idf!9357
2021-02-12 11:28:18 +08:00
Angus Gratton
c8315e0110 version: Update to v4.4-dev 2021-02-10 16:07:24 +11:00
Sergei Silnov
a5981c12c2 Move call for component manager to build.cmake 2021-02-04 15:07:23 +01:00
Angus Gratton
8dbb14b469 system: Log a warning when booting bootloader or app configured for FPGA use
Such a firmware may appear to work on normal chip, but not everything will function as expected.
2021-02-01 14:24:38 +11:00
Sergei Silnov
99bf2ed61d idf.py: remove mentions of idf_project.yml and update tests 2021-01-29 23:08:47 +01:00
Angus Gratton
526f9507de Merge branch 'bugfix/linux_host_build_clang' into 'master'
build system: don't add GCC-specific options when building with clang

See merge request espressif/esp-idf!12066
2021-01-27 15:17:19 +08:00
Fu Hanxi
0146f258d7 style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
Ivan Grokhotkov
ed7fbfefac build system: don't add GCC-specific options when building with clang 2021-01-24 12:48:29 +01:00
Renz Bagaporo
32206d3a7d ci: enabled ldgen mapping check in ci 2021-01-19 11:17:18 +08:00
Angus Gratton
60ec13b122 Merge branch 'feature/make_uf2' into 'master'
tools: Wrap flash binaries into a UF2 file for flashing through USB MSC

See merge request espressif/esp-idf!11587
2021-01-05 07:17:27 +08:00
Marius Vikhammer
7fe16bae25 tools: merge C3 changes into master 2020-12-30 07:04:12 +08: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
Angus Gratton
912cee03a4 cmake: Add esp32c3 toolchain file 2020-12-24 14:18:02 +11:00
Angus Gratton
289a643896 Merge branch 'bugfix/cmake_export_ver_during_reqs_expansion' into 'master'
cmake: set IDF_VERSION_* variables at requirement expansion stage

Closes IDF-2509

See merge request espressif/esp-idf!11637
2020-12-17 12:19:36 +08:00
Ivan Grokhotkov
792dc6ebb8 Merge branch 'feature/linux_target' into 'master'
build system: Add Linux target

Closes IDF-2145

See merge request espressif/esp-idf!10076
2020-12-16 16:25:38 +08:00
Ivan Grokhotkov
19498791a5 cmake: set IDF_VERSION_* variables at requirement expansion stage
Currently IDF_VERSION_* variables are not available to the component
CMakeLists.txt files at the requirements expansion stage. This makes
it harder to write component CMakeLists files compatible with
different IDF versions.

Include version.cmake from the requirements expansion script, add a
build system test.
2020-12-15 20:53:19 +01:00
Jakob Hasse
52093fa4ef linux: added linux target
* add toolchain file
* add linux to preview targets
* add stub for dfu number in cmake
* excluded unity runner per default
* Added esp_attr.h and esp_partition.h linux stubs
* component.cmake check list for emptyness
* added switch for linux in unity cmake file
* Added Linux host example app
2020-12-14 18:53:14 +08:00
Jakob Hasse
901925ebc5 CMake: Fix issue in newer cmake versions
* Fixes following error:

  can not determine linker language
  for target: __idf_newlib
2020-12-14 18:53:14 +08:00
Roland Dobai
3587203495 tools: Invoke menuconfig as named module
Closes https://github.com/espressif/esp-idf/issues/6248
2020-12-13 08:07:00 +01:00
Michael (XIAO Xufeng)
b52c764bf3 idf_size.py: add support for esp32c3 and risc-v 2020-11-13 07:49:11 +11:00
Angus Gratton
420aef1ffe Updates for riscv support
* Target components pull in xtensa component directly
* Use CPU HAL where applicable
* Remove unnecessary xtensa headers
* Compilation changes necessary to support non-xtensa gcc types (ie int32_t/uint32_t is no
  longer signed/unsigned int).

Changes come from internal branch commit a6723fc
2020-11-13 07:49:11 +11:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Fu Hanxi
bcc8f2628c CI: Add pre-commit for esp-idf project.
add tools/ci/python_packages/idf_ci.py for some util functions used in
ci and needs multi-os solution
2020-11-02 15:49:13 +08:00
Renz Bagaporo
988be69466 esp_hw_support: create component 2020-10-28 07:21:29 +08:00
Angus Gratton
b351ffa557 cmake: Log the project sdkconfig path as part of normal CMake status output
As discussed in footnote to https://github.com/espressif/esp-idf/issues/5251#issuecomment-625563782
2020-10-14 19:30:30 +11:00
Roland Dobai
883cbc416e tools: Use kconfiglib from package 2020-09-22 11:29:30 +02:00
Michael (XIAO Xufeng)
5425ef4ee4 hal: extract hal component from soc component 2020-09-01 13:25:32 +08:00
Angus Gratton
a9dd9e3017 Merge branch 'feature/embed_generated_files' into 'master'
cmake: allow embedding files to be dependent on a target

See merge request espressif/esp-idf!8535
2020-08-04 14:39:49 +08:00
Angus Gratton
f092054f3d Merge branch 'feature/hidden_link_as_a_group' into 'master'
cmake: add hidden option to link components as group

See merge request espressif/esp-idf!9617
2020-07-20 08:42:03 +08:00
Angus Gratton
eb43872361 version: Update to v4.3.0
v4.3.0-dev is tagged where the branches diverged, catching up with the
remaining metadata here.
2020-07-15 13:56:05 +10: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 Bagaporo
c957482d6d cmake: remove cmake ver specification for early exp script 2020-07-09 12:07:45 +08:00
Ivan Grokhotkov
b736eebf90 cmake: also pass IDF_ENV_FPGA in config.env 2020-06-26 11:37:50 +02:00
Ivan Grokhotkov
4e9e582134 Merge branch 'bugfix/check_missing_IDF_ENV_FPGA_environment' into 'master'
kconfig: fix IDF_ENV_FPGA not found

See merge request espressif/esp-idf!9200
2020-06-19 18:15:00 +08:00
Angus Gratton
b3ef89942f Merge branch 'feature/cmake_overriding_components_new_features' into 'master'
CMake: useful features for overriding components

See merge request espressif/esp-idf!8220
2020-06-19 11:56:56 +08:00
morris
c963440a97 kconfig: fix IDF_ENV_FPGA not found 2020-06-17 21:39:22 +08:00
Renz Bagaporo
bd55cdff02 cmake: allow calling get component property in early expansion 2020-06-16 20:42:00 +08:00
Renz Bagaporo
ebf07d353d cmake: allow overriding kconfig, kconfig_projbuild on registration 2020-06-16 20:42:00 +08:00
Renz Bagaporo
f8d0c5770b cmake: take note of component overriden dir 2020-06-16 20:42:00 +08:00
Renz Bagaporo
01a7db799f cmake: fix C identifier generation from embedded file 2020-06-16 17:05:46 +08:00
Ivan Grokhotkov
2db04d6e95 Merge branch 'feature/add_esp32s3_rom_symbol' into 'master'
add esp32s3 preview target and rom symbol & header

Closes IDFGH-3474

See merge request espressif/esp-idf!9127
2020-06-16 06:38:43 +08:00
Angus Gratton
534114879c Merge branch 'bugfix/fix_extra_component_dirs_ordering' into 'master'
cmake: fix extra component dir ordering

See merge request espressif/esp-idf!7731
2020-06-15 12:16:52 +08:00
morris
067b1b91c2 global: add new target name: esp32-s3
add target name, chip ID, toochain descriptions for ESP32-S3
2020-06-11 21:40:08 +08:00
Ivan Grokhotkov
7283b99c97 Merge branch 'feature/dfu_select_device' into 'master'
Add ability to select a device for DFU flashing

Closes IDF-1652

See merge request espressif/esp-idf!8956
2020-06-08 15:55:04 +08:00
Angus Gratton
7270c921be Merge branch 'bugfix/idf_as_lib_not_in_top_level' into 'master'
CMake: Fix issue when `idf_build_process` is called from a subdirectory

Closes IDF-1651

See merge request espressif/esp-idf!8722
2020-06-04 16:51:55 +08:00
Renz Christian Bagaporo
7f37fb81ca cmake: fix extra component dir ordering 2020-06-02 15:43:03 +08:00
Roland Dobai
0ff8ec66e4 Add ability to select a device for DFU flashing 2020-05-28 09:31:35 +02:00
Renz Christian Bagaporo
ba579d66ba cmake: add comment that IDF build target must be global 2020-05-18 16:38:07 +08:00
Renz Bagaporo
740819529b cmake: fix setting defaults in idf_build_process
Closes https://github.com/espressif/esp-idf/issues/5053
2020-05-14 14:59:26 +00:00
Renz Bagaporo
a0f3f1e0cb cmake: make __idf_build_target global 2020-05-13 15:38:20 +08:00
Roland Dobai
ab9f714248 Add build system support for programming ESP32-S2 using DFU utils 2020-04-30 07:59:18 +02:00
Renz Bagaporo
aed204ce6f cmake: allow embedding to depend on a target 2020-04-29 12:34:25 +08:00
Roland Dobai
4f8e2699db tools: Make Unicode from subprocess result in the CMake convert script
Fixes an issue with Python 3 in MSYS where it fails while trying to join
paths where one part is Unicode (default string on Python3) and the
second part are bytes (returned by the subprocess call).

Closes https://github.com/espressif/esp-idf/issues/5189
2020-04-27 16:15:52 +02:00
Renz Bagaporo
bd8f616f82 cmake: fix getting component requirements 2020-04-08 05:42:15 +00:00
Renz Bagaporo
07f9978df7 cmake: add elf dir information
Solves https://www.esp32.com/viewtopic.php?f=13&t=14784&p=57557&hilit=assumes#p57557
2020-04-07 17:19:33 +08:00
Ivan Grokhotkov
e94288da31 global: use '/usr/bin/env bash' instead of '/usr/bin/bash' in shebangs
Using the method from @cemeyer
(https://github.com/espressif/esp-idf/pull/3166):

find . -name \*.sh -exec sed -i "" -e 's|^#!.*bin/bash|#!/usr/bin/env bash|' {} +

Closes https://github.com/espressif/esp-idf/pull/3166.
2020-04-03 01:10:02 +02:00
Angus Gratton
207914a13a Merge branch 'refactor/common_code_panic_handler' into 'master'
Panic handling common code refactor

See merge request espressif/esp-idf!7489
2020-03-19 11:23:57 +08:00
Renz Christian Bagaporo
2b100789b7 esp32, esp32s2: move panic handling code to new component 2020-03-10 19:56:24 +08:00
Angus Gratton
2f1815f74e Merge branch 'bugfix/cmake_issues' into 'master'
CMake bugfixes

See merge request espressif/esp-idf!7605
2020-03-06 14:36:59 +08:00
Angus Gratton
8887f79bef cmake: Add warnings that convert_to_cmake.py doesn't calculate component requirements
Any component which requires another component will need this manually
added to its CMakeLists.txt file.
2020-03-02 14:45:03 +11:00
Angus Gratton
ee8557f69d cmake: convert_to_cmake: Fix possible whitespace issues
As reported on forum:
https://esp32.com/viewtopic.php?f=2&t=13565&p=53476#p53453

split() with no arg will match any whitespace sequence not just
a single space, so takes care of case where two spaces are
inserted in the variable value.
2020-03-02 14:44:16 +11:00
Renz Christian Bagaporo
f64a3c2a66 cmake: utility to create a failing target 2020-03-02 07:18:22 +05:00
Roland Dobai
1821ee8851 tools: Add proper multi-chip support for idf_size.py 2020-02-27 19:50:05 +01:00
Renz Christian Bagaporo
ab84c73244 cmake: add subdirectory if exists utility 2020-02-18 17:16:06 +05:00
Ivan Grokhotkov
90af8531d8 esp32s2: remove -nostdlib accidentally added
-nostdlib was removed in 9a2af7a and then accidentally added
in 1c2cc54.

The issue manifested itself as a failure to link some symbols from
libgcc, even though libgcc should implicitly appear at the end of the
linker command line when -nostdlib is not given.
2020-01-23 17:00:31 +01:00
morris
e30cd361a8 global: rename esp32s2beta to esp32s2 2020-01-22 12:14:38 +08:00
Ivan Grokhotkov
c11f77cb1a Merge branch 'feature/use_underlying_cmake_targets_for_idf_py' into 'master'
CMake: Use underlying flash targets for idf.py

See merge request espressif/esp-idf!7067
2020-01-21 17:05:47 +08:00
morris
1c2cc5430e global: bring up esp32s2(not beta) 2020-01-16 17:41:31 +08:00
KonstantinKondrashov
b49a657448 build: Add CONFIG_APP_PROJECT_VER to set the project version from Kconfig 2020-01-15 11:02:27 +00:00
Renz Christian Bagaporo
38b3fbfbfb cmake: add description to add_prebuild_library utility 2020-01-15 03:36:47 +00:00
Renz Christian Bagaporo
cc8bff703e esptool_py: create flash target functions 2020-01-15 03:36:47 +00:00
Ivan Grokhotkov
5466ff3f4d global: bump version to 4.2 2020-01-15 10:22:22 +08:00
Angus Gratton
65dad0d46f build system: Remove some dependencies from esp32 & esp32s2beta
Possible now that wifi related source files are all in esp_wifi
2020-01-08 18:13:12 +11:00
Sergei Silnov
dfafa98253 Use component manager if available as python package 2019-12-19 16:48:36 +01:00
Renz Christian Bagaporo
91b421c35f cmake: implement utility to import prebuilt libraries 2019-12-10 19:22:25 +08:00
Ivan Grokhotkov
2f20ad523c Merge branch 'bugfix/menuconfig_term_warning' into 'master'
Give info and warnings about the TERM environment variable

See merge request espressif/esp-idf!6717
2019-12-09 22:38:24 +08:00
He Yin Ling
a11b15b92b CI: build system do not check submodule for CI 2019-12-08 20:32:10 +08:00
Roland Dobai
d1541c74a6 Give info and warnings about the TERM environment variable 2019-12-02 09:49:21 +01:00
Ivan Grokhotkov
a9b7f74f7f Merge branch 'bugfix/macos_link_toomany_open_files' into 'master'
build system: explicitly disable LTO plugin to reduce the number of simultaneously open files

Closes IDF-923 and IDFGH-1764

See merge request espressif/esp-idf!6776
2019-11-28 01:38:53 +08:00
Ivan Grokhotkov
f49a78d543 build system: explicitly disable LTO plugin
... to reduce the number of simultaneously open files at link time.

When plugin support is enabled in the linker, BFD's (and the
corresponding file handles) are cached for the plugin to use. This
results in quite a large number of simultaneously open files, which
hits the default limit on macOS (256 files).

Since we aren't using LTO now, disable it explicitly when invoking the
linker.

Closes IDF-923
Closes IDFGH-1764
Closes https://github.com/espressif/esp-idf/issues/3989
2019-11-26 19:12:56 +01:00
Roland Dobai
bd2fc9f832 Make menuconfig colors configurable
Closes https://github.com/espressif/esp-idf/issues/4387
2019-11-26 10:40:34 +01:00
Roland Dobai
be749395c4 Menuconfig: Don't ask to save configuration when nothing has changed
Closes https://github.com/espressif/esp-idf/issues/4303
2019-11-21 06:47:11 +00:00
Angus Gratton
bc3233782b Merge branch 'feature/remove_gcc5_support' into 'master'
global: remove gcc 5.2 support

Closes IDF-1131

See merge request espressif/esp-idf!6608
2019-11-21 09:08:41 +08:00
Ivan Grokhotkov
9a2af7ae33 global: remove gcc 5.2 support 2019-11-20 11:17:27 +01:00
Roland Dobai
84d5cc1c17 Generate source files for kconfiglib from the build system 2019-11-15 15:25:09 +00:00
Angus Gratton
9efbe1bb47 Merge branch 'bugfix/support_worktree_on_cmake' into 'master'
cmake: support git worktree

See merge request espressif/esp-idf!6581
2019-11-14 16:00:47 +08:00
Angus Gratton
75488f1806 Merge branch 'bugfix/cmake_secure_boot' into 'master'
secure boot: CMake bug fixes

See merge request espressif/esp-idf!6523
2019-11-08 10:58:04 +08:00
Renz Christian Bagaporo
9d33ad5e25 cmake: support git worktree
Use rev-parse to get the HEAD directory instead of manually looking for
it. This method works in the main repository, worktrees and submodules.

Closes https://github.com/espressif/esp-idf/issues/4136
2019-11-05 15:32:35 +08: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
Roland Dobai
01887f71e7 Update kconfiglib to upstream version and replace mconf-idf
Special thanks to @ulfalizer for the helpful suggestions regarding
kconfiglib.

"rsource" option is available for relative path includes
Closes https://github.com/espressif/esp-idf/issues/4064
2019-10-29 10:40:04 +01: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
e8881352c5 secure boot: Fix bug where verification key was not embedded in app 2019-10-29 12:46:09 +11:00
Angus Gratton
8675a818f9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-22 13:51:49 +11:00
Angus Gratton
496ede9bcd Merge branch 'master' into feature/esp32s2beta_merge 2019-10-15 14:59:27 +11:00
Ivan Grokhotkov
499d087c91 C++: add provisions for optional RTTI support
Ref. https://github.com/espressif/esp-idf/issues/1684

This change allows RTTI to be enabled in menuconfig. For full RTTI
support, libstdc++.a in the toolchain should be built without
-fno-rtti, as it is done now.

Generally if libstdc++.a is built with RTTI, applications which do not
use RTTI (and build with -fno-rtti) could still include typeinfo
structures referenced from STL classes’ vtables. This change works
around this, by moving all typeinfo structures from libstdc++.a into
a non-loadable section, placed into a non-existent memory region
starting at address 0. This can be done because when the application
is compiled with -fno-rtti, typeinfo structures are not used at run
time. This way, typeinfo structures do not contribute to the
application binary size.

If the application is build with RTTI support, typeinfo structures are
linked into the application .rodata section as usual.

Note that this commit does not actually enable RTTI support.
The respective Kconfig option is hidden, and will be made visible when
the toolchain is updated.
2019-10-13 14:46:44 +02:00
Angus Gratton
6df8658b5b Merge branch 'bugfix/fixes_from_kconfiglib_update' into 'master'
Fix of menuconfig bug for MSYS2 and a couple of cosmetic changes

See merge request espressif/esp-idf!6255
2019-10-10 11:06:29 +08:00
Ivan Grokhotkov
f8a3da024a Merge branch 'bugfix/treat_unreg_components_as_unresolved' into 'master'
CMake: Treat unregistered components as unresolved

See merge request espressif/esp-idf!5700
2019-10-09 23:53:57 +08:00
Roland Dobai
56fcafc346 Fix cmake typo 2019-10-08 08:11:53 +00:00
Ivan Grokhotkov
5830f529d8 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-02 19:01:39 +02:00
Angus Gratton
adfc06a530 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-20 10:28:37 +10:00
Angus Gratton
01a8e566b8 Merge branch 'bugfix/cmake_case_insenstive_filesystem' into 'master'
cmake: Account for IDF_PATH case mismatches on case insensitive filesystems

See merge request espressif/esp-idf!6137
2019-09-19 19:33:36 +08:00
Angus Gratton
36ba5bc5ee cmake: Account for IDF_PATH case mismatches on case insensitive filesystems 2019-09-19 12:30:52 +10: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
438d513a95 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-16 16:18:48 +10:00
Angus Gratton
b08dcefafb Merge branch 'bugfix/idf_py_ccache_options' into 'master'
idf.py: Add way to enable CCache by default, remove dead CCache options code

Closes IDF-948

See merge request espressif/esp-idf!5971
2019-09-03 12:56:20 +08:00
Angus Gratton
5b9576e282 Merge branch 'bugfix/hide_component_internal_targets' into 'master'
cmake: hide component internal targets

See merge request espressif/esp-idf!5866
2019-09-03 09:24:34 +08:00
Angus Gratton
9a7ab28cc2 idf.py: Add environment variable to enable ccache by default 2019-09-03 10:25:28 +10:00
Angus Gratton
a7e8d87d3e Merge branch 'bugfix/error_out_on_uninit_git' into 'master'
cmake: fix build failure when git repo is initialized but no first commit

Closes IDFGH-1676

See merge request espressif/esp-idf!5914
2019-08-30 16:27:28 +08: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
Per Malmberg
31cdd38744 Make sure ESP_PLATFORM is defined when processing CMake files. 2019-08-28 09:44:06 +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
88320062b8 cmake: make build components available before immediately
Previous implementation only builds list of components included in the
build during component registration.

Since the build components is known as the requirements expansion is
ongoing, update the list here instead.
2019-08-27 15:24:31 +08:00
Mahavir Jain
8e7c71a1a0 Merge branch 'bugfix/cmake_src_exclude_issue' into 'master'
cmake: fix issue with handling of EXCLUDE_SRCS

See merge request espressif/esp-idf!5869
2019-08-23 14:21:16 +08:00
Mahavir Jain
1248f17749 cmake: fix issue with handling of EXCLUDE_SRCS 2019-08-22 13:17:44 +05:30
Angus Gratton
f85ba3516f Merge branch 'bugfix/fix_project_ver_issue' into 'master'
CMake: fix retrieving PROJECT_VER

See merge request espressif/esp-idf!5842
2019-08-22 10:47:06 +08:00
Renz Christian Bagaporo
72ddc940e0 cmake: hide internal targets
Use imported library, which does not create additional rules, but still
allows attaching arbitraty properties instead of custom targets. This
allows the targets to not appear in the target list of IDEs such as
CLion.
2019-08-22 09:39:24 +08:00
Angus Gratton
5a3bad6119 Merge branch 'feature/freebsd_build_system' into 'master'
build systems: Changes to work on FreeBSD

Closes IDFGH-1657

See merge request espressif/esp-idf!5821
2019-08-21 16:18:47 +08:00
Renz Christian Bagaporo
4690152eca cmake: make default version 1 2019-08-21 12:46:38 +08:00
Renz Christian Bagaporo
3eecd43b31 cmake: fix issue with checking build process args 2019-08-21 12:20:46 +08:00
Angus Gratton
60eec0e969 Merge branch 'bugfix/set_mconf_idf_build_dir' into 'master'
cmake: set build dir for mconf-idf

See merge request espressif/esp-idf!5819
2019-08-20 13:10:36 +08:00
Angus Gratton
0a0bb09585 Merge 'master' into feature/esp32s2beta_update 2019-08-20 13:55:23 +10:00
Tomoyuki Sakurai
d296aad2a9 build systems: Changes to work on FreeBSD
Merges https://github.com/espressif/esp-idf/pull/2029
2019-08-19 15:33:55 +10:00
Angus Gratton
6990a7cd54 Merge branch 'master' into feature/esp32s2beta_update 2019-08-19 15:03:43 +10:00
Renz Christian Bagaporo
ded0ac352d cmake: set build dir for mconf-idf
Fixes an issue where if idf_build_process is called in a CMake
subdirectory, menuconfig looks for the mconf-idf binary in the wrong
place (in the subdirectory build dir instead of root binary dir).
2019-08-16 17:46:50 +08:00
Ivan Grokhotkov
74fe282b73 cmake: check mconf-idf binary version
Print a warning if an outdated version of mconf-idf is found in
the PATH.
2019-08-15 17:25:26 +02:00
Ivan Grokhotkov
0a74227cfa bump version to 4.1 2019-08-13 10:09:52 +02:00
Angus Gratton
5e39718c22 Merge branch 'bugfix/component_set_properties' into 'master'
CMake: Set component properties

See merge request espressif/esp-idf!5738
2019-08-13 10:23:30 +08:00
Angus Gratton
b0ef3cdc9f Merge branch 'bugfix/check_include_dirs' into 'master'
CMake: Check if component include dirs are directories

See merge request espressif/esp-idf!5701
2019-08-12 12:45:11 +08:00
Renz Christian Bagaporo
87ebdaa74e cmake: set component properties 2019-08-09 20:51:20 +08:00
Renz Christian Bagaporo
08de39c226 cmake: check include directories 2019-08-09 08:40:17 +08:00
Angus Gratton
24d26fccde Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 13:44:24 +10:00
Renz Christian Bagaporo
4df98b5489 cmake: treat unregistered components as unresolved 2019-08-06 11:14:44 +08:00
Roland Dobai
bd21960955 tools: Support sdkconfig.rename files from outside IDF in confgen.py 2019-07-16 20:18:19 +02:00
Angus Gratton
56afdedf7c Merge branch 'bugfix/do_not_require_new_target_link_library_signature' into 'master'
CMake: Do not force use of new target_link_libraries signature

See merge request espressif/esp-idf!5471
2019-07-16 13:36:35 +08:00
Renz Christian Bagaporo
d3e814fe19 cmake: set COMPONENT_DIR in early expansion
Gives same treatment to COMPONENT_DIR as COMPONENT_PATH in
https://gitlab.espressif.cn:6688/espressif/esp-idf/merge_requests/4557

Closes https://github.com/espressif/esp-idf/issues/3771
2019-07-12 16:22:18 +08:00
Angus Gratton
6410f7a259 cmake: Fix some bugs building mconf-idf from scratch
- Makefile didn't quite work with out-of-tree build unless there was already an in-tree build done.
- CMake needs to delete some of the in-tree build artifacts or they're used instead of the correct
 files.
2019-07-09 20:02:44 +08:00
Renz Christian Bagaporo
2a5b02097b cmake: do not force use of new signature for target_link_libraries 2019-07-08 19:43:57 +08:00
Angus Gratton
2639d5b6c3 cmake: Fix some bugs building mconf-idf from scratch
- Makefile didn't quite work with out-of-tree build unless there was already an in-tree build done.
- CMake needs to delete some of the in-tree build artifacts or they're used instead of the correct
 files.
2019-07-03 18:40:55 +10:00
Angus Gratton
9ef37270f6 Merge branch 'bugfix/make_ccache_opt_in' into 'master'
cmake: make use of ccache opt-in

See merge request idf/esp-idf!5368
2019-07-01 15:48:31 +08:00
Angus Gratton
f1e07663c4 cmake: Use environment variables file for all config binaries 2019-07-01 15:54:27 +10:00
Angus Gratton
26db058339 cmake kconfig: Pass environment variables to confgen.py via a file
Works around "command line too long" errors when using Windows
and CMake < 3.11

Closes IDF-711
2019-07-01 15:54:10 +10:00
Renz Christian Bagaporo
72a5762525 cmake: make use of ccache opt-in 2019-06-29 00:22:57 +00:00
Angus Gratton
265d7dc4e5 Merge branch 'bugfix/fix_secure_boot_support' into 'master'
Fixes to secure boot support in CMake

See merge request idf/esp-idf!4977
2019-06-28 15:38:59 +08: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
Renz Christian Bagaporo
e4a4063e4c cmake: fix issue with fail at build time
Fix issue that next build retry does not succeed once the requirement is
satisfied.
2019-06-28 10:54:21 +08:00
Angus Gratton
9a412d3a08 Merge branch 'feature/use_new_component_registration_apis' into 'master'
Use new component registration API

See merge request idf/esp-idf!4898
2019-06-25 10:24:11 +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
047cf71c01 tools: update make converter to use new component registration api 2019-06-21 19:53:29 +08:00
Renz Christian Bagaporo
11924d76cb cmake: clarify build trimming docs
How idf_build_component and the COMPONENTS argument to idf_build_process
interact is not clear/misleading. Clarify their interaction in the docs.

Closes: https://github.com/espressif/esp-idf/issues/3630
2019-06-20 16:02:22 +08:00
Renz Christian Bagaporo
64d37f5cb9 cmake: fix issues with build process
Fix issue when COMPONENTS are is not specified for idf_build_process,
no component is included in the build.
2019-06-20 16:02:22 +08:00
Renz Christian Bagaporo
2fff500a1c cmake: export IDF_TARGET to menuconfig
Pass value of IDF_TARGET to menuconfig invocation.
2019-06-20 16:02:22 +08:00
Renz Christian Bagaporo
8424822150 cmake: set CONFIG_DIR build property
Add CONFIG_DIR as a build property, so that components don't have to
derive it from one of the generated config files.
2019-06-20 16:02:22 +08:00
Angus Gratton
eac356ef4a Merge branch 'feature/idf_version_header' into 'master'
esp_common: add esp_idf_version.h header to define IDF version

Closes IDF-253

See merge request idf/esp-idf!4596
2019-06-13 09:41:35 +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
Renz Christian Bagaporo
3882e48e8a cmake: use new signature form of target_link_library to link components
!4452 used setting LINK_LIBRARIES and INTERFACE_LINK_LIBRARIES to link
components built under ESP-IDF build system. However, LINK_LIBRARIES does
not produce behavior same as linking PRIVATE. This MR uses the new
signature for target_link_libraries directly instead. This also moves
setting dependencies during component registration rather than after all
components have been processed.

The consequence is that internally, components have to use the new
signature form as well. This does not affect linking the components to
external targets, such as with idf_as_lib example. This only affects
linking additional libraries to ESP-IDF libraries outside component processing (after
idf_build_process), which is not even possible for CMake<v3.13 as
target_link_libraries is not valid for targets not created in current
directory. See https://cmake.org/cmake/help/v3.13/policy/CMP0079.html#policy:CMP0079
2019-06-11 18:09:26 +08:00
Renz Christian Bagaporo
f0f861ccd9 ldgen: use user input filename for processed template
Previously ldgen determines the output file name on its own. This commit
makes it so that user can dictate what the output file name will be
for the processed template, if the user needs it for something else.
2019-06-11 18:09:26 +08:00
Renz Christian Bagaporo
297b2c5a39 cmake: evaluate component requirements in one go
!4452 simplified early expansion by using an early expansion script that
only does one thing: get the public and private requirements for each
component, albeit one by one. This was also dependent on parsing
the command output of the expansion script.  This commit makes it so that a list of all
components to be processed to passed to the expansion script, generating a cmake
file that sets each component requirements in one go.

This also makes sure that only components that registered themselves get
included in the final build list.
2019-06-11 18:09:26 +08:00
Renz Christian Bagaporo
33dd7011be cmake: expand build components before generating config
!4452 had config generation first before building the component list
to be used in the build. This proved to be detrimental when a new target
is added as config generation would consider configs from both targets.
2019-06-11 18:09:26 +08:00
Angus Gratton
a37ad24137 cmake: Always pass IDF_TARGET into mconf, avoid error about uninitialized environment variable 2019-06-11 13:07:37 +08:00
Ivan Grokhotkov
7dcc5f4d15 idf.py: pass correct toolchain prefix to the monitor 2019-06-11 13:07:37 +08:00
suda-morris
84b2f9f14d build and link hello-world for esp32s2beta 2019-06-11 13:07:37 +08:00
suda-morris
61ce868396 make bootloader_support support esp32s2beta 2019-06-11 13:07:02 +08:00
suda-morris
c926f7515e add toolchain setting for esp32s2 2019-06-11 13:06:32 +08:00
Sergei Silnov
2557442ae9 cmake: fix crosstool-NG version check regex 2019-06-10 09:51:40 +00:00
Roland Dobai
5034a57605 Tools: Fix CMake menuconfig used with combination of MSYS and CMD 2019-05-29 14:35:57 +02:00