@@ -39,7 +39,7 @@ function(load_cache)
39
39
endfunction ()
40
40
41
41
# Usage:
42
- # sysbuild_get(<variable> IMAGE <image> [VAR <image-variable>])
42
+ # sysbuild_get(<variable> IMAGE <image> [VAR <image-variable>] <KCONFIG|CACHE> )
43
43
#
44
44
# This function will return the variable found in the CMakeCache.txt file
45
45
# identified by image.
@@ -50,20 +50,26 @@ endfunction()
50
50
# The result will be returned in `<variable>`.
51
51
#
52
52
# Example use:
53
- # sysbuild_get(PROJECT_NAME IMAGE my_sample)
53
+ # sysbuild_get(PROJECT_NAME IMAGE my_sample CACHE )
54
54
# will lookup PROJECT_NAME from the CMakeCache identified by `my_sample` and
55
55
# and return the value in the local variable `PROJECT_NAME`.
56
56
#
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 )
58
58
# will lookup PROJECT_NAME from the CMakeCache identified by `my_sample` and
59
59
# and return the value in the local variable `my_sample_PROJECT_NAME`.
60
60
#
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
+ #
61
65
# <variable>: variable used for returning CMake cache value. Also used as lookup
62
66
# variable if `VAR` is not provided.
63
67
# IMAGE: image name identifying the cache to use for variable lookup.
64
68
# 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.
65
71
function (sysbuild_get variable )
66
- cmake_parse_arguments (GET_VAR "" "IMAGE;VAR" "" ${ARGN} )
72
+ cmake_parse_arguments (GET_VAR "CACHE;KCONFIG " "IMAGE;VAR" "" ${ARGN} )
67
73
68
74
if (NOT DEFINED GET_VAR_IMAGE)
69
75
message (FATAL_ERROR "sysbuild_get(...) requires IMAGE." )
@@ -81,7 +87,16 @@ function(sysbuild_get variable)
81
87
set (GET_VAR_VAR ${variable} )
82
88
endif ()
83
89
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} )
85
100
if (DEFINED ${GET_VAR_IMAGE} _${GET_VAR_VAR} )
86
101
set (${variable} ${${GET_VAR_IMAGE} _${GET_VAR_VAR} } PARENT_SCOPE)
87
102
endif ()
@@ -260,4 +275,5 @@ function(ExternalZephyrProject_Add)
260
275
BUILD_ALWAYS True
261
276
USES_TERMINAL_BUILD True
262
277
)
278
+ import_kconfig(CONFIG_ ${CMAKE_BINARY_DIR} /${ZBUILD_APPLICATION} /zephyr/.config TARGET ${ZBUILD_APPLICATION} )
263
279
endfunction ()
0 commit comments