zephyr/share/sysbuild/images/CMakeLists.txt

38 lines
1.6 KiB
CMake

# Copyright (c) 2021-2023 Nordic Semiconductor
#
# SPDX-License-Identifier: Apache-2.0
# The primary application is the first image to be added to the build, so that
# it is available while processing the remaining images.
ExternalZephyrProject_Add(
APPLICATION ${DEFAULT_IMAGE}
SOURCE_DIR ${APP_DIR}
APP_TYPE MAIN
)
# This allows for MCUboot to be included.
sysbuild_add_subdirectory(bootloader)
# Include zephyr modules generated sysbuild CMake file.
foreach(SYSBUILD_CURRENT_MODULE_NAME ${SYSBUILD_MODULE_NAMES})
# Note the second, binary_dir parameter requires the added
# subdirectory to have its own, local cmake target(s). If not then
# this binary_dir is created but stays empty. Object files land in
# the main binary dir instead.
# https://cmake.org/pipermail/cmake/2019-June/069547.html
zephyr_string(SANITIZE TOUPPER MODULE_NAME_UPPER ${SYSBUILD_CURRENT_MODULE_NAME})
if(NOT ${SYSBUILD_${MODULE_NAME_UPPER}_CMAKE_DIR} STREQUAL "")
set(SYSBUILD_CURRENT_MODULE_DIR ${SYSBUILD_${MODULE_NAME_UPPER}_MODULE_DIR})
set(SYSBUILD_CURRENT_CMAKE_DIR ${SYSBUILD_${MODULE_NAME_UPPER}_CMAKE_DIR})
sysbuild_add_subdirectory(${SYSBUILD_CURRENT_CMAKE_DIR}
${CMAKE_BINARY_DIR}/modules/${SYSBUILD_CURRENT_MODULE_NAME})
endif()
endforeach()
# Done processing modules, clear SYSBUILD_CURRENT_MODULE_DIR and SYSBUILD_CURRENT_CMAKE_DIR.
set(SYSBUILD_CURRENT_MODULE_DIR)
set(SYSBUILD_CURRENT_CMAKE_DIR)
# This allows for board and SoC specific images to be included.
sysbuild_add_subdirectory(boards)
sysbuild_add_subdirectory(soc)