Commit graph

284 commits

Author SHA1 Message Date
Angus Gratton 2b557523ba Merge branch 'bugfix/generic_cmake_gc_sections' into 'master'
generic cmake: Always use gc-sections when linking IDF libraries

See merge request idf/esp-idf!3873
2018-12-04 11:01:51 +08:00
Angus Gratton 89826e8f47 generic cmake: Always use gc-sections when linking IDF libraries
Required for some IDF binary libraries

Reported on forum: https://esp32.com/viewtopic.php?f=13&t=7535&p=34863#p34852

TW27733
2018-12-04 10:47:00 +11:00
Konstantin Kondrashov 3b9cb25fe1 esp32: Add firmware version to app
Added a new structure esp_app_desc_t. It has info about firmware:
version, secure_version, project_name, time/date build and IDF version.
Added the ability to add a custom structure with a description of the firmware.

The esp_app_desc_t is located in fixed place in start of ROM secotor. It is located after structures esp_image_header_t and esp_image_segment_header_t.

app_version is filed from PROJECT_VER variable (if set in custom make file) or PROJECT_PATH/version.txt or git repo (git describe).

Add API to get app_desc from partition.
2018-12-03 16:52:04 +08:00
Renz Christian Bagaporo a7a1c32a8e cmake, make: fix long cmd line args for ldgen 2018-12-03 12:26:38 +08:00
Angus Gratton f845af840f Merge branch 'bugfix/build_fail_on_idf_as_lib' into 'master'
cmake: fix error on building idf as lib when env IDF_PATH is not set

See merge request idf/esp-idf!3832
2018-11-30 10:59:18 +08:00
Renz Christian Bagaporo ba6058ba58 cmake: fix error on building idf as lib when env IDF_PATH is not set 2018-11-29 15:40:16 +08:00
Renz Christian Bagaporo da1f3ea12a kconfig: pass env variable to menuconfig invocation 2018-11-29 13:22:10 +08:00
Renz Christian Bagaporo f6375952bb kconfig: specify full path of built mconf 2018-11-29 13:16:13 +08:00
Renz Christian Bagaporo 4c83f456ab cmake: generate sections info for all static libs as in make 2018-11-28 14:24:21 +08: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
Anton Maklakov 8e1c91ac7d cmake: fix the creation dummy main to avoid rebuilding 2018-11-14 22:39:54 +08:00
Angus Gratton beada90b06 Merge branch 'bugfix/cmake_utf_decode' into 'master'
tools: Fix Unicode decode error & indentation error

See merge request idf/esp-idf!3669
2018-11-13 09:54:28 +08:00
Ivan Grokhotkov 7efb3926c5 Merge branch 'feature/build_system_multi_target' into 'master'
build system: support for multiple targets (CMake only)

See merge request idf/esp-idf!3499
2018-11-12 15:30:36 +08:00
Ivan Grokhotkov ccfa134533 build system: support for multiple targets 2018-11-11 21:46:02 +08:00
Roland Dobai f4cfca4353 tools: Fix UTF decode error 2018-11-08 13:02:03 +01:00
Anurag Kar 1f6622b2d1 CMake : Secure Boot support added 2018-11-06 17:09:55 +05:30
Renz Bagaporo cc774111bf cmake: Add support for test build 2018-10-20 12:07:24 +08:00
Angus Gratton dac6fd3434 cmake: Fix Windows issue running menuconfig in Command Prompt if winpty on Path
Previous version assumed having winpty on the Path meant that it would be needed,
but some tools (like Atlassian Sourcetree) permanently add winpty to the path.

Symptom is arrow keys not working in menuconfig dialog.
2018-10-18 09:56:16 +11:00
Ivan Grokhotkov 135eef767f Merge branch 'bugfix/idf_ver_out_of_tree' into 'master'
cmake: pass repository path to git when doing git describe

See merge request idf/esp-idf!3328
2018-09-27 11:21:25 +08:00
Anton Maklakov 90d4a1d1e9 cmake: Add a compatible old GCC flag, fix the cmake example building 2018-09-20 18:53:15 +08:00
Ivan Grokhotkov 59d590ff48 cmake: pass repository path to git when doing git describe
Fixes getting IDF version in out-of-tree builds
2018-09-20 16:18:25 +08:00
Mahavir Jain 4ec9aa9a00 cmake: prefer version.txt for IDF_VER if available 2018-09-14 17:25:17 +05:30
Ivan Grokhotkov d56a400709 Merge branch 'bugfix/cmake_create_dummy_main_windows' into 'master'
cmake: use built-in file function to create dummy main

