Commit Graph

508 Commits

Author SHA1 Message Date
radim.karnis
d2c918f407 mkdfu.py: Support setting flash parameters 2022-05-27 15:44:56 +02:00
Anton Maklakov
9cc2ce9f7c build: fallback to dwarf-4 format because of lesser binary size (dwarf-5 is by default in GCC 11) 2022-05-27 15:10:22 +07:00
Sergei Silnov
487603b51f build & config: Add IDF_COMPONENT_MANAGER build property 2022-05-26 12:48:27 +02:00
Marius Vikhammer
cf1b222cac build system: removed target component
After refactoring the target components (e.g. esp32) no longer contained any real functionality.
What remained in these components have been moved elsewhere and the component itself deleted from the
build system.
2022-05-24 09:12:59 +08:00
Marius Vikhammer
d485f6add8 Merge branch 'feature/arch_build_property' into 'master'
build-system: add property for architecture (riscv/xtensa)

Closes IDF-1754

See merge request espressif/esp-idf!18127
2022-05-24 08:46:09 +08:00
Marius Vikhammer
9362434c47 build-system: add property for architecture (riscv/xtensa)
riscv/xtensa is now a common component.
2022-05-20 09:00:32 +08:00
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
Roland Dobai
6cbe0ceaa7 Merge branch 'feature/enable_component_manager_by_default_for_pure_cmake' into 'master'
tools: Enable the component manager by default in CMake

Closes IDF-4322

See merge request espressif/esp-idf!17724
2022-05-13 15:39:01 +08:00
Sergei Silnov
69cf85e6a6 tools: Enable the component manager by default in CMake 2022-05-03 17:38:36 +02:00
Ivan Grokhotkov
47659be5b8
build system: remove lwip from common requirements
lwip was added to common requirements list to provide "sys/socket.h"
header to all components without additional requirements specified.

However, lwip pulls in a lot of dependencies on other components.
This commit removes lwip from common requirements to reduce the number
of components in G1-only apps.

To compensate for this removal, the following changes are made:
- newlib (which is a common requirement) has a public dependency on
  lwip if lwip is present in the build. This ensures that sys/socket.h
  is available as long as lwip component is included into the build.
- lwip is now a public requirement of esp-tls since esp_tls.h includes
  sys/socket.h header.
- lwip is now a public requirement o esp_http_client because
  sys/socket.h is included from esp_http_client.h
- lwip is now a private requirement of esp_wifi for "smartconfig_ack"
- lwip is now a private requirement of mqtt for socket functions
- lwip is now a public requirement of tcp_transport because
  esp_transport_tcp.h includes sys/socket.h header.
- mbedtls checks if lwip component is present in the build. If yes,
  net_sockets.c is added to the build, along with the dependency on
  lwip. Previously lwip was a public requirement of mbedtls
  unconditionally.

system/g1_components test app is updated to reflect the changes

Default public dependencies of a component before and after this
change, except common requirements:

- esp_timer (public dependency of freertos)
- bootloader_support (public dependency of esp_hw_support)
- vfs (public dependency of lwip)
- esp_wifi (public dependency of lwip)
- esp_event (public dependency of esp_wifi)
- esp_netif (public dependency of esp_event)
- esp_eth (public dependency of esp_netif)
- esp_phy (public dependency of esp_wifi)

After:

- esp_timer (public dependency of freertos)
- bootloader_support (public dependency of esp_hw_support)

Altogether, the following components have been always added as
public requirements to all other components, and are not added now
([breaking-change]):

- lwip
- vfs
- esp_wifi
- esp_event
- esp_netif
- esp_eth
- esp_phy

Application components now need to explicitly declare dependencies on
these components.
2022-05-02 20:47:17 +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
Marek Fiala
b5c374ae3e tools: Deprecated commands removed from idf.py
Remove deprecated commands from idf.py, but they are still kept working as cmake deprecated targets.
2022-03-25 09:08:53 +01:00
Marius Vikhammer
0ffeaf9350 Merge branch 'feature/confgen_rename_many_to_one' into 'master'
kconfig: update confgen to handle sdkconfig.rename with target specific markup

