# # Copyright (c) 2026 Jacob McDonnell # # SPDX-License-Identifier: MIT # if(__CMAKE_KCONFIG_CMAKE__) return() endif() set(__CMAKE_KCONFIG_CMAKE__ true) set(TOOL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tools) set(KCONFIG_DIR ${TOOL_DIR}/Kconfiglib) set(LOCAL_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/.config) if(DEFCONFIG AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} AND NOT EXISTS ${CMAKE_BINARY_DIR}/config.cmake) execute_process( COMMAND ${KCONFIG_DIR}/defconfig.py ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) execute_process( COMMAND ${KCONFIG_DIR}/genconfig.py --header-path ${CMAKE_BINARY_DIR}/generated.h --config-out ${CMAKE_BINARY_DIR}/config.make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) execute_process( COMMAND ${TOOL_DIR}/make-cmake-config ${CMAKE_BINARY_DIR}/config.make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_BINARY_DIR}/config.cmake ) elseif(DEFCONFIG AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} AND EXISTS ${CMAKE_BINARY_DIR}/config.cmake) message("Ignoring DEFCONFIG") elseif(DEFCONFIG AND NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG}) message(FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/configs/${DEFCONFIG} does not exist.") else() message(FATAL_ERROR "DEFCONFIG not set.") endif() include(${CMAKE_BINARY_DIR}/config.cmake) add_custom_target(menuconfig COMMAND ${KCONFIG_DIR}/menuconfig.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_custom_command(TARGET menuconfig POST_BUILD COMMAND ${KCONFIG_DIR}/genconfig.py --header-path ${CMAKE_BINARY_DIR}/generated.h --config-out ${CMAKE_BINARY_DIR}/config.make COMMAND ${TOOL_DIR}/make-cmake-config ${CMAKE_BINARY_DIR}/config.make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_custom_target(savedefconfig COMMAND ${KCONFIG_DIR}/savedefconfig.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) if(EXISTS ${CMAKE_BINARY_DIR}/config.cmake) include(${CMAKE_BINARY_DIR}/config.cmake) endif()