@@ -39,7 +39,7 @@ function(load_cache)
3939endfunction ()
4040
4141# Usage:
42- # sysbuild_get(<variable> IMAGE <image> [VAR <image-variable>])
42+ # sysbuild_get(<variable> IMAGE <image> [VAR <image-variable>] <KCONFIG|CACHE> )
4343#
4444# This function will return the variable found in the CMakeCache.txt file
4545# identified by image.
@@ -50,20 +50,26 @@ endfunction()
5050# The result will be returned in `<variable>`.
5151#
5252# Example use:
53- # sysbuild_get(PROJECT_NAME IMAGE my_sample)
53+ # sysbuild_get(PROJECT_NAME IMAGE my_sample CACHE )
5454# will lookup PROJECT_NAME from the CMakeCache identified by `my_sample` and
5555# and return the value in the local variable `PROJECT_NAME`.
5656#
57- # sysbuild_get(my_sample_PROJECT_NAME IMAGE my_sample VAR PROJECT_NAME)
57+ # sysbuild_get(my_sample_PROJECT_NAME IMAGE my_sample VAR PROJECT_NAME CACHE )
5858# will lookup PROJECT_NAME from the CMakeCache identified by `my_sample` and
5959# and return the value in the local variable `my_sample_PROJECT_NAME`.
6060#
61+ # sysbuild_get(my_sample_CONFIG_FOO IMAGE my_sample VAR CONFIG_FOO KCONFIG)
62+ # will lookup CONFIG_FOO from the KConfig identified by `my_sample` and
63+ # and return the value in the local variable `my_sample_CONFIG_FOO`.
64+ #
6165# <variable>: variable used for returning CMake cache value. Also used as lookup
6266# variable if `VAR` is not provided.
6367# IMAGE: image name identifying the cache to use for variable lookup.
6468# VAR: name of the CMake cache variable name to lookup.
69+ # KCONFIG: Flag indicating that a Kconfig setting should be fetched.
70+ # CACHE: Flag indicating that a CMake cache variable should be fetched.
6571function (sysbuild_get variable )
66- cmake_parse_arguments (GET_VAR "" "IMAGE;VAR" "" ${ARGN} )
72+ cmake_parse_arguments (GET_VAR "CACHE;KCONFIG " "IMAGE;VAR" "" ${ARGN} )
6773
6874 if (NOT DEFINED GET_VAR_IMAGE)
6975 message (FATAL_ERROR "sysbuild_get(...) requires IMAGE." )
@@ -81,7 +87,16 @@ function(sysbuild_get variable)
8187 set (GET_VAR_VAR ${variable} )
8288 endif ()
8389
84- get_property (${GET_VAR_IMAGE} _${GET_VAR_VAR} TARGET ${GET_VAR_IMAGE} _cache PROPERTY ${GET_VAR_VAR} )
90+ if (GET_VAR_KCONFIG)
91+ set (variable_target ${GET_VAR_IMAGE} )
92+ elseif (GET_VAR_CACHE)
93+ set (variable_target ${GET_VAR_IMAGE} _cache)
94+ else ()
95+ message (WARNING "<CACHE> or <KCONFIG> not specified, defaulting to CACHE" )
96+ set (variable_target ${GET_VAR_IMAGE} _cache)
97+ endif ()
98+
99+ get_property (${GET_VAR_IMAGE} _${GET_VAR_VAR} TARGET ${variable_target} PROPERTY ${GET_VAR_VAR} )
85100 if (DEFINED ${GET_VAR_IMAGE} _${GET_VAR_VAR} )
86101 set (${variable} ${${GET_VAR_IMAGE} _${GET_VAR_VAR} } PARENT_SCOPE)
87102 endif ()
@@ -260,4 +275,5 @@ function(ExternalZephyrProject_Add)
260275 BUILD_ALWAYS True
261276 USES_TERMINAL_BUILD True
262277 )
278+ import_kconfig(CONFIG_ ${CMAKE_BINARY_DIR} /${ZBUILD_APPLICATION} /zephyr/.config TARGET ${ZBUILD_APPLICATION} )
263279endfunction ()
0 commit comments