CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
173 lines
5.7 KiB
CMake
173 lines
5.7 KiB
CMake
# ######################################################################################################################
|
|
# Copyright (C) 2017 Advanced Micro Devices, Inc.
|
|
# ######################################################################################################################
|
|
|
|
macro(rocm_set_parent VAR)
|
|
set(${VAR}
|
|
${ARGN}
|
|
PARENT_SCOPE)
|
|
set(${VAR} ${ARGN})
|
|
endmacro()
|
|
|
|
find_program(GIT NAMES git)
|
|
|
|
function(rocm_get_rev_count OUTPUT_COUNT)
|
|
set(options)
|
|
set(oneValueArgs DIRECTORY)
|
|
set(multiValueArgs REV)
|
|
|
|
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
if(PARSE_DIRECTORY)
|
|
set(DIRECTORY ${PARSE_DIRECTORY})
|
|
endif()
|
|
|
|
set(_count 0)
|
|
if(GIT)
|
|
execute_process(
|
|
COMMAND git rev-list --count ${PARSE_REV}
|
|
WORKING_DIRECTORY ${DIRECTORY}
|
|
OUTPUT_VARIABLE REV_COUNT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
RESULT_VARIABLE RESULT
|
|
ERROR_QUIET)
|
|
if(${RESULT} EQUAL 0)
|
|
set(_count ${REV_COUNT})
|
|
endif()
|
|
endif()
|
|
rocm_set_parent(${OUTPUT_COUNT} ${_count})
|
|
endfunction()
|
|
|
|
function(rocm_get_commit_count OUTPUT_COUNT)
|
|
set(options)
|
|
set(oneValueArgs PARENT DIRECTORY)
|
|
set(multiValueArgs)
|
|
|
|
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
if(PARSE_DIRECTORY)
|
|
set(DIRECTORY ${PARSE_DIRECTORY})
|
|
endif()
|
|
|
|
rocm_get_rev_count(
|
|
ALL_COUNT
|
|
DIRECTORY ${DIRECTORY}
|
|
REV HEAD)
|
|
set(_count ${ALL_COUNT})
|
|
|
|
if(PARSE_PARENT)
|
|
rocm_get_rev_count(
|
|
PARENT_COUNT
|
|
DIRECTORY ${DIRECTORY}
|
|
REV HEAD ^${PARSE_PARENT})
|
|
set(_count ${PARENT_COUNT})
|
|
endif()
|
|
rocm_set_parent(${OUTPUT_COUNT} ${_count})
|
|
endfunction()
|
|
|
|
function(rocm_get_build_info OUTPUT DELIM)
|
|
set(_info)
|
|
if(DEFINED ENV{ROCM_BUILD_ID})
|
|
set(_info ${_info}${DELIM}$ENV{ROCM_BUILD_ID})
|
|
endif()
|
|
rocm_set_parent(${OUTPUT} ${_info})
|
|
endfunction()
|
|
|
|
function(rocm_version_regex_parse REGEX OUTPUT_VARIABLE INPUT)
|
|
string(REGEX REPLACE ${REGEX} "\\1" OUTPUT "${INPUT}")
|
|
if("${OUTPUT}" STREQUAL "${INPUT}")
|
|
rocm_set_parent(${OUTPUT_VARIABLE} 0)
|
|
else()
|
|
rocm_set_parent(${OUTPUT_VARIABLE} ${OUTPUT})
|
|
endif()
|
|
endfunction()
|
|
|
|
function(rocm_get_git_commit_tag OUTPUT_VERSION)
|
|
set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
if(GIT)
|
|
set(GIT_COMMAND ${GIT} describe --dirty --long --match [0-9]*)
|
|
execute_process(
|
|
COMMAND ${GIT_COMMAND}
|
|
WORKING_DIRECTORY ${DIRECTORY}
|
|
OUTPUT_VARIABLE GIT_TAG_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
RESULT_VARIABLE RESULT
|
|
ERROR_QUIET)
|
|
if(${RESULT} EQUAL 0)
|
|
set(_output ${GIT_TAG_VERSION})
|
|
else()
|
|
execute_process(
|
|
COMMAND ${GIT_COMMAND} --always
|
|
WORKING_DIRECTORY ${DIRECTORY}
|
|
OUTPUT_VARIABLE GIT_TAG_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
RESULT_VARIABLE RESULT
|
|
ERROR_QUIET)
|
|
if(${RESULT} EQUAL 0)
|
|
set(_output ${GIT_TAG_VERSION})
|
|
endif()
|
|
endif()
|
|
else()
|
|
set(_output "")
|
|
endif()
|
|
rocm_set_parent(${OUTPUT_VERSION} ${_output})
|
|
endfunction()
|
|
|
|
function(rocm_setup_version)
|
|
set(options NO_GIT_TAG_VERSION)
|
|
set(oneValueArgs VERSION PARENT)
|
|
set(multiValueArgs)
|
|
|
|
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
if(PARSE_VERSION)
|
|
# Compensate for missing patch version
|
|
if(PARSE_VERSION MATCHES "^[0-9]+\\.[0-9]+$")
|
|
set(PARSE_VERSION ${PARSE_VERSION}.0)
|
|
endif()
|
|
|
|
rocm_set_parent(PROJECT_VERSION ${PARSE_VERSION})
|
|
rocm_set_parent(${PROJECT_NAME}_VERSION ${PROJECT_VERSION})
|
|
rocm_version_regex_parse("^([0-9]+).*" _version_MAJOR "${PROJECT_VERSION}")
|
|
rocm_version_regex_parse("^[0-9]+\\.([0-9]+).*" _version_MINOR "${PROJECT_VERSION}")
|
|
rocm_version_regex_parse("^[0-9]+\\.[0-9]+\\.([0-9]+).*" _version_PATCH "${PROJECT_VERSION}")
|
|
foreach(level MAJOR MINOR PATCH)
|
|
rocm_set_parent(${PROJECT_NAME}_VERSION_${level} ${_version_${level}})
|
|
rocm_set_parent(PROJECT_VERSION_${level} ${_version_${level}})
|
|
endforeach()
|
|
set(ROCM_GIT_TAG_HASH "")
|
|
if(NOT PARSE_NO_GIT_TAG_VERSION)
|
|
rocm_get_git_commit_tag(ROCM_GIT_TAG_HASH)
|
|
endif()
|
|
rocm_set_parent(PROJECT_VERSION_TWEAK ${ROCM_GIT_TAG_HASH})
|
|
rocm_set_parent(${PROJECT_NAME}_VERSION_TWEAK ${ROCM_GIT_TAG_HASH})
|
|
endif()
|
|
endfunction()
|
|
|
|
function(rocm_get_patch_version OUTPUT)
|
|
set(_patch "")
|
|
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
|
|
set(_patch $ENV{ROCM_LIBPATCH_VERSION})
|
|
endif()
|
|
rocm_set_parent(${OUTPUT} ${_patch})
|
|
endfunction()
|
|
|
|
function(rocm_set_soversion LIBRARY_TARGET SOVERSION)
|
|
if(NOT WIN32 AND NOT APPLE)
|
|
rocm_version_regex_parse("^([0-9]+).*" LIB_VERSION_MAJOR "${SOVERSION}")
|
|
rocm_version_regex_parse("^[0-9]+\\.(.*)" LIB_VERSION_MINOR "${SOVERSION}")
|
|
|
|
set(LIB_VERSION_STRING "${LIB_VERSION_MAJOR}.${LIB_VERSION_MINOR}")
|
|
rocm_get_patch_version(LIB_VERSION_PATCH)
|
|
if(NOT ${LIB_VERSION_PATCH} EQUAL "")
|
|
set(LIB_VERSION_STRING "${LIB_VERSION_STRING}.${LIB_VERSION_PATCH}")
|
|
endif()
|
|
|
|
set_target_properties(${LIBRARY_TARGET} PROPERTIES SOVERSION ${LIB_VERSION_MAJOR})
|
|
set_target_properties(${LIBRARY_TARGET} PROPERTIES VERSION ${LIB_VERSION_STRING})
|
|
endif()
|
|
endfunction()
|