Commit graph

28 commits

Author SHA1 Message Date
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
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 01a7db799f cmake: fix C identifier generation from embedded file 2020-06-16 17:05:46 +08:00
Renz Bagaporo bd8f616f82 cmake: fix getting component requirements 2020-04-08 05:42:15 +00:00
Renz Christian Bagaporo f64a3c2a66 cmake: utility to create a failing target 2020-03-02 07:18:22 +05:00
Angus Gratton e8881352c5 secure boot: Fix bug where verification key was not embedded in app 2019-10-29 12:46:09 +11: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 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 c6dc47b3e2 cmake: build system changes 2019-05-13 19:57:39 +08:00
Angus Gratton abdc9f50d8 cmake: Set COMPONENT_PATH during early expansion of dependencies
Works around bug where components/soc/CMakeLists.txt was testing "EXISTS
${COMPONENT_PATH}/${SOC_NAME}" and this test could pass during early
expansion if COMPONENT_PATH was empty and a directory /esp32 exists
on Windows.

Closes https://github.com/espressif/esp-idf/issues/3195
2019-03-20 10:45:45 +11:00
Per Malmberg 25333b59c2 Add ESP_PLATFORM to build environment.
Merges https://github.com/espressif/esp-idf/pull/2601
2018-12-21 18:59:28 +11:00
Renz Christian Bagaporo 37d30c7a6e cmake: separate app from idf lib project
mbedtls: import mbedtls using unmodified cmake file
2018-11-27 13:59:24 +08:00
Renz Bagaporo 63411fc556 tools: implement linker script generation 2018-11-16 12:42:02 +08:00
Ivan Grokhotkov ccfa134533 build system: support for multiple targets 2018-11-11 21:46:02 +08:00
Renz Bagaporo cc774111bf cmake: Add support for test build 2018-10-20 12:07:24 +08:00
Renz Christian Bagaporo 946f55db85 cmake: add ulp components build support 2018-09-13 14:54:59 +08:00
Renz Christian Bagaporo d9939cedd9 cmake: make main a component again 2018-09-11 09:44:12 +08:00
Angus Gratton c921f14128 cmake: Generate list of components with dependent items first, use deterministic ordering
Guarantees that a component's project_include.cmake will be called after its dependent components'
project_include.cmake. Because of cycles in the dependency graph, this is less useful than you'd
think but it gives a strong guarantee for any component which is not part of a cycle.

Also applies deterministic ordering (ordering is initialised as COMPONENT_REQUIRES_COMMON then all
COMPONENTS in alphabetical order, but then the sorting by dependencies is applied.)
2018-08-31 12:29:13 +08:00
Angus Gratton cb158f1194 cmake: Account for missing partition CSV file at cmake runtime
Avoid either breaking menuconfig (if cmake fails), or producing bad build output (if cmake succeeds
but no flashing offsets, etc. were generated.)
2018-08-29 20:22:55 +08:00
Renz Bagaporo 071aaea66b Place embedded data on flash 2018-08-29 20:22:55 +08:00
Angus Gratton 48bd67524d cmake: Only rewrite componend_depends.cmake if it changes 2018-08-13 15:37:03 +10:00
Angus Gratton 70288f864e cmake: Expand components relative to PROJECT_PATH correctly 2018-08-13 15:37:03 +10:00
Angus Gratton 381be65472 cmake: Build all examples in CI
Includes some fixes for compile errors/warnings in examples.
2018-04-30 10:18:33 +10:00
Angus Gratton 1cb5712463 cmake: Add component dependency support
Components should set the COMPONENT_REQUIRES & COMPONENT_PRIVATE_REQUIRES variables to define their
requirements.
2018-04-30 09:59:20 +10:00
Angus Gratton 2816cf1d67 cmake: Change data_file_to_c to data_file_embed_asm for objcopy compatibility
Now generates _binary_filename_start / _binary_filename_end as well as more useful naming.
2018-04-30 09:59:20 +10:00
Angus Gratton 88df8fd293 cmake: Use cmake_lint project, tidy up all CMake source files 2018-04-30 09:59:20 +10:00
Angus Gratton ce6748873d cmake: Add embedding files in components support
Add subscribe_publish AWS example and fixes to allow it to build.
2018-04-30 09:59:20 +10:00