diff --git a/Kconfig.zephyr b/Kconfig.zephyr index 0af22907526..3a4ed0e9dae 100644 --- a/Kconfig.zephyr +++ b/Kconfig.zephyr @@ -6,7 +6,7 @@ menu "Modules" -source "$(CMAKE_BINARY_DIR)/Kconfig.modules" +source "$(KCONFIG_BINARY_DIR)/Kconfig.modules" source "modules/Kconfig" endmenu diff --git a/cmake/app/boilerplate.cmake b/cmake/app/boilerplate.cmake index a72f325d157..d6e163ec669 100644 --- a/cmake/app/boilerplate.cmake +++ b/cmake/app/boilerplate.cmake @@ -492,6 +492,11 @@ include(${ZEPHYR_BASE}/cmake/host-tools.cmake) # Include board specific device-tree flags before parsing. include(${BOARD_DIR}/pre_dt_board.cmake OPTIONAL) +# Build directory for generated KConfig files, such as: +# - Zephyr modules Kconfig files +set(KCONFIG_BINARY_DIR ${CMAKE_BINARY_DIR}/Kconfig) +file(MAKE_DIRECTORY ${KCONFIG_BINARY_DIR}) + # DTS should be close to kconfig because CONFIG_ variables from # kconfig and dts should be available at the same time. # diff --git a/cmake/kconfig.cmake b/cmake/kconfig.cmake index 94f4bf2fd5e..a6bb9052b2b 100644 --- a/cmake/kconfig.cmake +++ b/cmake/kconfig.cmake @@ -43,7 +43,7 @@ set(ENV{ARCH} ${ARCH}) set(ENV{BOARD_DIR} ${BOARD_DIR}) set(ENV{SOC_DIR} ${SOC_DIR}) set(ENV{SHIELD_AS_LIST} "${SHIELD_AS_LIST}") -set(ENV{CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}) +set(ENV{KCONFIG_BINARY_DIR} ${KCONFIG_BINARY_DIR}) set(ENV{ARCH_DIR} ${ARCH_DIR}) set(ENV{TOOLCHAIN_KCONFIG_DIR} "${TOOLCHAIN_KCONFIG_DIR}") set(ENV{EDT_PICKLE} ${EDT_PICKLE}) @@ -87,7 +87,7 @@ foreach(kconfig_target BOARD_DIR=$ENV{BOARD_DIR} SOC_DIR=$ENV{SOC_DIR} SHIELD_AS_LIST=$ENV{SHIELD_AS_LIST} - CMAKE_BINARY_DIR=$ENV{CMAKE_BINARY_DIR} + KCONFIG_BINARY_DIR=$ENV{KCONFIG_BINARY_DIR} ZEPHYR_TOOLCHAIN_VARIANT=${ZEPHYR_TOOLCHAIN_VARIANT} TOOLCHAIN_KCONFIG_DIR=${TOOLCHAIN_KCONFIG_DIR} ARCH_DIR=$ENV{ARCH_DIR} diff --git a/cmake/zephyr_module.cmake b/cmake/zephyr_module.cmake index ef530fb2547..4767f0120f6 100644 --- a/cmake/zephyr_module.cmake +++ b/cmake/zephyr_module.cmake @@ -18,7 +18,7 @@ if(ZEPHYR_EXTRA_MODULES) set(ZEPHYR_EXTRA_MODULES_ARG "--extra-modules" ${ZEPHYR_EXTRA_MODULES}) endif() -set(KCONFIG_MODULES_FILE ${CMAKE_BINARY_DIR}/Kconfig.modules) +set(KCONFIG_MODULES_FILE ${KCONFIG_BINARY_DIR}/Kconfig.modules) if(WEST) set(WEST_ARG "--zephyr-base" ${ZEPHYR_BASE})