Closes IDF-4544

See merge request espressif/esp-idf!16949
2022-02-08 02:38:22 +00:00
Marius Vikhammer
23c55946a6 kconfig: also parse target specific sdkconfig.rename.TARGET files
Adds functionality for target specific sdkconfig.rename files which can be
used when certain renames are only needed for a specific target.
2022-01-31 11:36:08 +08:00
Ivan Grokhotkov
0ebf93c01e Merge branch 'bugfix/linux_taret_fixes' into 'master'
linux target: various minor fixes

See merge request espressif/esp-idf!16905
2022-01-25 08:43:38 +00:00
Ivan Grokhotkov
9901fc3058 cmake: don't pass --gc-sections to macOS linker, use -dead_strip
When building for "linux" (~POSIX) target on macOS, the system linker
is normally used. MacOS linker doesn't recognise --gc-sections, but
has a -dead_strip flag which is equivalent.
2022-01-24 18:51:40 +01:00
Roland Dobai
ef5c08a7be Revert "Tools: Don't check Python packages on every idf.py & cmake run"
This reverts commit 0265c79bcc.
2022-01-24 14:53:37 +01:00
morris
c1b79951fd cmake: assign toolchain prefix manually 2022-01-20 15:46:50 +08:00
Kevin (Lao Kaiyao)
bf8d4d55d0 Merge branch 'refactor/rename_esp8684_to_esp32c2' into 'master'
esp8684: rename esp8684 to esp32c2

Closes IDF-4530

See merge request espressif/esp-idf!16745
2022-01-19 09:08:58 +00:00
laokaiyao
cf049e15ed esp8684: rename target to esp32c2 2022-01-19 11:08:57 +08:00
Roland Dobai
0265c79bcc Tools: Don't check Python packages on every idf.py & cmake run 2022-01-18 14:55:47 +01:00
Roland Dobai
b28d7e6850 Tools: Improve the Python package system
Introduce features into the Python package management system & manage
package versions outside of ESP-IDF repo.
2022-01-17 16:54:36 +01:00
Roland Dobai
73d818eb72 tools: Add UF2 identificator for ESP32-C2 and ESP32-H2
The IDs were submitted in https://github.com/microsoft/uf2/pull/59.
2022-01-14 15:50:17 +01:00
morris
1267738149 cmake: using toolchain prefix determined by cmake itself 2022-01-10 10:06:09 +08:00
Omar Chebib
cb90544a04 Build: fix idf_as_lib example not building 2022-01-06 03:17:29 +00:00
Roland Dobai
b886dc6998 Merge branch 'feature/idf_py_savedefconfig' into 'master'
Tools: Add "idf.py save-defconfig" command to generate sdkconfig.defaults based on current sdkconfig

Closes IDF-2970

See merge request espressif/esp-idf!16409
2021-12-20 08:23:43 +00:00
Ivan Grokhotkov
5b3b5f006f Merge branch 'feature/cmake_weak_deps_helper' into 'master'
cmake: add idf_component_optional_requires utility function, simplify some component dependencies

Closes IDF-3086

See merge request espressif/esp-idf!16373
2021-12-16 13:46:45 +00:00
Roland Dobai
5118dd7cf3 Tools: Add "idf.py save-defconfig" command to generate sdkconfig.defaults 2021-12-15 17:15:31 +01: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
29489a3303 build system: fix quoting of fragments list passed to ldgen 2021-12-14 19:17:53 +01:00
Ivan Grokhotkov
8da98b864d build system: pass semicolon-separated directory lists to kconfig
New —-list-separator argument of confgen.py and
prepare_kconfig_files.py is used to select which character is used
as list separator. For compatibility with esp-docs, we still keep
support for space separator. Otherwise esp-docs would have to choose
the separator depending on the IDF version.
2021-12-14 19:17:53 +01:00
Ivan Grokhotkov
636ce4750f ldgen: remove unused variables 2021-12-14 13:14:55 +01:00
Cao Sen Miao
e81841318f CI: Enable ESP8684 build stage CI on master 2021-12-13 19:18:47 +08:00
Ivan Grokhotkov
71a884571c cmake: add idf_component_optional_requires utility function
It can be used in component CMakeLists.txt files when adding "weak"
dependencies between component. A "weak" dependency from A to B is
similar to target_link_libraries(A PRIVATE B), but it gets added only
if B is included in the build.
Use it instead of specifying B as part of PRIV_REQUIRES when the
component can be built (even if with reduced functionality) without
component B being available.
2021-12-13 10:53:22 +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
Omar Chebib
0baf2c43cc Build: CMake compiler flags will be set, regardless of the cache status
Defining CMake variables from the command-line or from another CMake project,
such as `-DCMAKE_C_FLAGS= -DCMAKE_CXX_FLAGS=`, caused a link failure as ESP
CMake was unable to set its proper compilation flags.
Additional CMake compiler flags can now be provided by another project.

