cmake: rework of host tools and generic toolchain handling
Follow-up: #41301 This commit is a rework and cleanup of the tools handling in Zephyr CMake build system. Instead of directly loading code a CMake modules for tool lookup, the host tools now follows the CMake `find_package()` pattern for finding programs / tools in module mode. This makes it more clear which modules are responsible for finding tools and which modules provides build integration / features. The following tools can now be found using `find_package()`: - Zephyr-sdk : find_package(Zephyr-sdk <version>) - Generic host tools: find_package(HostTools) This further allows us to decouple the `verify-toolchain` CMake script part required by `twister` into a tool lookup module and a dedicated CMake script which utilizes the lookup module. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit is contained in:
parent
2bace34be3
commit
8d2998d4f9
10 changed files with 263 additions and 223 deletions
|
@ -76,27 +76,12 @@ list(APPEND zephyr_cmake_modules shields)
|
|||
list(APPEND zephyr_cmake_modules arch)
|
||||
list(APPEND zephyr_cmake_modules configuration_files)
|
||||
|
||||
list(APPEND zephyr_cmake_modules verify-toolchain)
|
||||
list(APPEND zephyr_cmake_modules host-tools)
|
||||
|
||||
# Include board specific device-tree flags before parsing.
|
||||
set(pre_dt_board "\${BOARD_DIR}/pre_dt_board.cmake" OPTIONAL)
|
||||
list(APPEND zephyr_cmake_modules "\${pre_dt_board}")
|
||||
|
||||
# DTS should be close to kconfig because CONFIG_ variables from
|
||||
# kconfig and dts should be available at the same time.
|
||||
#
|
||||
# The DT system uses a C preprocessor for it's code generation needs.
|
||||
# This creates an awkward chicken-and-egg problem, because we don't
|
||||
# always know exactly which toolchain the user needs until we know
|
||||
# more about the target, e.g. after DT and Kconfig.
|
||||
#
|
||||
# To resolve this we find "some" C toolchain, configure it generically
|
||||
# with the minimal amount of configuration needed to have it
|
||||
# preprocess DT sources, and then, after we have finished processing
|
||||
# both DT and Kconfig we complete the target-specific configuration,
|
||||
# and possibly change the toolchain.
|
||||
list(APPEND zephyr_cmake_modules generic_toolchain)
|
||||
list(APPEND zephyr_cmake_modules dts)
|
||||
list(APPEND zephyr_cmake_modules kconfig)
|
||||
list(APPEND zephyr_cmake_modules soc)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue