From 0ad05ed515d7421fde38b0938f864d73d1f656a2 Mon Sep 17 00:00:00 2001 From: marandje Date: Thu, 6 Nov 2025 10:18:26 +0100 Subject: [PATCH] SWDEV-556947 - Parse the HIP version from the Git tag (#1135) --- projects/clr/hipamd/CMakeLists.txt | 40 +++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index 8529edf19c..8f26178516 100755 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -87,16 +87,50 @@ endmacro() # Setup version information ############################# find_package(Perl REQUIRED) +find_package(Git) -# Determine HIP_BASE_VERSION set(ENV{HIP_PATH} "") file(STRINGS ${HIP_COMMON_DIR}/VERSION VERSION_LIST REGEX "^[0-9]+") list(GET VERSION_LIST 0 HIP_VERSION_MAJOR) list(GET VERSION_LIST 1 HIP_VERSION_MINOR) list(GET VERSION_LIST 2 HIP_VERSION_PATCH) -set(HIP_VERSION_GITDATE 0) -find_package(Git) +if(HIP_VERSION_PATCH EQUAL 0 AND GIT_FOUND AND UNIX) + execute_process( + COMMAND ${GIT_EXECUTABLE} fetch --tags origin + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_QUIET + ERROR_QUIET) + + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --match "hip-version_*" --abbrev=0 HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + RESULT_VARIABLE _git_tag_result + OUTPUT_VARIABLE _git_tag_string + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET) + + if(_git_tag_result EQUAL 0 AND _git_tag_string) + string(REGEX MATCH "hip-version_([0-9]+)\\.([0-9]+)\\.([0-9]+)" _version_matched "${_git_tag_string}") + + if(_version_matched) + set(HIP_VERSION_MAJOR ${CMAKE_MATCH_1}) + set(HIP_VERSION_MINOR ${CMAKE_MATCH_2}) + set(HIP_VERSION_PATCH ${CMAKE_MATCH_3}) + + file(WRITE ${HIP_COMMON_DIR}/VERSION + "#HIP_VERSION_MAJOR\n${HIP_VERSION_MAJOR}\n" + "#HIP_VERSION_MINOR\n${HIP_VERSION_MINOR}\n" + "#HIP_VERSION_PATCH\n${HIP_VERSION_PATCH}\n") + + message(STATUS "Updated HIP version from git tag: ${HIP_VERSION_MAJOR}.${HIP_VERSION_MINOR}.${HIP_VERSION_PATCH} -> ${HIP_COMMON_DIR}/VERSION") + endif() + endif() +else() + message(STATUS "Using HIP version from VERSION file: ${HIP_VERSION_MAJOR}.${HIP_VERSION_MINOR}.${HIP_VERSION_PATCH}") +endif() + +set(HIP_VERSION_GITDATE 0) # FIXME: Two different version strings used. # Below we use UNIX commands, not compatible with Windows.