72 lines
2.6 KiB
CMake
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()
|