mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-07-08 13:58:35 +00:00
[chore][cmake] delete project.build and Preload.cmake,refactor make build command process,fix searching demo path bug
This commit is contained in:
parent
66ec110725
commit
0b9b45a9cb
5 changed files with 70 additions and 64 deletions
73
Makefile
73
Makefile
|
@ -1,38 +1,67 @@
|
|||
#common config
|
||||
BOARD?=bl706_iot
|
||||
CHIP?=bl702
|
||||
APP_DIR?=examples
|
||||
APP?=helloworld
|
||||
CPU_ID?=none
|
||||
COMx?=
|
||||
|
||||
#bootrom config,users do not need it
|
||||
BOOTROM?=n
|
||||
|
||||
SUPPORT_FLOAT?=n
|
||||
SUPPORT_ROMAPI?=y
|
||||
|
||||
INTERFACE?=uart
|
||||
BAUDRATE ?=2000000
|
||||
|
||||
#format config
|
||||
FORMAT_DIR?=.
|
||||
|
||||
export BOARD
|
||||
export CHIP
|
||||
export APP_DIR
|
||||
export APP
|
||||
export BOOTROM
|
||||
export CPU_ID
|
||||
export SUPPORT_FLOAT
|
||||
export SUPPORT_ROMAPI
|
||||
|
||||
# The command to remove a file.
|
||||
RM = cmake -E rm -rf
|
||||
RM = cmake -E remove_directory
|
||||
|
||||
build:
|
||||
#flash tool config
|
||||
INTERFACE?=uart
|
||||
COMx?=
|
||||
BAUDRATE ?=2000000
|
||||
ifeq ($(INTERFACE),uart)
|
||||
FLASH_DOWNLOAD_CONFIG:=--chipname=$(CHIP) --interface=uart --port=$(COMx) --baudrate=$(BAUDRATE)
|
||||
else
|
||||
FLASH_DOWNLOAD_CONFIG:=--chipname=$(CHIP) --interface=$(INTERFACE)
|
||||
endif
|
||||
|
||||
#option config to use
|
||||
SUPPORT_FLOAT?=n
|
||||
SUPPORT_ROMAPI?=y
|
||||
SUPPORT_USB_HS?=n
|
||||
SUPPORT_HW_SEC_ENG_DISABLE?=n
|
||||
SUPPORT_BLECONTROLLER_LIB?=
|
||||
|
||||
#cmake definition config
|
||||
ifneq ($(CPU_ID),none)
|
||||
cmake_definition+= -DCPU_ID=$(CPU_ID)
|
||||
endif
|
||||
|
||||
cmake_definition+= -DCHIP=$(CHIP)
|
||||
cmake_definition+= -DBOARD=$(BOARD)
|
||||
cmake_definition+= -DAPP_DIR=$(APP_DIR)
|
||||
cmake_definition+= -DAPP=$(APP)
|
||||
cmake_definition+= -DBOOTROM=$(BOOTROM)
|
||||
cmake_definition+= -DSUPPORT_ROMAPI=$(SUPPORT_ROMAPI)
|
||||
cmake_definition+= -DCONFIG_PRINT_FLOAT=$(SUPPORT_FLOAT)
|
||||
cmake_definition+= -DCONFIG_USB_HS=$(SUPPORT_USB_HS)
|
||||
cmake_definition+= -DCONFIG_HW_SEC_ENG_DISABLE=$(SUPPORT_HW_SEC_ENG_DISABLE)
|
||||
cmake_definition+= -DCONFIG_BLECONTROLLER_LIB=$(SUPPORT_BLECONTROLLER_LIB)
|
||||
|
||||
build:Makefile
|
||||
cmake -E make_directory build
|
||||
cmake -E copy project.build build
|
||||
make -C ./build -f ./project.build
|
||||
cd build && cmake -G "Unix Makefiles" $(cmake_definition) ..
|
||||
cd build && make -j4
|
||||
|
||||
help:
|
||||
@echo "Welcome to MCU SDK camke build system,commands are as follows:"
|
||||
@echo ""
|
||||
@echo "make clean - Remove all cmake caches and output files"
|
||||
@echo "make SUPPORT_FLOAT=y - Enable float print"
|
||||
@echo "make SUPPORT_USB_HS=y - Enable usb high speed"
|
||||
@echo "make SUPPORT_BLECONTROLLER_LIB=value - Select blecontroller lib,value can be m0s1、m0s1s、std or empty"
|
||||
|
||||
download:
|
||||
./tools/bflb_flash_tool/bflb_mcu_tool --chipname=$(CHIP) --interface=$(INTERFACE) --port=$(COMx) --baudrate=$(BAUDRATE)
|
||||
./tools/bflb_flash_tool/bflb_mcu_tool $(FLASH_DOWNLOAD_CONFIG)
|
||||
|
||||
format:
|
||||
find $(FORMAT_DIR)/ -name "*.c" -o -name "*.h" -o -name "*.cc" -o -name "*.cpp"| xargs clang-format -style=file -i
|
||||
|
@ -41,5 +70,5 @@ clean:
|
|||
$(RM) out
|
||||
$(RM) build
|
||||
|
||||
.PHONY:build clean download format
|
||||
.PHONY:build clean download format help
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
set(CMAKE_GENERATOR "Unix Makefiles" CACHE INTERNAL "" FORCE)
|
|
@ -1,17 +0,0 @@
|
|||
ifneq ($(CPU_ID),none)
|
||||
cmake_definition+= -DCPU_ID=$(CPU_ID)
|
||||
endif
|
||||
|
||||
cmake_definition+= -DCHIP=$(CHIP)
|
||||
cmake_definition+= -DBOARD=$(BOARD)
|
||||
cmake_definition+= -DSUPPORT_FLOAT=$(SUPPORT_FLOAT)
|
||||
cmake_definition+= -DSUPPORT_ROMAPI=$(SUPPORT_ROMAPI)
|
||||
cmake_definition+= -DAPP_DIR=$(APP_DIR)
|
||||
cmake_definition+= -DAPP=$(APP)
|
||||
cmake_definition+= -DBOOTROM=$(BOOTROM)
|
||||
|
||||
__build:
|
||||
cmake $(cmake_definition) ..
|
||||
make -j4
|
||||
|
||||
.PHONY:__build
|
|
@ -9,7 +9,7 @@ list(APPEND GLOBAL_LD_FLAGS -Wall -Wchar-subscripts -std=c99)
|
|||
list(APPEND GLOBAL_LD_FLAGS --specs=nano.specs)
|
||||
|
||||
|
||||
if("${SUPPORT_FLOAT}" STREQUAL "y")
|
||||
if(CONFIG_PRINT_FLOAT_ENABLE)
|
||||
list(APPEND GLOBAL_LD_FLAGS -u _printf_float)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -43,14 +43,7 @@ function(generate_library)
|
|||
|
||||
# Add requirements
|
||||
if(ADD_REQUIREMENTS)
|
||||
foreach(lib ${ADD_REQUIREMENTS})
|
||||
if(TARGET ${lib})
|
||||
add_dependencies(${library_name} ${lib})
|
||||
target_link_libraries(${library_name} ${lib})
|
||||
else()
|
||||
message(FATAL_ERROR "${lib} is not a target")
|
||||
endif()
|
||||
endforeach()
|
||||
target_link_libraries(${library_name} ${ADD_REQUIREMENTS})
|
||||
endif()
|
||||
|
||||
# Add static lib
|
||||
|
@ -82,9 +75,9 @@ endfunction()
|
|||
|
||||
function(generate_bin)
|
||||
|
||||
get_filename_component(current_relative_dir_name ${CMAKE_CURRENT_LIST_DIR} NAME)
|
||||
string(REGEX REPLACE "(.*)/${current_relative_dir_name}$" "\\1" above_absolute_dir ${CMAKE_CURRENT_LIST_DIR})
|
||||
get_filename_component(above_relative_dir_name ${above_absolute_dir} NAME)
|
||||
get_filename_component(current_dir_name ${CMAKE_CURRENT_LIST_DIR} NAME)
|
||||
string(REGEX REPLACE "(.*)/${current_dir_name}$" "\\1" above_absolute_dir ${CMAKE_CURRENT_LIST_DIR})
|
||||
get_filename_component(above_dir_name ${above_absolute_dir} NAME)
|
||||
|
||||
execute_process(
|
||||
COMMAND git submodule status
|
||||
|
@ -137,21 +130,23 @@ function(generate_bin)
|
|||
set(OUTPUT_DIR ${OUTPUT})
|
||||
set(target_name firmware)
|
||||
else()
|
||||
if(${APP_DIR} MATCHES "../") #if demo is not in sdk path
|
||||
string(REPLACE "../" "" dir ${APP_DIR})
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${dir}/${current_relative_dir_name})
|
||||
elseif(${APP_DIR} MATCHES "./")#if demo is in sdk peer path
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${current_relative_dir_name})
|
||||
string(REPLACE "." ":" dot2colon ${APP_DIR})
|
||||
if(${dot2colon} MATCHES "::/") #if demo is not in sdk path
|
||||
string(REPLACE "../" "" relative_dir ${APP_DIR})
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${relative_dir}/${current_dir_name})
|
||||
elseif(${dot2colon} MATCHES ":")#if demo is in sdk peer path
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${current_dir_name})
|
||||
else() #if demo is in sdk path not in peer path
|
||||
if(${APP_DIR} MATCHES ${above_relative_dir_name}) #if demo has one-Layer Catalog
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${current_relative_dir_name})
|
||||
if(${APP_DIR} MATCHES ${above_dir_name}) #if demo has one-Layer Catalog
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${current_dir_name})
|
||||
else() #if demo has Two-Layer Catalog
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${above_relative_dir_name}/${current_relative_dir_name})
|
||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${above_dir_name}/${current_dir_name})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/submodule_commit_info.txt ${GIT_SUBMODULE_INFO})
|
||||
set(target_name ${current_relative_dir_name})
|
||||
set(target_name ${current_dir_name})
|
||||
endif()
|
||||
|
||||
file(MAKE_DIRECTORY ${OUTPUT_DIR})
|
||||
|
@ -240,7 +235,7 @@ if(DEFINED APP)
|
|||
get_filename_component(app_absolute_dir ${cmakelists_file} DIRECTORY)
|
||||
get_filename_component(app_absolute_dir_name ${app_absolute_dir} NAME)
|
||||
message(STATUS "[run app:${app_absolute_dir_name}], path:${app_absolute_dir}")
|
||||
add_subdirectory(${app_absolute_dir} ${CMAKE_SOURCE_DIR}/build/samples/${app_absolute_dir_name})
|
||||
add_subdirectory(${app_absolute_dir} ${PROJECT_BINARY_DIR}/samples/${app_absolute_dir_name})
|
||||
endforeach()
|
||||
else()
|
||||
message(FATAL_ERROR "can not find ${APP} in the first or second directory under the path:${component_path}")
|
||||
|
@ -252,8 +247,8 @@ endif()
|
|||
|
||||
endfunction()
|
||||
|
||||
function(check_add_library target_name directory)
|
||||
function(check_add_library target_name directory) # if library do not be built, add its subdirectory and build it
|
||||
if(NOT TARGET ${target_name})
|
||||
add_subdirectory(${directory} ${CMAKE_SOURCE_DIR}/build/libraries/${target_name})
|
||||
add_subdirectory(${directory} ${PROJECT_BINARY_DIR}/libraries/${target_name})
|
||||
endif()
|
||||
endfunction()
|
Loading…
Add table
Add a link
Reference in a new issue