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