Commit Graph
100 Commits
Author SHA1 Message Date
Renz Christian Bagaporo fb1dec37d8 spi_flash: reenable mmap tests on esp32s2beta 2020-01-10 16:17:01 +11:00
Renz Christian Bagaporo f766866167 cmake: remove intermediary libraries for some component 2019-12-11 16:43:47 +08:00
Renz Christian Bagaporo 17876d3d73 cmake: some optimizations to build system tests 2019-12-11 16:43:47 +08:00
Renz Christian Bagaporo 2ebaf53edc examples: add import prebuilt example 2019-12-10 19:22:25 +08:00
Renz Christian Bagaporo 91b421c35f cmake: implement utility to import prebuilt libraries 2019-12-10 19:22:25 +08:00
Renz Christian Bagaporo e6ad330018 ble_mesh_wifi_coexist example: Disable Wi-Fi RX IRAM optimisation
Otherwise IRAM usage is too high in this example.
2019-11-28 09:20:00 +08:00
Renz Christian Bagaporo bb139d2b83 esp_event: fix possibility of null ptr dereference
Closes https://github.com/espressif/esp-idf/issues/4373
2019-11-25 14:27:10 +08:00
Renz Christian Bagaporo 6540877f23 test_utils: move ccomp timer interrupt allocation/free to init/deinit 2019-11-21 11:59:46 +08:00
Renz Christian Bagaporo c4dc63c4d8 ci: add jobs for tests 2019-11-18 10:29:42 +08:00
Renz Christian Bagaporo 550c0ef234 vfs: use ccomp timer in performance test 2019-11-18 10:29:02 +08:00
Renz Christian Bagaporo df26ab13e2 test_utils: implement performance timer 2019-11-18 10:29:01 +08:00
Renz Christian Bagaporo 77585bd14e spiffs: fix build issue on clean project
From issue:

I did some poking around in components/spiffs/project_include.cmake and
it looks like what is failing is it isn't getting an offset from
parttool.py. I think what the problem is that the parttool.py cannot
determine the offset of the storage partition as I can't run menuconfig
to set the custom partitions.

I have tested that this problem is solvable by manually setting the
custom partitions in sdkconfig and that is a workaround but there should
be at least a better error message in the configuration when it cannot
find the partition as this would also happen if the partition name was
misspelled.

Closes https://github.com/espressif/esp-idf/issues/4236
2019-11-13 12:31:50 +08:00
Renz Christian Bagaporo 705e4189db examples: fix idf as library example build on macOS
GCC prefixes underscore on symbol names on macOS, and so the set
undefined symbol `-u app_main` won't work. However, this is unecessary,
as the source file that defines it is specified directly to the
executable, and not through a static library.

Closes https://github.com/espressif/esp-idf/issues/4168
2019-11-08 16:04:05 +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 2dd74d4b7a ci: remove semicolon for cmake build system test 2019-11-03 16:52:06 +08:00
Renz Christian Bagaporo 42d4f39a9a cmake: consider sdkconfig defaults value from environment 2019-11-03 16:43:58 +08:00
Renz Christian Bagaporo b0bb53de06 ci: test multiple sdkconfig defaults 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
Renz Christian Bagaporo f356d54365 esp_event: revert changes in !5702 2019-11-03 16:19:30 +08:00
Renz Christian Bagaporo 1ed77e3a8d esp_event: remove extra line from source file 2019-10-25 13:14:05 +08:00
Renz Christian Bagaporo 521f436315 esp_event: test that handlers can unregister themselves 2019-10-25 11:39:16 +08:00
Renz Christian Bagaporo 3c253295eb esp_event: iterate loop nodes safely as well 2019-10-25 11:39:16 +08:00
Renz Christian Bagaporo 746322b7d6 spiffs: fix issue with args to spiffsgen in make 2019-10-22 11:35:19 +08:00
Renz Christian Bagaporo d44e3d9f56 docs: cmake docs fixes 2019-10-18 12:51:46 +08:00
Renz Christian Bagaporo a986283997 spiffs: follow symlinks in host test 2019-10-08 17:55:59 +08:00
Renz Christian Bagaporo f1b5c326f4 cxx: force pthread to appear later in link line 2019-09-17 20:08:12 +08:00
Renz Christian Bagaporo a4ee680bbf app_update: use build system api to get partition_table dir 2019-09-03 19:47:53 +08:00
Renz Christian Bagaporo fe9edc3ebe docs: fix typo of build component aliases name 2019-08-28 14:52:09 +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
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
Renz Christian Bagaporo c50a67567a ldgen: fix build issue on make when build dir is a symlink
Fixes an issue where build fails if the build directory is a symlink.
The issue is caused by the rule target and the final executable dependency
not matching.

