Unverified Commit 945a8bef authored by Ramesh Errabolu's avatar Ramesh Errabolu Committed by GitHub
Browse files

Merge pull request #47 from RadeonOpenCompute/versionNaming

Update to support uniform naming of ROCm packages
parents 1e8b1b35 3d1c9a29
...@@ -170,7 +170,7 @@ include(utils) ...@@ -170,7 +170,7 @@ include(utils)
# value track what is used in the test source. The code from utils # value track what is used in the test source. The code from utils
# module will parse the string into major, minor and patch sub-fields # module will parse the string into major, minor and patch sub-fields
# #
get_version("1.0.0") get_version()
# Bind the Major, Minor and Patch values # Bind the Major, Minor and Patch values
set(BUILD_VERSION_MAJOR ${VERSION_MAJOR}) set(BUILD_VERSION_MAJOR ${VERSION_MAJOR})
...@@ -209,8 +209,12 @@ set(CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc.") ...@@ -209,8 +209,12 @@ set(CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc.")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Test to measure PciE bandwidth on ROCm platforms") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Test to measure PciE bandwidth on ROCm platforms")
# Debian package specific variables # Debian package specific variables
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libstdc++6, hsa-rocr-dev" )
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/rocm_bandwidth_test") set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/rocm_bandwidth_test")
# RPM package specific variables
set(CPACK_RPM_PACKAGE_DEPENDS "libstdc++6, hsa-rocr-dev" )
# RPM package specific variables # RPM package specific variables
if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX) if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX)
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/bin") set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/bin")
......
...@@ -45,39 +45,64 @@ ...@@ -45,39 +45,64 @@
## the major, minor and patch variables. ## the major, minor and patch variables.
function( parse_version VERSION_STRING ) function( parse_version VERSION_STRING )
# Get index of '-' character in input string
string ( FIND ${VERSION_STRING} "-" STRING_INDEX ) string ( FIND ${VERSION_STRING} "-" STRING_INDEX )
# If there is string after '-' character, capture
# it in COMMIT_INFO string
if ( ${STRING_INDEX} GREATER -1 ) if ( ${STRING_INDEX} GREATER -1 )
math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" ) math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" )
string ( SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 VERSION_BUILD ) string ( SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 COMMIT_INFO )
endif () endif ()
string ( REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING} ) # Parse string into tokens that consist of only numerical
list ( LENGTH VERSIONS VERSION_COUNT ) # substrings and obtain it as a list
string ( REGEX MATCHALL "[0123456789]+" TOKENS ${VERSION_STRING} )
list ( LENGTH TOKENS TOKEN_COUNT )
if ( ${VERSION_COUNT} GREATER 0) # Get Major Id of the version
list ( GET VERSIONS 0 MAJOR ) if ( ${TOKEN_COUNT} GREATER 0)
list ( GET TOKENS 0 MAJOR )
set ( VERSION_MAJOR ${MAJOR} PARENT_SCOPE ) set ( VERSION_MAJOR ${MAJOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${MAJOR}" )
endif () endif ()
if ( ${VERSION_COUNT} GREATER 1 ) # Get Minor Id of the version
list ( GET VERSIONS 1 MINOR ) if ( ${TOKEN_COUNT} GREATER 1 )
list ( GET TOKENS 1 MINOR )
set ( VERSION_MINOR ${MINOR} PARENT_SCOPE ) set ( VERSION_MINOR ${MINOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}" )
endif () endif ()
if ( ${VERSION_COUNT} GREATER 2 ) # Get Patch Id of the version
list ( GET VERSIONS 2 PATCH ) if ( ${TOKEN_COUNT} GREATER 2 )
list ( GET TOKENS 2 PATCH )
set ( VERSION_PATCH ${PATCH} PARENT_SCOPE ) set ( VERSION_PATCH ${PATCH} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}" )
endif () endif ()
if ( DEFINED VERSION_BUILD ) # Return if commit info is not present
set ( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE ) if ( NOT DEFINED COMMIT_INFO )
return()
endif()
# Parse Commit string if present into number of
# commits and hash of last commit
string ( FIND ${COMMIT_INFO} "-" STRING_INDEX )
if ( ${STRING_INDEX} GREATER -1 )
math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" )
string ( SUBSTRING ${COMMIT_INFO} ${STRING_INDEX} -1 COMMIT_HASH )
endif () endif ()
set ( VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE ) string ( REGEX MATCHALL "[0123456789]+" TOKENS ${COMMIT_INFO} )
list ( LENGTH TOKENS TOKEN_COUNT )
if ( ${TOKEN_COUNT} GREATER 0)
list ( GET TOKENS 0 COMMIT_CNT )
endif ()
# Add Build Info from Jenkins
set ( ROCM_BUILD_ID "DevBld" CACHE STRING "Jenkins Build Id" )
# Update Version Patch to include Number of Commits and hash of HEAD
set ( VERSION_PATCH "${PATCH}.${COMMIT_CNT}-${ROCM_BUILD_ID}-${COMMIT_HASH}" PARENT_SCOPE )
endfunction () endfunction ()
...@@ -85,31 +110,27 @@ endfunction () ...@@ -85,31 +110,27 @@ endfunction ()
## using versioning tags and git describe. ## using versioning tags and git describe.
## Passes back a packaging version string ## Passes back a packaging version string
## and a library version string. ## and a library version string.
function ( get_version DEFAULT_VERSION_STRING ) function ( get_version )
parse_version ( ${DEFAULT_VERSION_STRING} )
# Bind the program git that will be
# used to query its tag that describes
find_program ( GIT NAMES git ) find_program ( GIT NAMES git )
if ( GIT ) if ( GIT )
execute_process ( COMMAND "git describe --dirty --long --match [0-9]* 2> /dev/null" execute_process ( COMMAND git describe --long --match [0-9]*
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG_STRING OUTPUT_VARIABLE GIT_TAG_STRING
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE RESULT ) RESULT_VARIABLE RESULT )
if ( ${RESULT} EQUAL 0 ) if ( ${RESULT} EQUAL 0 )
parse_version ( ${GIT_TAG_STRING} ) parse_version ( ${GIT_TAG_STRING} )
endif () endif ()
endif () endif ()
set( VERSION_STRING "${VERSION_STRING}" PARENT_SCOPE ) # Propagate values bound to parent scope
set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE ) set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE )
set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE ) set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE )
set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE ) set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE )
set( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
endfunction() endfunction()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment