diff --git a/cmake/developer_package/version.cmake b/cmake/developer_package/version.cmake index c274de22b79..88a1c632283 100644 --- a/cmake/developer_package/version.cmake +++ b/cmake/developer_package/version.cmake @@ -19,7 +19,7 @@ function (commitHash VAR) message(FATAL_ERROR "repo_root is not defined") endif() execute_process( - COMMAND git rev-parse HEAD + COMMAND git rev-parse --short=11 HEAD WORKING_DIRECTORY ${repo_root} OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -33,6 +33,13 @@ macro(ie_parse_ci_build_number) set(IE_VERSION_MINOR ${CMAKE_MATCH_2}) set(IE_VERSION_PATCH ${CMAKE_MATCH_3}) set(IE_VERSION_BUILD ${CMAKE_MATCH_4}) + set(the_whole_version_is_defined_by_ci ON) + elseif(CI_BUILD_NUMBER MATCHES "^[0-9]+$") + set(IE_VERSION_BUILD ${CI_BUILD_NUMBER}) + # only build number is defined by CI + set(the_whole_version_is_defined_by_ci OFF) + elseif(CI_BUILD_NUMBER) + message(FATAL_ERROR "Failed to parse CI_BUILD_NUMBER which is ${CI_BUILD_NUMBER}") endif() if(NOT DEFINED repo_root) @@ -91,22 +98,34 @@ macro(ie_parse_ci_build_number) endif() set(IE_VERSION "${IE_VERSION_MAJOR}.${IE_VERSION_MINOR}.${IE_VERSION_PATCH}") - message(STATUS "OpenVINO version is ${IE_VERSION}") + message(STATUS "OpenVINO version is ${IE_VERSION} (Build ${IE_VERSION_BUILD})") + + if(NOT the_whole_version_is_defined_by_ci) + # create CI_BUILD_NUMBER + + branchName(GIT_BRANCH) + commitHash(GIT_COMMIT_HASH) + + if(NOT GIT_BRANCH STREQUAL "master") + set(GIT_BRANCH_POSTFIX "-${GIT_BRANCH}") + endif() + + set(CI_BUILD_NUMBER "${IE_VERSION}-${IE_VERSION_BUILD}-${GIT_COMMIT_HASH}${GIT_BRANCH_POSTFIX}") + + unset(GIT_BRANCH_POSTFIX) + unset(GIT_BRANCH) + unset(GIT_COMMIT_HASH) + else() + unset(the_whole_version_is_defined_by_ci) + endif() endmacro() -if (DEFINED ENV{CI_BUILD_NUMBER}) - set(CI_BUILD_NUMBER $ENV{CI_BUILD_NUMBER}) -else() - branchName(GIT_BRANCH) - commitHash(GIT_COMMIT_HASH) - - set(custom_build "custom_${GIT_BRANCH}_${GIT_COMMIT_HASH}") - set(CI_BUILD_NUMBER "${custom_build}") -endif() - # provides Inference Engine version # 1. If CI_BUILD_NUMBER is defined, parses this information -# 2. Otherwise, parses ie_version.hpp +# 2. Otherwise, parses openvino/core/version.hpp +if (DEFINED ENV{CI_BUILD_NUMBER}) + set(CI_BUILD_NUMBER $ENV{CI_BUILD_NUMBER}) +endif() ie_parse_ci_build_number() macro (addVersionDefines FILE)