1 2function(IMPORT_BOARD_CONFIG PREPEND_CONFIG VALID_CONFIG_INPUT CONFIG_OUTPUT_FILE) 3 # Parse entries prefixed with 'PREPEND_CONFIG' in ${VALID_CONFIG_INPUT} 4 file(STRINGS ${VALID_CONFIG_INPUT} LOS_CONFIG_LIST REGEX "^${PREPEND_CONFIG}" ENCODING "UTF-8") 5 6 foreach (LOSCFG ${LOS_CONFIG_LIST}) 7 # LOSCFG maybe: LOSCFG_CC_STACKPROTECTOR_STRONG=y 8 9 # The first: variable name 10 string(REGEX MATCH "[^=]+" LOSCFG_VAR_NAME "${LOSCFG}") 11 12 # The second: variable value 13 string(REGEX MATCH "=(.+$)" LOSCFG_VAR_VAL "${LOSCFG}") 14 set(LOSCFG_VAR_VAL ${CMAKE_MATCH_1}) 15 16 # write to menuconfig.h 17 if(CONFIG_OUTPUT_FILE) 18 if(LOSCFG_VAR_VAL MATCHES "^y$") 19 file(APPEND ${CONFIG_OUTPUT_FILE} "#define ${LOSCFG_VAR_NAME} 1\n") 20 else() 21 file(APPEND ${CONFIG_OUTPUT_FILE} "#define ${LOSCFG_VAR_NAME} ${LOSCFG_VAR_VAL}\n") 22 endif() 23 endif() 24 25 # remove quotes 26 if("${LOSCFG_VAR_VAL}" MATCHES "^\"(.*)\"$") 27 set(LOSCFG_VAR_VAL ${CMAKE_MATCH_1}) 28 endif() 29 30 # config globally 31 set(${LOSCFG_VAR_NAME} ${LOSCFG_VAR_VAL} PARENT_SCOPE) 32 MESSAGE("${LOSCFG_VAR_NAME} is set to ${LOSCFG_VAR_VAL}") 33 endforeach() 34endfunction() 35