Conform versioning of to uniform version standards
Library version will now only have major and minor. Package
version will now include number of commits since previous
package. Both SO and package versions rely on git tags to
determine the current build and the commits since the last
release.
Change-Id: If2bda74bf342930a9e07f5c91cb1380b6b7c64ca
[ROCm/rocm_smi_lib commit: fe738eaedb]
This commit is contained in:
@@ -18,29 +18,32 @@ set(ROCM_SMI_TARGET "${ROCM_SMI}64")
|
||||
# ABI breaks (update MAJOR and MINOR), and ABI/API additions (update MINOR).
|
||||
# Until ABI stabilizes VERSION_MAJOR will be 0. This should be over-ridden
|
||||
# by git tags (through "git describe") when they are present.
|
||||
set(ROCM_SMI_LIB_VERSION_MAJOR 0)
|
||||
set(ROCM_SMI_LIB_VERSION_MINOR 2)
|
||||
set(PKG_VERSION_MAJOR 1)
|
||||
set(PKG_VERSION_MINOR 0)
|
||||
set(PKG_VERSION_PATCH 0)
|
||||
set(PKG_VERSION_NUM_COMMIT 0)
|
||||
|
||||
################# Determine the library version #########################
|
||||
## Setup the package version based on git tags.
|
||||
set(LIB_SO_VERSION_STR
|
||||
"${ROCM_SMI_LIB_VERSION_MAJOR}.${ROCM_SMI_LIB_VERSION_MINOR}.0")
|
||||
get_version(${LIB_SO_VERSION_STR} "rsmi")
|
||||
set(PKG_VERSION_GIT_TAG_PREFIX "rsmi_pkg_ver")
|
||||
|
||||
# VERSION_* variables should be set by get_version
|
||||
set(LIB_SO_VERSION_STR ${VERSION_STRING})
|
||||
set(${ROCM_SMI}_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(${ROCM_SMI}_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(${ROCM_SMI}_VERSION_PATCH "${VERSION_PATCH}")
|
||||
set(${ROCM_SMI}_VERSION_BUILD "${VERSION_BUILD}")
|
||||
get_current_version("1.0.0" ${PKG_VERSION_GIT_TAG_PREFIX})
|
||||
num_change_since_prev_pkg(${PKG_VERSION_GIT_TAG_PREFIX})
|
||||
# VERSION_* variables should be set by get_current_version
|
||||
set(PKG_VERSION_STR "${VERSION_STRING}.${NUM_COMMITS}")
|
||||
message("Package version: ${PKG_VERSION_STR}")
|
||||
|
||||
# Debian package specific variables
|
||||
# Set a default value for the package version
|
||||
set(VERSION_STRING "1.0.0")
|
||||
get_version(${VERSION_STRING} "roc")
|
||||
get_current_version("1.0.0.0" "rsmi_so_ver")
|
||||
|
||||
# VERSION_* variables should be set by get_version
|
||||
set(BUILD_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||
# VERSION_* variables should be set by get_current_version
|
||||
set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
|
||||
set(${ROCM_SMI}_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(${ROCM_SMI}_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(${ROCM_SMI}_VERSION_PATCH "0")
|
||||
set(${ROCM_SMI}_VERSION_BUILD "0")
|
||||
message("SOVERSION: ${SO_VERSION_STRING}")
|
||||
|
||||
project(${ROCM_SMI_TARGET})
|
||||
|
||||
@@ -62,7 +65,7 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
"ROCm System Management Interface library")
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_FILE_NAME "rocm_smi_lib64-${BUILD_VERSION_STRING}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "rocm_smi_lib64-${PKG_VERSION_STR}")
|
||||
## Verbose output.
|
||||
set(CMAKE_VERBOSE_MAKEFILE on)
|
||||
|
||||
@@ -111,11 +114,12 @@ target_link_libraries(${SMI_EXAMPLE_EXE} ${ROCM_SMI_TARGET})
|
||||
add_library(${ROCM_SMI_TARGET} SHARED ${SMI_SRC_LIST} ${SMI_INC_LIST})
|
||||
target_link_libraries(${ROCM_SMI_TARGET} pthread rt)
|
||||
|
||||
|
||||
## Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${ROCM_SMI_TARGET}
|
||||
PROPERTY VERSION "${LIB_SO_VERSION_STR}")
|
||||
set_property(TARGET ${ROCM_SMI_TARGET}
|
||||
PROPERTY SOVERSION "${ROCM_SMI_LIB_VERSION_MAJOR}")
|
||||
set_property(TARGET ${ROCM_SMI_TARGET} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${ROCM_SMI_TARGET} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
|
||||
## If the library is a release, strip the target library
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
|
||||
@@ -73,10 +73,6 @@ function( parse_version VERSION_STRING )
|
||||
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}" )
|
||||
endif ()
|
||||
|
||||
if ( DEFINED VERSION_BUILD )
|
||||
set ( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
|
||||
endif ()
|
||||
|
||||
set ( VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE )
|
||||
|
||||
endfunction ()
|
||||
@@ -85,7 +81,7 @@ endfunction ()
|
||||
## using versioning tags and git describe.
|
||||
## Passes back a packaging version string
|
||||
## and a library version string.
|
||||
function(get_version DEFAULT_VERSION_STRING VERSION_PREFIX)
|
||||
function(get_current_version DEFAULT_VERSION_STRING VERSION_PREFIX)
|
||||
|
||||
parse_version ( ${DEFAULT_VERSION_STRING} )
|
||||
|
||||
@@ -109,7 +105,28 @@ function(get_version DEFAULT_VERSION_STRING VERSION_PREFIX)
|
||||
set( VERSION_STRING "${VERSION_STRING}" PARENT_SCOPE )
|
||||
set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE )
|
||||
set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE )
|
||||
set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE )
|
||||
set( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
|
||||
|
||||
endfunction()
|
||||
function(num_change_since_prev_pkg VERSION_PREFIX)
|
||||
|
||||
find_program(get_commits NAMES version_util.sh
|
||||
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
|
||||
if (get_commits)
|
||||
execute_process( COMMAND ${get_commits} -c ${VERSION_PREFIX}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE NUM_COMMITS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT )
|
||||
|
||||
set(NUM_COMMITS "${NUM_COMMITS}" PARENT_SCOPE )
|
||||
|
||||
if ( ${RESULT} EQUAL 0 )
|
||||
message("${NUM_COMMITS} were found since previous release")
|
||||
else()
|
||||
message("Unable to determine number of commits since previous release")
|
||||
endif()
|
||||
else()
|
||||
message("WARNING: Didn't find version_util.sh")
|
||||
set(NUM_COMMITS "unknown" PARENT_SCOPE )
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Handle commandline args
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
-c ) # Commits since prevous tag
|
||||
TARGET="count" ;;
|
||||
* )
|
||||
TARGET="count"
|
||||
break ;;
|
||||
esac
|
||||
shift 1
|
||||
done
|
||||
TAG_PREFIX=$1
|
||||
reg_ex="${TAG_PREFIX}*"
|
||||
|
||||
commits_since_last_tag() {
|
||||
TAG_ARR=(`git tag --sort=committerdate -l ${reg_ex} | tail -2`)
|
||||
PREVIOUS_TAG=${TAG_ARR[0]}
|
||||
CURRENT_TAG=${TAG_ARR[1]}
|
||||
|
||||
PREV_CMT_NUM=`git rev-list --count $PREVIOUS_TAG`
|
||||
CURR_CMT_NUM=`git rev-list --count $CURRENT_TAG`
|
||||
|
||||
# Commits since prevous tag:
|
||||
let NUM_COMMITS="${CURR_CMT_NUM}-${PREV_CMT_NUM}"
|
||||
echo $NUM_COMMITS
|
||||
}
|
||||
|
||||
case $TARGET in
|
||||
count) commits_since_last_tag ;;
|
||||
*) die "Invalid target $target" ;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user