Skip to content

Commit

Permalink
build/cmake: fix empty BASE_DEFCONFIG string
Browse files Browse the repository at this point in the history
Currently CMake system has empty string for BASE_DEFCONFIG option.
This patch fills value for it.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
  • Loading branch information
yf13 committed Feb 27, 2024
1 parent 5ddb1fc commit 3e79e13
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions cmake/nuttx_mkconfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ if(COMPARE_RESULT EQUAL 0 AND EXISTS ${CONFIG_H})
return()
endif()

set(DEFCONF_VAL "${NUTTX_BOARD}/${NUTTX_CONFIG}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_BINARY_DIR}/.config
${CMAKE_BINARY_DIR}/.config.orig
RESULT_VARIABLE COMPARE_RESULT
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
if(COMPARE_RESULT)
set(DEFCONF_VAL "${DEFCONF_VAL}-dirty")
endif()

set(DEQUOTELIST
# NuttX
"CONFIG_DEBUG_OPTLEVEL" # Custom debug level
Expand Down Expand Up @@ -81,11 +91,16 @@ file(APPEND ${CONFIG_H} "#define CONFIG_y 1\n")
file(APPEND ${CONFIG_H} "#define CONFIG_m 2\n\n")
file(APPEND ${CONFIG_H}
"/* General Definitions ***********************************/\n")
file(APPEND ${CONFIG_H} "#define CONFIG_BASE_DEFCONFIG \"${DEFCONF_VAL}\"\n")

file(STRINGS ${CMAKE_BINARY_DIR}/.config ConfigContents)
foreach(NameAndValue ${ConfigContents})
string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue})
string(REGEX MATCH "^CONFIG[^=]+" NAME ${NameAndValue})
# skip BASE_DEFCONFIG here as it is handled above
if("${NAME}" STREQUAL "CONFIG_BASE_DEFCONFIG")
continue()
endif()
string(REPLACE "${NAME}=" "" VALUE ${NameAndValue})
if(NAME AND NOT "${VALUE}" STREQUAL "")
if(${VALUE} STREQUAL "y")
Expand Down

0 comments on commit 3e79e13

Please sign in to comment.