Closes https://github.com/espressif/esp-idf/issues/3626
2019-08-27 13:53:31 +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
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
Renz Christian Bagaporo a1a2f33459 esptool_py: add missing phony build targets for CMake
Adds targets erase_flash and monitor for users not using idf.py.
Closes https://github.com/espressif/esp-idf/issues/2420.
2019-08-21 10:01:00 +08: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
Renz Christian Bagaporo 6b16928fbc docs: build system internals 2019-08-15 14:25:47 +08:00
Renz Christian Bagaporo 6875080b9b mbedtls: add source files to appropriate library 2019-08-15 12:43:45 +08:00
Renz Christian Bagaporo 87ebdaa74e cmake: set component properties 2019-08-09 20:51:20 +08:00
Renz Christian Bagaporo e3c236d2fe cmake: fix encrypted project flash arg file generation 2019-08-09 16:35:31 +08:00
Renz Christian Bagaporo 4dd2b9edb1 components: fix incorrect include dir args 2019-08-09 08:40:17 +08:00
Renz Christian Bagaporo 08de39c226 cmake: check include directories 2019-08-09 08:40:17 +08:00
Renz Christian Bagaporo 4df98b5489 cmake: treat unregistered components as unresolved 2019-08-06 11:14:44 +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
Renz Christian Bagaporo 2a5b02097b cmake: do not force use of new signature for target_link_libraries 2019-07-08 19:43:57 +08:00
Renz Christian Bagaporo 94e0569c2b make, cmake: pass config esptool args for otatool invocation
Closes https://github.com/espressif/esp-idf/issues/3135
2019-07-05 02:26:00 +00:00
Renz Christian Bagaporo 2360d882d9 parttool, otatool: accept esptool args 2019-07-05 02:26:00 +00:00
Renz Christian Bagaporo 72a5762525 cmake: make use of ccache opt-in 2019-06-29 00:22:57 +00:00
Renz Christian Bagaporo 4848dfa710 esptool_py: use component property to simplify arg file generation
esptool_py used to create its own custom target to attach properties to.
This commit uses component properties instead, and the APIs used to set
and retrieve those properties in order to simplify generation of
argument files to esptool.py.
2019-06-28 18:14:25 +08:00
Renz Christian Bagaporo 67909fe2a0 ci: test fail on build time works 2019-06-28 10:54:21 +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
Renz Christian Bagaporo 60a77bea7d docs: remove secure boot and flash encryption from CMake pending features 2019-06-28 10:54:21 +08:00
Renz Christian Bagaporo 3ae69484fe esptool_py: do not generate flasher arg files on bootloader build 2019-06-28 10:54:21 +08:00
Renz Christian Bagaporo 9edc867c62 bootloader: fix secure boot issues
Do not include bootloader in flash target when secure boot is enabled.
Emit signing warning on all cases where signed apps are enabled (secure
boot and signed images)
Follow convention of capital letters for SECURE_BOOT_SIGNING_KEY variable, since it is
relevant to other components, not just bootloader.
Pass signing key and verification key via config, not requiring
bootloader to know parent app dir.
Misc. variables name corrections
2019-06-28 10:54:21 +08:00
Renz Christian Bagaporo 179259f195 components: restore dependency of extra bins on flash target 2019-06-28 10:50:52 +08:00
Renz Christian Bagaporo f332e0c1d6 partition_table: move establishing dependencies to respective components
partition_table: move establishing dependencies to respective components
2019-06-28 10:50:52 +08:00
Renz Christian Bagaporo 6a18eaeaf5 esptool_py: fix issue with variable for esptool args
elf2image-only arguments are being added to esptool args meant for
flashing
2019-06-28 10:50:52 +08:00
Renz Christian Bagaporo 2adf313838 bootloader_support: move embedding key after component registration
Bootloader build requires verification key to be embedded in the binary.
Under specific configs, this key is generated during build time from the
signing key. Move the key generation to after the component
registration, since non scriptable commands are used in the process
(during early expansion)
2019-06-28 10:50:52 +08:00
Renz Christian Bagaporo 0872efa4ef mbedtls: remove component CMake file workarounds 2019-06-26 08:41:02 +00:00
Renz Christian Bagaporo 82858050b6 ci: sort list of flake8 submodule excludes 2019-06-25 20:18:36 +08:00
Renz Christian Bagaporo 94b88654a3 ci: exclude nimble submodule from python style check 2019-06-25 20:12:35 +08:00
Renz Christian Bagaporo 31ec634730 bt: fix build issue
Source files and include directories were appended to variables
used by the previous component registration command.
2019-06-25 16:53:37 +08:00
Renz Christian Bagaporo 9b350f9ecc cmake: some formatting fixes
Do not include bootloader in flash target when secure boot is enabled.
Emit signing warning on all cases where signed apps are enabled (secure
boot and signed images)
Follow convention of capital letters for SECURE_BOOT_SIGNING_KEY
variable, since it is
relevant to other components, not just bootloader.
Pass signing key and verification key via config, not requiring
bootloader to know parent app dir.
Misc. variables name corrections
2019-06-21 19:53:29 +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 e9bc46db71 tools: use new component registration api for unit test app 2019-06-21 19:53:29 +08:00
Renz Christian Bagaporo 6771eead80 examples: use new component registration api 2019-06-21 19:53:29 +08:00
Renz Christian Bagaporo 9eccd7c082 components: use new component registration api 2019-06-21 19:53:29 +08:00
Renz Christian Bagaporo e8582e9aa4 esptool_py: use passed offset and image when template is given
esptool_py defines command `esptool_py_flash_project_args` that
generates arg file for esptool.py. Two of the arguments are the offset
and image, which are not being used when a template file is given.
This commit makes variables OFFSET and IMAGE available to the template
file, which will holds the value of the offset and image arguments to
`esptool_py_flash_project_args`.
2019-06-21 19:48:41 +08:00
Renz Christian Bagaporo c65038fd74 spiffs,make: change spiffsgen build API 2019-06-21 10:58:40 +08:00
Renz Christian Bagaporo e0a652f164 spiffs: add ability to specify dependencies when dirs themselves are generated 2019-06-21 10:48:34 +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 7a19894aec esptool_py: better display logs when generating binary
Since OUTPUT argument of custom command does not currently support
generator expressions, the project image is only generated as a side
effect. The primary generated file is a timestamp file. Unfortunately as a consequence
the output logs when the
binary is about to be generated is not as helpful anymore.