See merge request idf/esp-idf!3253
2018-09-14 15:18:36 +08:00
Renz Christian Bagaporo 946f55db85 cmake: add ulp components build support 2018-09-13 14:54:59 +08:00
Ivan Grokhotkov d928465151 cmake: use built-in file function to create dummy main 2018-09-12 20:21:38 +08:00
Ivan Grokhotkov 8a38a2332a cmake: don't add main component Kconfig twice 2018-09-12 19:37:25 +08:00
Renz Christian Bagaporo d9939cedd9 cmake: make main a component again 2018-09-11 09:44:12 +08:00
Angus Gratton 6fa52ca8fe cmake: Call check_python_dependencies.py from idf.py & cmake 2018-09-03 18:37:53 +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 ff2404a272 Merge branch 'master' into feature/cmake 2018-08-16 17:14:17 +10: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 bf10447b82 cmake: Fix issues when IDF_PATH is not set in environment
Support cases where IDF_PATH may be passed in on the cmake command line,
or inferred from a (hardcoded absolute or relative) path to project.cmake
2018-06-18 14:48:03 +10:00
Angus Gratton be829afe6e Merge branch 'feature/cmake_confserver' into 'feature/cmake'
cmake: Add JSON configuration server for external config tool integration

See merge request idf/esp-idf!2410
2018-06-08 07:32:09 +08:00
Angus Gratton 6065d2fd08 kconfig: Add confserver.py to expose sdkconfig to clients 2018-06-07 14:23:08 +10:00
Angus Gratton 46b723e5ed cmake: Fix COMPONENT_SRCEXCLUDE functionality 2018-06-06 16:27:44 +10:00
Angus Gratton 8bb4c694ce cmake: Add COMPONENT_SRCEXCLUDE option 2018-05-31 14:46:39 +10:00
Angus Gratton 6b9784cc45 Merge branch 'master' into feature/cmake_update 2018-05-31 14:46:23 +10:00
Angus Gratton f6cd55d2ac config: Rename mconf to mconf-idf & conf to conf-idf
These versions of conf/mconf are forked from the upstream, and the CMake system allows mconf-idf to
be installed externally on the path. So the best option is to rename.

Includes changes to Windows installer for v1.1
2018-05-29 16:34:45 +10:00
Angus Gratton 61aff5162c mconf: Don't print a recommendation to use 'make' if CMake build system is in use
Also add some cmake dependencies to rebuild mconf if its source files change.
2018-05-29 16:34:45 +10:00
Angus Gratton a1fac97f1a cmake: Fix set_default using value from environment
Fixes issue with idf.py passing through Python interpreter, as reported in
https://github.com/espressif/esp-idf/issues/1924
2018-05-29 16:34:45 +10:00
Angus Gratton cc104eb05b cmake: Add sdkconfig.h directory to include paths list not just compiler args
Also move into 'build/config/' subdir, remove creation of empty include/config dir.
2018-05-29 16:34:45 +10:00
Angus Gratton 2f4079ebb2 cmake: Hide serial port settings in menuconfig when using cmake 2018-05-29 16:34:45 +10:00
Angus Gratton c7307de63e cmake: Automatically pull in winpty for menuconfig, monitor if needed 2018-05-01 17:27:39 +10:00
Angus Gratton c42b791aaa cmake: Use prebuilt mconf on Windows
Closes https://github.com/espressif/esp-idf/issues/1905
2018-05-01 17:27:39 +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 858b95a924 cmake: Add build system tests 2018-04-30 09:59:20 +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 56902f0054 cmake: Write configuration & component metadata to project_description.json 2018-04-30 09:59:20 +10:00
Angus Gratton f1d3bfc0c7 cmake: Add new flasher_args.json file for IDE parsing, document metadata files better 2018-04-30 09:59:20 +10:00
Angus Gratton b44c8b125f cmake: Style cleanup, add cmake linter to gitlab CI 2018-04-30 09:59:20 +10:00
Angus Gratton 2ea359ad0c cmake: Cleanups to work with Windows 2018-04-30 09:59:20 +10:00
Angus Gratton 6bdc49b6e4 cmake: set CCACHE_BASEDIR & CCACHE_NOHASHDIR when using ccache
Dramatically improves build performance when building multiple
projects in different directories.
2018-04-30 09:59:20 +10:00
Angus Gratton 9d88d13f77 cmake: convert_to_cmake.py script for converting IDF GNU Make projects 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 12be399762 cmake: Add link-time dependencies for linker script files
Requires some hackery around limitations in CMake's LINK_DEPENDS
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 15d5e88618 cmake: Automatically include ccache if it's on the path 2018-04-30 09:59:20 +10:00
Angus Gratton 9f8cdd3572 cmake: Add "Preview release" getting start guide & build system documentation 2018-04-30 09:59:20 +10:00
Angus Gratton 95e17d6d92 cmake: Allow GetGitRevisionDescription to take arbitrary directory paths 2018-04-30 09:59:20 +10:00
Angus Gratton abef220b13 cmake: Allow selecting toolchain file based on config
Refactor IDF "project" functionality under a wrapping of the default
"project" command, so we can tweak it a bit...

