linuxOS_MC3302/sdk/X-AIOS-LT00-V1.0.4/build/cmake/definition.cmake
2026-01-30 16:53:24 +08:00

133 lines
4.1 KiB
CMake

message(STATUS "Add compile definitions from: ${CMAKE_SOURCE_DIR}/.config")
# 指定 .config 文件路径
set(CONFIG_FILE "${CMAKE_SOURCE_DIR}/.config")
# 打开 .config 文件并读取其中的内容
file(READ "${CONFIG_FILE}" CONFIG_CONTENTS)
# 使用正则表达式提取所有宏定义(包含小写字母的宏)
string(REGEX MATCHALL "CONFIG_[a-zA-Z0-9_]+[ ]*=[ ]*(\"[^\"]*\"|[a-zA-Z0-9_]+|y)" CONFIG_DEFS "${CONFIG_CONTENTS}")
# 遍历所有找到的宏定义并添加到编译选项
foreach(CONFIG_DEF ${CONFIG_DEFS})
# 提取宏名称和宏值
string(REGEX REPLACE "CONFIG_([a-zA-Z0-9_]+)[ ]*=[ ]*(\"[^\"]*\"|[a-zA-Z0-9_]+)" "\\1" CONFIG_NAME ${CONFIG_DEF})
string(REGEX REPLACE "CONFIG_[a-zA-Z0-9_]+[ ]*=[ ]*(\"[^\"]*\"|[a-zA-Z0-9_]+)" "\\1" CONFIG_VALUE ${CONFIG_DEF})
string(REGEX REPLACE "CONFIG_([a-zA-Z0-9_]+)[ ]*=[ ]*(\"[^\"]*\"|[a-zA-Z0-9_]+)" "CONFIG_\\1" CONFIG_EXTN ${CONFIG_DEF})
# 添加编译选项 -D 宏名=宏值
#add_compile_definitions("${CONFIG_NAME}=${CONFIG_VALUE}")
#add_compile_definitions("${CONFIG_EXTN}=${CONFIG_VALUE}")
#list(APPEND XOS_INTERFACE_DEF
# "${CONFIG_EXTN}=${CONFIG_VALUE}"
#)
if (${CONFIG_VALUE} STREQUAL "y")
list(APPEND XOS_INTERFACE_DEF
"${CONFIG_EXTN}=1"
)
else()
if (NOT "${CONFIG_EXTN}" STREQUAL "CONFIG_XOS_APP_MAIN_ENTRY")
list(APPEND XOS_INTERFACE_DEF
"${CONFIG_EXTN}=${CONFIG_VALUE}"
)
endif()
endif()
# 打印日志,显示被添加的宏定义
message(STATUS "Added compile definition: ${CONFIG_NAME}=${CONFIG_VALUE}")
endforeach()
# 添加BUILD_ID处理
if(DEFINED ENV{BUILD_ID})
list(APPEND XOS_INTERFACE_DEF
"CONFIG_BUILD_ID=\"$ENV{BUILD_ID}\""
)
message(STATUS "Using BUILD_ID from env: $ENV{BUILD_ID}")
else()
list(APPEND XOS_INTERFACE_DEF
"CONFIG_BUILD_ID=\"000\""
)
message(STATUS "BUILD_ID not found, using default: 000")
endif()
list(APPEND XOS_INTERFACE_DEF
"HAVE_CCONFIG_H"
"LV_CONF_INCLUDE_SIMPLE"
"_GNU_SOURCE"
)
list(APPEND XOS_INTERFACE_DEF
"__MMI_LANGUAGE_ENGLISH_US__"
"__MMI_LANGUAGE_CHINESE_CN__"
)
if (DEFINED CONFIG_CHIPSET_SIMULATOR OR "$ENV{XOS_BUILD_SIMULATOR}" STREQUAL "1")
list(APPEND XOS_INTERFACE_DEF "BUILD_SIMULATOR=1")
list(APPEND XOS_INTERFACE_DEF "XOS_BUILD_SIMULATOR=1")
if("$ENV{XOS_BUILD_SIMULATOR}" STREQUAL "1")
message(STATUS "ENV XOS_BUILD_SIMULATOR boot simulator")
endif()
# list(REMOVE_ITEM XOS_INTERFACE_DEF "CONFIG_XOS_APP_XIAOMING")
# list(REMOVE_ITEM XOS_INTERFACE_DEF "CONFIG_XOS_EXT_HIREDIS")
# list(REMOVE_ITEM XOS_INTERFACE_DEF "CONFIG_XOS_FWK_QUAAITALK")
# list(REMOVE_ITEM XOS_INTERFACE_DEF "CONFIG_XOS_FWK_QUAIOTMGR")
endif()
if (DEFINED CONFIG_XOS_FWK_APPMANAGER)
list(APPEND XOS_INTERFACE_DEF
"XOS_USE_APP_MANAGER"
)
endif()
if (DEFINED CONFIG_XOS_FWK_GUIENG_LVGL9)
list(APPEND XOS_INTERFACE_DEF
"CONFIG_LVGL_V9=1"
"CONFIG_LVGL_VERSION=lvgl-v9"
)
endif()
if ((DEFINED CONFIG_CHIPSET_QM10XV) AND (DEFINED CONFIG_OS_LINUX))
list(APPEND XOS_INTERFACE_DEF
"BUILD_FH=1"
)
endif()
if ((DEFINED CONFIG_CHIPSET_QM10XH) AND (DEFINED CONFIG_OS_LINUX))
list(APPEND XOS_INTERFACE_DEF
"BUILD_FH=1"
)
endif()
if (DEFINED CONFIG_CHIPSET_SIMULATOR OR "$ENV{XOS_BUILD_SIMULATOR}" STREQUAL "1")
list(REMOVE_ITEM XOS_INTERFACE_DEF "BUILD_RTT=1")
else()
if (DEFINED CONFIG_OS_RTT)
list(APPEND XOS_INTERFACE_DEF "BUILD_RTT=1")
if (DEFINED CONFIG_CHIPSET_QM10XD)
list(REMOVE_ITEM XOS_INTERFACE_DEF "HAVE_CCONFIG_H")
endif()
endif()
endif()
if (DEFINED CONFIG_XOS_PROJECT_TYPE AND NOT DEFINED CONFIG_XOS_APP_MAIN_ENTRY)
list(APPEND XOS_INTERFACE_DEF
"CONFIG_XOS_APP_MAIN_ENTRY=${CONFIG_XOS_PROJECT_TYPE}"
)
endif()
if (DEFINED CONFIG_XOS_PROJECT_TYPE AND DEFINED CONFIG_XOS_APP_MAIN_ENTRY)
list(APPEND XOS_INTERFACE_DEF
"CONFIG_XOS_APP_MAIN_ENTRY=${CONFIG_XOS_APP_MAIN_ENTRY}"
)
endif()
if (DEFINED CONFIG_PRODUCT_KIDCAMERA_NOR)
list(APPEND XOS_INTERFACE_DEF
"CONFIG_PRODUCT_KIDCAMERA=1"
)
endif()