Set a custom comment that is more descriptive of what is happening,
and provide more feedback as to what has been generated.
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
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 8ee90ee2f1 ldgen: allow multiple mapping fragments to map same library 2019-06-12 10:48:54 +08:00
Renz Christian Bagaporo 87aa341e97 ldgen: mapping rules should be grouped by archive 2019-06-12 10:48:54 +08:00
Renz Christian Bagaporo 54ef60f26b component: revert some of the dependency corrections
!4452 and !4897 made some ill-advised corrections to dependency info;
revert those in this MR. Handling pre-built binaries as imported
libraries is retained, however.
2019-06-11 18:09:26 +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 6365658d3f cmake: revert using EXCLUDE_FROM_ALL when adding component subdirectories
Reverting (for now) the change in !4452 to use EXCLUDE_FROM_ALL.
Apparently this also affects custom targets with ALL option specified,
not causing them to be built with the project.

This is apparently a bug which has a merged fix:
https://gitlab.kitware.com/cmake/cmake/merge_requests/2816
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 70dfcb35d4 mbedtls: component CMakeLists.txt corrections
Since !4452 the common component requirements automatically get
privately linked to libraries built under ESP-IDF build system (this
includes targets from third-party libraries). This removes a variable
that was used for that purpose before !4452.

Since the internal target names were changed, the compile definition for
warning on using deprecated functions is not being passed. Since using
the internal name is unreliable, prefer passing this compile definition
from the test itself.
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
Renz Christian Bagaporo 3836aa9ae6 partition_table,app_update: use config partition table offset 2019-06-11 13:17:14 +08:00
Renz Christian Bagaporo 7f7a9272f0 examples: create example for both Python and CLI otatool interfaces 2019-06-11 13:17:14 +08:00
Renz Christian Bagaporo 5d41322412 examples: create example for both Python and CLI parttool interfaces 2019-06-11 13:17:14 +08:00
Renz Christian Bagaporo 1de627e68a app_update: implement Python API for otatool 2019-06-11 13:17:14 +08:00
Renz Christian Bagaporo 63bd57c1d7 partition_table: implement Python API for parttool
Closes https://github.com/espressif/esp-idf/issues/1494
2019-06-11 13:17:14 +08:00
Renz Christian Bagaporo af3a2f3aba esp_event: fix placement issue when building with make
The CMake build uses the linker fragment file to place functions in IRAM
on certain configurations. This commit does that for Make as well.
2019-06-10 19:38:55 +08:00
Renz Christian Bagaporo c308d7bed6 ci: additional Cmake tests for EXTRA_COMPONENT_DIRS
Tests from
https://gitlab.espressif.cn:6688/idf/esp-idf/merge_requests/4253
2019-06-04 13:37:19 +08:00
Renz Christian Bagaporo b3b6ce2eea docs: remove reference of using link groups 2019-05-28 13:01:43 +08:00
Renz Christian Bagaporo 2c12080049 components: correct dependency information for linking without link groups 2019-05-28 10:51:02 +08:00
Renz Christian Bagaporo 83ce35d638 cmake: do not use link groups 2019-05-28 10:51:02 +08:00
Renz Christian Bagaporo 25b539d4fc cmake: make project includes know gcc version as well 2019-05-23 18:39:31 +08:00
Renz Christian Bagaporo 74c6c926ea nghttp: move HAVE_CONFIG_H compile definition to component 2019-05-23 18:39:31 +08:00
Renz Christian Bagaporo f125a9aaf4 cmake: restore creation of kconfig_menus.json 2019-05-23 18:39:31 +08:00