80 lines
2.7 KiB
CMake
Executable File
80 lines
2.7 KiB
CMake
Executable File
armino_build_get_property(armino_soc ARMINO_SOC)
|
|
set(incs )
|
|
armino_component_register(INCLUDE_DIRS "${incs}")
|
|
|
|
armino_build_get_property(toolchain_dir TOOLCHAIN_DIR)
|
|
set(gcc_compiler ${toolchain_dir}/riscv32-elf-gcc)
|
|
set(toolchain_version_file ${CMAKE_CURRENT_SOURCE_DIR}/${armino_soc}/hash/toolchain_version.txt)
|
|
set(lib_hash $ENV{LIB_HASH})
|
|
set(app_version $ENV{APP_VERSION})
|
|
set(cmd_target $ENV{CMD_TARGET})
|
|
if("${lib_hash}" STREQUAL "NULL")
|
|
execute_process(COMMAND
|
|
"${gcc_compiler}" --version
|
|
OUTPUT_VARIABLE sdk_toolchain_version
|
|
RESULT_VARIABLE result)
|
|
file(WRITE ${toolchain_version_file} "${sdk_toolchain_version}")
|
|
else()
|
|
execute_process(COMMAND
|
|
cat ${CMAKE_CURRENT_SOURCE_DIR}/${armino_soc}/hash/toolchain_version.txt
|
|
OUTPUT_VARIABLE sdk_toolchain_version
|
|
RESULT_VARIABLE result)
|
|
execute_process(COMMAND
|
|
cat ${CMAKE_CURRENT_SOURCE_DIR}/${armino_soc}/hash/libs_hash.txt
|
|
OUTPUT_VARIABLE sdk_lib_hash
|
|
RESULT_VARIABLE result)
|
|
execute_process(COMMAND
|
|
"${gcc_compiler}" --version
|
|
OUTPUT_VARIABLE toolchain_version
|
|
RESULT_VARIABLE result)
|
|
STRING(STRIP "${sdk_toolchain_version}" sdk_toolchain_version)
|
|
STRING(STRIP "${sdk_lib_hash}" sdk_lib_hash)
|
|
STRING(STRIP "${toolchain_version}" toolchain_version)
|
|
if(sdk_lib_hash STREQUAL lib_hash AND sdk_toolchain_version STREQUAL toolchain_version)
|
|
message(STATUS "bk_libs and toolchain version verify success...")
|
|
elseif(app_version STREQUAL "test")
|
|
message(STATUS "bk_libs or toolchain version verify failed, skip for app test!!!")
|
|
elseif(cmd_target STREQUAL "menuconfig")
|
|
message(STATUS "bk_libs or toolchain version verify failed, skip for menuconfig!!!")
|
|
else()
|
|
message(SEND_ERROR "bk_libs or toolchain version verify failed, stop!!!")
|
|
endif()
|
|
endif()
|
|
|
|
file(GLOB common_libs ${CMAKE_CURRENT_SOURCE_DIR}/common/*.a)
|
|
foreach(lib ${common_libs})
|
|
get_filename_component(lib_name ${lib} NAME)
|
|
add_prebuilt_library(${lib_name} "${CMAKE_CURRENT_SOURCE_DIR}/common/${lib_name}")
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE ${lib_name})
|
|
endforeach()
|
|
|
|
file(GLOB libs ${CMAKE_CURRENT_SOURCE_DIR}/${armino_soc}/libs/*.a)
|
|
|
|
set (blacklist_elem
|
|
libbluetooth_host_ble[^.]*\.a
|
|
libbluetooth_controller[^.]*\.a
|
|
libbluetooth_host_dm[^.]*\.a
|
|
libbk_phy[^.]*\.a
|
|
libcom_phy[^.]*\.a
|
|
libate_phy[^.]*\.a
|
|
libtjpg[^.]*\.a
|
|
libscale[^.]*\.a
|
|
libwifi[^.]*\.a
|
|
)
|
|
|
|
list (JOIN blacklist_elem | blacklist_elem_regax)
|
|
|
|
|
|
list(FILTER libs EXCLUDE REGEX "^.*(${blacklist_elem_regax})$")
|
|
|
|
foreach(lib ${libs})
|
|
#message("final lib ${lib}")
|
|
endforeach()
|
|
|
|
foreach(lib ${libs})
|
|
get_filename_component(lib_name ${lib} NAME)
|
|
add_prebuilt_library(${lib_name} "${CMAKE_CURRENT_SOURCE_DIR}/${armino_soc}/libs/${lib_name}")
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE ${lib_name})
|
|
endforeach()
|
|
|