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

72 lines
2.6 KiB
CMake

# https://cmake.org/cmake/help/latest/command/xos_add_compile_definitions.html
function(xos_add_compile_definitions)
list(APPEND XOS_INTERFACE_DEF )
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_]+)" 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()
list(APPEND XOS_INTERFACE_DEF
"${CONFIG_EXTN}=${CONFIG_VALUE}"
)
endif()
# 打印日志,显示被添加的宏定义
message(STATUS "Added compile definition: ${CONFIG_NAME}=${CONFIG_VALUE}")
endforeach()
endfunction()
# https://cmake.org/cmake/help/latest/command/xos_build_qm108h_uboot.html
function(xos_build_qm108h_uboot)
message(STATUS "Start build qm108h uboot")
set(UBOOT_TARGET "uboot")
add_custom_target(${UBOOT_TARGET}
COMMAND ${CMAKE_COMMAND} -E echo "this is UBOOT_TARGET"
COMMAND ${Python_EXECUTABLE} ${XOS_ROOT}/build/script/run_cmd.py build.sh -U -Slinux_128
WORKING_DIRECTORY ${XOS_ROOT}
)
endfunction()
# https://cmake.org/cmake/help/latest/command/xos_build_qm108h_kernel.html
function(xos_build_qm108h_kernel)
message(STATUS "Start build qm108h kernel")
set(LINUX_TARGET "kernel")
add_custom_target(${LINUX_TARGET}
COMMAND ${CMAKE_COMMAND} -E echo "this is LINUX_TARGET"
COMMAND ${Python_EXECUTABLE} ${XOS_ROOT}/build/script/run_cmd.py build.sh -K -Slinux_128
WORKING_DIRECTORY ${XOS_ROOT}
)
endfunction()