Will need more testing in other environments.
2018-04-30 09:59:20 +10:00
Angus Gratton 04a944598f cmake: Export compile_commands.json as part of build 2018-04-30 09:59:20 +10:00
Angus Gratton efb5928934 idf.py build & flash tool
Generate flasher args files & .json project info file as part of cmake build
2018-04-30 09:59:20 +10:00
Angus Gratton 7eaf2f4bdb kconfig: Allow out of tree building, build under cmake build directory 2018-04-30 09:59:20 +10:00
Angus Gratton cb99531d15 cmake: Generate PHY init data partition as part of the build 2018-04-30 09:59:20 +10:00
Angus Gratton 0bdc12256e cmake: Add "size" target, update idf_size.py for different linker behaviour 2018-04-30 09:59:20 +10:00
Angus Gratton 1f8e07fd8f cmake: Add sdkconfig.defaults support 2018-04-30 09:59:20 +10:00
Angus Gratton be962a9444 cmake: Re-run cmake if submodule commits change or a submodule is deinit-ed 2018-04-30 09:59:20 +10:00
Angus Gratton 4f1a856dbf cmake: Remove defaults for COMPONENT_SRCDIRS, COMPONENT_SRCS, COMPONENT_ADD_INCLUDEDIRS
* Philosophical: "explicit is better than implicit".
* Practical: Allows useful errors if invalid directories given in components as the defaults aren't
  always used. Also trims the -I path from a number of components that have no actual include
  directory.
* Simplifies knowing which components will be header-only and which won't
2018-04-30 09:59:20 +10:00
Angus Gratton 3fac2b2ddc cmake: Refactor bootloader_subproject into the bootloader component itself 2018-04-30 09:59:20 +10:00
Angus Gratton 674d398c93 cmake: Add partition table, and .bin file targets 2018-04-30 09:59:20 +10:00
Angus Gratton 3ae4822115 cmake: Add partition table generation 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
Angus Gratton 134f2238bd cmake: Refactor main cmake project logic 2018-04-30 09:59:20 +10:00
Angus Gratton 7f29593a7d cmake: Bootloader subproject & "clean" cleanup 2018-04-30 09:59:20 +10:00
Angus Gratton 067a19ad88 cmake: Move global IDF-specific compiler/linker options out of the toolchain file
Should restore compatibility with cmake pre-v3.7
2018-04-30 09:59:20 +10:00
Angus Gratton f04525095f cmake: Move third-party cmake modules to their own directory 2018-04-30 09:59:20 +10:00
Angus Gratton 68e75dd0df cmake: Detect missing or out of date submodules during cmake pass 2018-04-30 09:59:20 +10:00
Angus Gratton 35f521afb6 cmake: Add toolchain version check 2018-04-30 09:59:20 +10:00
Angus Gratton 99a2359c5c confgen: Create config file if missing 2018-04-30 09:59:20 +10:00
Angus Gratton c671a0c3eb build system: Initial cmake support, work in progress 2018-04-30 09:59:20 +10:00