Fix getting version information
Change-Id: I2695733307888f5ab41a1265ae4369a2ea011e09
[ROCm/amdsmi commit: 925014ddaf]
Этот коммит содержится в:
коммит произвёл
Arif, Maisam
родитель
82a2c0dffc
Коммит
4fe4c4df23
@@ -43,7 +43,11 @@ find_program(GIT NAMES git)
|
||||
|
||||
## Setup the package version based on git tags.
|
||||
set(PKG_VERSION_GIT_TAG_PREFIX "amdsmi_pkg_ver")
|
||||
get_package_version_number("26.0.0" ${PKG_VERSION_GIT_TAG_PREFIX} GIT)
|
||||
get_version_from_file("include/amd_smi/amdsmi.h" "MAJOR")
|
||||
get_version_from_file("include/amd_smi/amdsmi.h" "MINOR")
|
||||
get_version_from_file("include/amd_smi/amdsmi.h" "RELEASE")
|
||||
set(DEFAULT_VERSION "${MAJOR}.${MINOR}.${RELEASE}")
|
||||
get_package_version_number(${DEFAULT_VERSION} ${PKG_VERSION_GIT_TAG_PREFIX} GIT)
|
||||
message("Package version: ${PKG_VERSION_STR}")
|
||||
set(${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR "${CPACK_PACKAGE_VERSION_MAJOR}")
|
||||
set(${AMD_SMI_LIBS_TARGET}_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}")
|
||||
@@ -54,6 +58,11 @@ set(${AMD_SMI_LIBS_TARGET}_VERSION_STRING
|
||||
"${${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR}.${${AMD_SMI_LIBS_TARGET}_VERSION_MINOR}.${${AMD_SMI_LIBS_TARGET}_VERSION_PATCH}+${${AMD_SMI_LIBS_TARGET}_VERSION_HASH}"
|
||||
)
|
||||
|
||||
set(DEFAULT_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
||||
update_version_in_file("include/amd_smi/amdsmi.h" ${DEFAULT_VERSION} "#define AMDSMI_LIB_VERSION_" " *" " ")
|
||||
update_version_in_file("rust-interface/src/amdsmi_wrapper.rs" ${DEFAULT_VERSION} "AMDSMI_LIB_VERSION_" " *: *u32 *= *"
|
||||
": u32 = ")
|
||||
|
||||
# Make proper version for appending
|
||||
# Default Value is 99999
|
||||
set(ROCM_VERSION_FOR_PACKAGE "99999")
|
||||
@@ -213,8 +222,7 @@ set(CMN_INC_LIST
|
||||
"${ROCM_INC_DIR}/rocm_smi_logger.h"
|
||||
"${SHR_MUTEX_DIR}/shared_mutex.h"
|
||||
"${ROCM_INC_DIR}/rocm_smi_binary_parser.h"
|
||||
"${ROCM_INC_DIR}/rocm_smi_board_temp.h"
|
||||
)
|
||||
"${ROCM_INC_DIR}/rocm_smi_board_temp.h")
|
||||
|
||||
add_subdirectory("rocm_smi")
|
||||
add_subdirectory("src")
|
||||
|
||||
@@ -53,7 +53,52 @@ function(parse_version VERSION_STRING)
|
||||
endif()
|
||||
|
||||
set(VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(get_version_from_file REL_FILE_PATH ITEM)
|
||||
set(FILE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${REL_FILE_PATH}")
|
||||
set(OUTPUT_ITEM "0")
|
||||
|
||||
if(EXISTS "${FILE_PATH}")
|
||||
file(READ ${FILE_PATH} file_contents)
|
||||
string(REGEX MATCHALL "AMDSMI_LIB_VERSION_${ITEM} *[0-9]+" OUTPUT_STR "${file_contents}")
|
||||
list(LENGTH OUTPUT_STR OUTPUT_STR_LENGTH)
|
||||
if(${OUTPUT_STR_LENGTH} GREATER 0)
|
||||
string(REGEX MATCH "[0-9]+" OUTPUT_ITEM "${OUTPUT_STR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${ITEM} "${OUTPUT_ITEM}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Parses file for a pattern and replaces the value
|
||||
# associated with that pattern with a specified value
|
||||
# Replaces VERSION(MAJOR.MINOR.RELEASE) with updated values
|
||||
function(update_version_in_file REL_FILE_PATH DEFAULT_VERSION PAT1 PAT2 PAT3)
|
||||
get_version_from_file(${REL_FILE_PATH} "MAJOR")
|
||||
get_version_from_file(${REL_FILE_PATH} "MINOR")
|
||||
get_version_from_file(${REL_FILE_PATH} "RELEASE")
|
||||
set(FILE_VERSION "${MAJOR}.${MINOR}.${RELEASE}")
|
||||
|
||||
if(DEFAULT_VERSION VERSION_GREATER FILE_VERSION)
|
||||
set(FILE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${REL_FILE_PATH}")
|
||||
if(EXISTS "${FILE_PATH}")
|
||||
parse_version(${DEFAULT_VERSION})
|
||||
file(READ ${FILE_PATH} file_contents_new)
|
||||
|
||||
string(REGEX REPLACE "${PAT1}MAJOR${PAT2} *[0-9]*" "${PAT1}MAJOR${PAT3}${VERSION_MAJOR}" file_contents
|
||||
"${file_contents_new}")
|
||||
string(REGEX REPLACE "${PAT1}MINOR${PAT2} *[0-9]*" "${PAT1}MINOR${PAT3}${VERSION_MINOR}" file_contents_new
|
||||
"${file_contents}")
|
||||
string(REGEX REPLACE "${PAT1}RELEASE${PAT2} *[0-9]*" "${PAT1}RELEASE${PAT3}${VERSION_PATCH}" file_contents
|
||||
"${file_contents_new}")
|
||||
|
||||
file(WRITE ${FILE_PATH} "${file_contents}")
|
||||
endif()
|
||||
set(VERSION_STRING "${DEFAULT_VERSION}" PARENT_SCOPE)
|
||||
else()
|
||||
set(VERSION_STRING "${FILE_VERSION}" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
## Gets the current version of the repository
|
||||
@@ -62,24 +107,33 @@ endfunction()
|
||||
## and a library version string.
|
||||
function(get_version_from_tag DEFAULT_VERSION_STRING VERSION_PREFIX GIT)
|
||||
parse_version(${DEFAULT_VERSION_STRING})
|
||||
set(DEFAULT_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(DEFAULT_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(DEFAULT_VERSION_PATCH "${VERSION_PATCH}")
|
||||
|
||||
if(GIT)
|
||||
execute_process(
|
||||
COMMAND git describe --tags --dirty --long --match ${VERSION_PREFIX}-[0-9.]*
|
||||
COMMAND git tag --list --sort=-version:refname "${VERSION_PREFIX}*"
|
||||
COMMAND head -n 1
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TAG_STRING
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT)
|
||||
if(${RESULT} EQUAL 0)
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE RESULTS_VARIABLE RESULTS)
|
||||
if(GIT_TAG_STRING)
|
||||
parse_version(${GIT_TAG_STRING})
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
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)
|
||||
if(VERSION_STRING VERSION_GREATER DEFAULT_VERSION_STRING)
|
||||
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)
|
||||
else()
|
||||
set(VERSION_STRING "${DEFAULT_VERSION_STRING}" PARENT_SCOPE)
|
||||
set(VERSION_MAJOR "${DEFAULT_VERSION_MAJOR}" PARENT_SCOPE)
|
||||
set(VERSION_MINOR "${DEFAULT_VERSION_MINOR}" PARENT_SCOPE)
|
||||
set(VERSION_PATCH "${DEFAULT_VERSION_PATCH}" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(num_change_since_prev_pkg VERSION_PREFIX)
|
||||
@@ -106,7 +160,7 @@ function(num_change_since_prev_pkg VERSION_PREFIX)
|
||||
endfunction()
|
||||
|
||||
function(get_package_version_number DEFAULT_VERSION_STRING VERSION_PREFIX GIT)
|
||||
get_version_from_tag(${DEFAULT_VERSION_STRING} ${VERSION_PREFIX} GIT)
|
||||
parse_version(${DEFAULT_VERSION_STRING})
|
||||
num_change_since_prev_pkg(${VERSION_PREFIX})
|
||||
set(PKG_VERSION_STR "${VERSION_STRING}.${NUM_COMMITS}")
|
||||
if(DEFINED ENV{ROCM_BUILD_ID})
|
||||
|
||||
@@ -77,9 +77,6 @@ set(${AMD_SMI}_VERSION_PATCH "0")
|
||||
set(${AMD_SMI}_VERSION_BUILD "0")
|
||||
message("SOVERSION: ${SO_VERSION_STRING}")
|
||||
|
||||
# Create a configure file to get version info from within library
|
||||
configure_file("amd_smiConfig.in" "${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smiConfig.h")
|
||||
|
||||
add_library(${AMD_SMI} ${SRC_LIST} ${INC_LIST})
|
||||
target_link_libraries(${AMD_SMI} pthread rt dl ${DRM_LIBRARIES} ${AMDGPU_DRM_LIBRARIES})
|
||||
target_include_directories(${AMD_SMI} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/rocm_smi/include
|
||||
@@ -115,6 +112,6 @@ install(
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi
|
||||
COMPONENT dev)
|
||||
install(
|
||||
FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smiConfig.h
|
||||
FILES ${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi
|
||||
COMPONENT dev)
|
||||
|
||||
Ссылка в новой задаче
Block a user