Browse Source
This commit refactors sysbuild entry code by creating a CMake sysbuild module for image processing and place sysbuild entry code in a <app>/sysbuild/CMakeLists.txt file. A template/CMakeLists.txt file will be use as template for applications which doesn't provide their own entry file. An application may create a sysbuild/CMakeLists.txt file. The sysbuild/CMakeLists.txt file is similar in nature to the toplevel CMakeLists.txt file but intended to used by sysbuild. This allows application developers to adjust how an application is built with sysbuild. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>pull/73354/head
7 changed files with 80 additions and 34 deletions
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if(Sysbuild_FIND_COMPONENTS) |
||||
set(Zephyr_FIND_COMPONENTS ${Sysbuild_FIND_COMPONENTS}) |
||||
else() |
||||
set(Zephyr_FIND_COMPONENTS sysbuild_default) |
||||
endif() |
||||
include(${CMAKE_CURRENT_LIST_DIR}/../../zephyr-package/cmake/ZephyrConfig.cmake) |
||||
set(Sysbuild_FOUND True) |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../../zephyr-package/cmake/ZephyrConfigVersion.cmake) |
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../sysbuild/cmake/modules) |
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} PARENT_SCOPE) |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
# Copyright (c) 2024 Nordic Semiconductor |
||||
# |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# |
||||
# Sysbuild default list of CMake modules to include in a regular sysbuild session. |
||||
# |
||||
include(extensions) |
||||
include(sysbuild_extensions) |
||||
include(python) |
||||
include(west) |
||||
include(root) |
||||
include(zephyr_module) |
||||
include(boards) |
||||
include(shields) |
||||
include(hwm_v2) |
||||
include(sysbuild_kconfig) |
||||
include(native_simulator_sb_extensions) |
||||
include(sysbuild_images) |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
# Copyright (c) 2024 Nordic Semiconductor |
||||
# |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# This module is responsible for including images into sysbuild and to call |
||||
# pre and post hooks. |
||||
|
||||
get_filename_component(APP_DIR ${APP_DIR} ABSOLUTE) |
||||
get_filename_component(app_name ${APP_DIR} NAME) |
||||
set(DEFAULT_IMAGE "${app_name}") |
||||
|
||||
# This is where all Zephyr applications are added to the multi-image build. |
||||
sysbuild_add_subdirectory(${sysbuild_toplevel_SOURCE_DIR}/images sysbuild/images) |
||||
|
||||
get_property(IMAGES GLOBAL PROPERTY sysbuild_images) |
||||
sysbuild_module_call(PRE_CMAKE MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES}) |
||||
sysbuild_images_order(IMAGES_CONFIGURATION_ORDER CONFIGURE IMAGES ${IMAGES}) |
||||
foreach(image ${IMAGES_CONFIGURATION_ORDER}) |
||||
sysbuild_module_call(PRE_IMAGE_CMAKE MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES} IMAGE ${image}) |
||||
ExternalZephyrProject_Cmake(APPLICATION ${image}) |
||||
sysbuild_module_call(POST_IMAGE_CMAKE MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES} IMAGE ${image}) |
||||
endforeach() |
||||
sysbuild_module_call(POST_CMAKE MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES}) |
||||
|
||||
sysbuild_module_call(PRE_DOMAINS MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES}) |
||||
include(${sysbuild_toplevel_SOURCE_DIR}/cmake/domains.cmake) |
||||
sysbuild_module_call(POST_DOMAINS MODULES ${SYSBUILD_MODULE_NAMES} IMAGES ${IMAGES}) |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
# Copyright (c) 2024 Nordic Semiconductor |
||||
# |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# Generic sysbuild CMakeLists.txt file used as sysbuild entry point for multi-image builds. |
||||
# |
||||
# Applications which requires custom handling when built using sysbuild may copy this |
||||
# file to the folder `<app-dir>/sysbuild` and use as a template and extend as needed. |
||||
|
||||
find_package(Sysbuild REQUIRED HINTS $ENV{ZEPHYR_BASE}) |
||||
|
||||
project(sysbuild LANGUAGES) |
Loading…
Reference in new issue