From db9c7d5b1e925db6aa146b3b17ff56a81f2f237f Mon Sep 17 00:00:00 2001 From: PonomarevDA Date: Wed, 17 Apr 2024 22:02:52 +0300 Subject: [PATCH] detect application version based on git tag instead of hardcode --- CMakeLists.txt | 16 ++++++++++++++++ Libs/Cyphal | 2 +- Libs/Dronecan | 2 +- Libs/libparams | 2 +- Makefile | 17 +++++++---------- Src/dronecan_application/CMakeLists.txt | 4 ---- 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d3659ed..5d4b9a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,6 +118,22 @@ execute_process( OUTPUT_VARIABLE GIT_HASH_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE ) +execute_process( + COMMAND rl-git-info --major + COMMAND_ERROR_IS_FATAL ANY + OUTPUT_VARIABLE APP_VERSION_MAJOR + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND rl-git-info --minor + COMMAND_ERROR_IS_FATAL ANY + OUTPUT_VARIABLE APP_VERSION_MINOR + OUTPUT_STRIP_TRAILING_WHITESPACE +) +add_definitions(-DAPP_VERSION_MAJOR=${APP_VERSION_MAJOR}) +add_definitions(-DAPP_VERSION_MINOR=${APP_VERSION_MINOR}) +add_definitions(-DHW_VERSION_MAJOR=2) +add_definitions(-DHW_VERSION_MINOR=1) set(GIT_HASH "0x${GIT_HASH_SHORT}") add_definitions(-DGIT_HASH=${GIT_HASH}) diff --git a/Libs/Cyphal b/Libs/Cyphal index 6b48fc0..6c0d834 160000 --- a/Libs/Cyphal +++ b/Libs/Cyphal @@ -1 +1 @@ -Subproject commit 6b48fc0063ea4ba95c0aa29b7af6718ae78c027b +Subproject commit 6c0d8347ae9c894c7bf919d8d24c9aa9c7385792 diff --git a/Libs/Dronecan b/Libs/Dronecan index 14db8ec..6f10d69 160000 --- a/Libs/Dronecan +++ b/Libs/Dronecan @@ -1 +1 @@ -Subproject commit 14db8ec9f2aac74488fbed6c5f51ce9402c7ad41 +Subproject commit 6f10d699fedfab31f7f58296f8a62bde27d96264 diff --git a/Libs/libparams b/Libs/libparams index b56dd59..83285a5 160000 --- a/Libs/libparams +++ b/Libs/libparams @@ -1 +1 @@ -Subproject commit b56dd5961d01438940c1e728e92c5dbe39097b69 +Subproject commit 83285a5ccf7ad24977b61f4da5cecd3ee8b39003 diff --git a/Makefile b/Makefile index 9738840..7d4b25c 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ IS_SUBMODULE_INITIALIZED := $(shell find Libs/libparams -mindepth 1 | wc -l) # Cyphal NUNAVUT_OUT_DIR:=$(BUILD_DIR)/nunavut_out -IS_DSDL_GENERATED := $(shell find ${NUNAVUT_OUT_DIR} -mindepth 1 | wc -l) +IS_DSDL_GENERATED:=$(shell if [ -d ${NUNAVUT_OUT_DIR} ]; then find ${NUNAVUT_OUT_DIR} -mindepth 1 | wc -l; else echo 0; fi) generate_dsdl: mkdir -p ${NUNAVUT_OUT_DIR} @if [ "$(IS_DSDL_GENERATED)" -eq 0 ]; then \ @@ -17,37 +17,34 @@ generate_dsdl: else \ echo "[INFO] Cyphal DSDL: already generated. Skip."; \ fi -cyphal: check_submodules generate_dsdl clean autogenerate_git_related_headers +cyphal: check_submodules generate_dsdl clean mkdir -p ${BUILD_OBJ_DIR} cd ${BUILD_OBJ_DIR} && cmake -DCAN_PROTOCOL=cyphal ../.. && make -sitl_cyphal: check_submodules generate_dsdl clean autogenerate_git_related_headers +sitl_cyphal: check_submodules generate_dsdl clean mkdir -p ${BUILD_OBJ_DIR} cd ${BUILD_OBJ_DIR} && cmake -DCAN_PROTOCOL=cyphal -DUSE_PLATFORM_UBUNTU=1 ../.. && make # Dronecan: -dronecan: check_submodules clean autogenerate_git_related_headers +dronecan: check_submodules clean mkdir -p ${BUILD_OBJ_DIR} cd ${BUILD_OBJ_DIR} && cmake -DCAN_PROTOCOL=dronecan ../.. && make -sitl_dronecan: check_submodules clean autogenerate_git_related_headers +sitl_dronecan: check_submodules clean mkdir -p ${BUILD_OBJ_DIR} cd ${BUILD_OBJ_DIR} && cmake -DCAN_PROTOCOL=dronecan -DUSE_PLATFORM_UBUNTU=1 ../.. && make # Common: check_submodules: @if [ "$(IS_SUBMODULE_INITIALIZED)" -eq 0 ]; then \ - echo "[Error]: submodules are empty. Please type: 'git submodule update --init --recursive'"; \ + echo "[ERROR]: submodules check has been failed. Please type: 'git submodule update --init --recursive'"; \ exit 1; \ else \ - echo "[INFO] Directory is fine"; \ + echo "[INFO] Makefile: submodules check has been passed!"; \ fi upload: ./scripts/tools/stm32/flash.sh ${BUILD_OBJ_DIR}/example.bin run: ./scripts/tools/can/vcan.sh slcan0 ./build/obj/example.out -autogenerate_git_related_headers: - mkdir -p ${BUILD_DIR}/src - ./scripts/tools/stm32/generate_software_version.sh ${BUILD_DIR}/src clean: -rm -fR ${BUILD_OBJ_DIR}/ distclean: diff --git a/Src/dronecan_application/CMakeLists.txt b/Src/dronecan_application/CMakeLists.txt index 9bd64a1..9f72808 100644 --- a/Src/dronecan_application/CMakeLists.txt +++ b/Src/dronecan_application/CMakeLists.txt @@ -4,10 +4,6 @@ cmake_path(GET CMAKE_CURRENT_LIST_DIR PARENT_PATH SRC_DIR) cmake_path(GET SRC_DIR PARENT_PATH ROOT_DIR) -add_definitions(-DAPP_VERSION_MAJOR=0) -add_definitions(-DAPP_VERSION_MINOR=2) -add_definitions(-DHW_VERSION_MAJOR=2) -add_definitions(-DHW_VERSION_MINOR=1) add_definitions(-DFLASH_DRIVER_STORAGE_FILE="${CMAKE_CURRENT_LIST_DIR}/default_params.yml") include(${ROOT_DIR}/Libs/Dronecan/CMakeLists.txt)