From 863b62cb1035c1fa083cb5c576a854d2161cfb00 Mon Sep 17 00:00:00 2001 From: Damian Nikodem Date: Fri, 13 Jan 2023 11:11:13 +0100 Subject: [PATCH] scripts/cmake: update fw versioning process FW versioning in SOF is based on git tag future. It was necessary to update the regex command that recognizes the git tag structure for correct fw version recognition: - SOF_MAJOR - SOF_MINOR - SOF_MICRO - SOF_BUILD Signed-off-by: Damian Nikodem --- scripts/cmake/version.cmake | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/scripts/cmake/version.cmake b/scripts/cmake/version.cmake index dc1d9eb88e29..3f004d0e016f 100644 --- a/scripts/cmake/version.cmake +++ b/scripts/cmake/version.cmake @@ -52,37 +52,42 @@ if(EXISTS ${TARBALL_VERSION_SOURCE_PATH}) message(STATUS "Found ${TARBALL_VERSION_SOURCE_PATH}") else() # execute_process() errors are not fatal by default! - execute_process( - COMMAND git describe --tags --abbrev=12 --match v* --dirty + execute_process(COMMAND git log --pretty=format:%h -1 WORKING_DIRECTORY ${SOF_ROOT_SOURCE_DIRECTORY} - OUTPUT_VARIABLE GIT_TAG + OUTPUT_VARIABLE GIT_LOG_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) - execute_process(COMMAND git log --pretty=format:%h -1 + execute_process( + COMMAND git describe --tags ${GIT_LOG_HASH} --abbrev=12 WORKING_DIRECTORY ${SOF_ROOT_SOURCE_DIRECTORY} - OUTPUT_VARIABLE GIT_LOG_HASH + OUTPUT_VARIABLE GIT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ) endif() -if(NOT GIT_TAG MATCHES "^v") +if(NOT GIT_TAG) message(WARNING "git describe found ${GIT_TAG} / nothing starting with 'v'. Shallow clone?") set(GIT_TAG "v0.0-0-g0000") endif() message(STATUS "GIT_TAG / GIT_LOG_HASH : ${GIT_TAG} / ${GIT_LOG_HASH}") +string(REGEX MATCH "v([0-9]+).?([0-9])[\.]?((-hotfix|-rc)?([0-9]+))?-?(([0-9]+))?" ignored "${GIT_TAG}") -string(REGEX MATCH "^v([0-9]+)[.]([0-9]+)([.]([0-9]+))?" ignored "${GIT_TAG}") set(SOF_MAJOR ${CMAKE_MATCH_1}) set(SOF_MINOR ${CMAKE_MATCH_2}) -set(SOF_MICRO ${CMAKE_MATCH_4}) +set(SOF_MICRO ${CMAKE_MATCH_5}) +set(SOF_BUILD ${CMAKE_MATCH_7}) if(NOT SOF_MICRO MATCHES "^[0-9]+$") set(SOF_MICRO 0) endif() +if(NOT SOF_BUILD MATCHES "^[0-9]+$") + set(SOF_BUILD 0) +endif() + string(SUBSTRING "${GIT_LOG_HASH}" 0 5 SOF_TAG) if(NOT SOF_TAG) set(SOF_TAG 0) @@ -140,9 +145,6 @@ source content hash cannot computed for the .ldc. Using SOF_SRC_HASH=${SOF_SRC_H from GIT_LOG_HASH instead") endif() -# for SOF_BUILD -include(${CMAKE_CURRENT_LIST_DIR}/version-build-counter.cmake) - # (Re)-generate "${VERSION_H_PATH}" but overwrite the old one only if # different to avoid a full rebuild. TODO: check how Zephyr solves this # problem, see Zephyr commit 91709778a4878c