mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-07-10 23:08:34 +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
|
BOARD?=bl706_iot
|
||||||
CHIP?=bl702
|
CHIP?=bl702
|
||||||
APP_DIR?=examples
|
APP_DIR?=examples
|
||||||
APP?=helloworld
|
APP?=helloworld
|
||||||
CPU_ID?=none
|
CPU_ID?=none
|
||||||
COMx?=
|
|
||||||
|
#bootrom config,users do not need it
|
||||||
BOOTROM?=n
|
BOOTROM?=n
|
||||||
|
|
||||||
SUPPORT_FLOAT?=n
|
#format config
|
||||||
SUPPORT_ROMAPI?=y
|
|
||||||
|
|
||||||
INTERFACE?=uart
|
|
||||||
BAUDRATE ?=2000000
|
|
||||||
|
|
||||||
FORMAT_DIR?=.
|
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.
|
# 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 make_directory build
|
||||||
cmake -E copy project.build build
|
cd build && cmake -G "Unix Makefiles" $(cmake_definition) ..
|
||||||
make -C ./build -f ./project.build
|
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:
|
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:
|
format:
|
||||||
find $(FORMAT_DIR)/ -name "*.c" -o -name "*.h" -o -name "*.cc" -o -name "*.cpp"| xargs clang-format -style=file -i
|
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) out
|
||||||
$(RM) build
|
$(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)
|
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)
|
list(APPEND GLOBAL_LD_FLAGS -u _printf_float)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -43,14 +43,7 @@ function(generate_library)
|
||||||
|
|
||||||
# Add requirements
|
# Add requirements
|
||||||
if(ADD_REQUIREMENTS)
|
if(ADD_REQUIREMENTS)
|
||||||
foreach(lib ${ADD_REQUIREMENTS})
|
target_link_libraries(${library_name} ${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()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add static lib
|
# Add static lib
|
||||||
|
@ -82,9 +75,9 @@ endfunction()
|
||||||
|
|
||||||
function(generate_bin)
|
function(generate_bin)
|
||||||
|
|
||||||
get_filename_component(current_relative_dir_name ${CMAKE_CURRENT_LIST_DIR} NAME)
|
get_filename_component(current_dir_name ${CMAKE_CURRENT_LIST_DIR} NAME)
|
||||||
string(REGEX REPLACE "(.*)/${current_relative_dir_name}$" "\\1" above_absolute_dir ${CMAKE_CURRENT_LIST_DIR})
|
string(REGEX REPLACE "(.*)/${current_dir_name}$" "\\1" above_absolute_dir ${CMAKE_CURRENT_LIST_DIR})
|
||||||
get_filename_component(above_relative_dir_name ${above_absolute_dir} NAME)
|
get_filename_component(above_dir_name ${above_absolute_dir} NAME)
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND git submodule status
|
COMMAND git submodule status
|
||||||
|
@ -137,21 +130,23 @@ function(generate_bin)
|
||||||
set(OUTPUT_DIR ${OUTPUT})
|
set(OUTPUT_DIR ${OUTPUT})
|
||||||
set(target_name firmware)
|
set(target_name firmware)
|
||||||
else()
|
else()
|
||||||
if(${APP_DIR} MATCHES "../") #if demo is not in sdk path
|
string(REPLACE "." ":" dot2colon ${APP_DIR})
|
||||||
string(REPLACE "../" "" dir ${APP_DIR})
|
if(${dot2colon} MATCHES "::/") #if demo is not in sdk path
|
||||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${dir}/${current_relative_dir_name})
|
string(REPLACE "../" "" relative_dir ${APP_DIR})
|
||||||
elseif(${APP_DIR} MATCHES "./")#if demo is in sdk peer path
|
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${relative_dir}/${current_dir_name})
|
||||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${current_relative_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
|
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
|
if(${APP_DIR} MATCHES ${above_dir_name}) #if demo has one-Layer Catalog
|
||||||
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${current_relative_dir_name})
|
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/out/${APP_DIR}/${current_dir_name})
|
||||||
else() #if demo has Two-Layer Catalog
|
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()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/submodule_commit_info.txt ${GIT_SUBMODULE_INFO})
|
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()
|
endif()
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${OUTPUT_DIR})
|
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 ${cmakelists_file} DIRECTORY)
|
||||||
get_filename_component(app_absolute_dir_name ${app_absolute_dir} NAME)
|
get_filename_component(app_absolute_dir_name ${app_absolute_dir} NAME)
|
||||||
message(STATUS "[run app:${app_absolute_dir_name}], path:${app_absolute_dir}")
|
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()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "can not find ${APP} in the first or second directory under the path:${component_path}")
|
message(FATAL_ERROR "can not find ${APP} in the first or second directory under the path:${component_path}")
|
||||||
|
@ -252,8 +247,8 @@ endif()
|
||||||
|
|
||||||
endfunction()
|
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})
|
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()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
Loading…
Add table
Add a link
Reference in a new issue