* Closes https://github.com/espressif/esp-idf/issues/7507
2021-11-29 09:48:13 +00:00
Roland Dobai
f64b3902cf tools: Delete the old kconfig tools
The old kconfig tool is not used anymore. It was replaced with the
kconfiglib Python package.
2021-11-24 13:07:56 +01:00
Roland Dobai
9c1d4f5b54 Build & config: Remove the "make" build system
The "make" build system was deprecated in v4.0 in favor of idf.py
(cmake). The remaining support is removed in v5.0.
2021-11-10 09:53:53 +01:00
Cao Sen Miao
f6da46d798 CI: add fast_template_app and tools support 2021-11-06 17:33:44 +08:00
Cao Sen Miao
7f5c415401 ESP8684: introduce a new target esp8684 2021-11-06 17:33:44 +08: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
Fu Hanxi
ea1005b740 build: create BUILD_DIR/prefix_map_gdbinit when enable reproducible build
add project property BUILD_COMPONENT_DIRS
2021-10-26 10:55:00 +08:00
Ivan Grokhotkov
68233f58b4 version: starting v5.0.0 development 2021-10-20 22:25:38 +02:00
Marek Fiala
ff18a96f7d tools: replace _ with - in idf.py
Closes https://github.com/espressif/esp-idf/issues/5126
2021-10-13 17:30:38 +08:00
Roland Dobai
e55b4ff8e6 Merge branch 'feature/esp32s3_dfu' into 'master'
docs, cmake: updates for ESP32-S3 DFU support

Closes IDF-3534

See merge request espressif/esp-idf!15348
2021-10-12 15:44:02 +00:00
Ivan Grokhotkov
347884aff5 docs, cmake: updates for ESP32-S3 DFU support 2021-10-08 18:24:20 +02:00
Ivan Grokhotkov
4f3cc319af cmake: kconfig: sort results of new glob expressions
Similar to 2f811b79, see that commit for the explanation.
2021-10-06 10:16:44 +02:00
Ivan Grokhotkov
4ae1b06082 cmake: kconfig: don't add empty entries to kconfigs list 2021-10-06 10:16:35 +02:00
Ivan Grokhotkov
0ad89536ce build system: quote values in __build_write_properties 2021-10-06 10:15:10 +02:00
Ivan Grokhotkov
5a6e27b8a1 build system: quote values in __component_write_properties 2021-10-06 10:15:02 +02:00
Ivan Grokhotkov
e39d3b2160 build system: project: quote linker map file argument 2021-10-06 10:14:55 +02:00
Ivan Grokhotkov
83a7ecc7c3 build system: quote LD script search paths in target_linker_script 2021-10-06 10:14:46 +02:00
morris
0f7b90d205 cmake: don't treat the readme file as a component 2021-09-24 10:56:58 +08:00
Ivan Grokhotkov
8f0ee18931 Merge branch 'feature/clang_toolchain_compat' into 'master'
Build system: minimal changes for clang compatibility

See merge request espressif/esp-idf!15168
2021-09-23 08:19:09 +00: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
Ivan Grokhotkov
6bba3ea034 cmake: only add GCC-specific flags when building with GCC
There are probably more GCC-specific flags in component CMakeLists.txt
files; these are just the one being added for all the files.
2021-09-16 11:07:54 +02:00
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