diff --git a/cmake/modules/VersionInfo.cmake b/cmake/modules/VersionInfo.cmake index bee62a1841b..f30c687a503 100644 --- a/cmake/modules/VersionInfo.cmake +++ b/cmake/modules/VersionInfo.cmake @@ -8,15 +8,17 @@ IF(GIT_FOUND AND NOT FORCE_VERSION) # number from the environment and add it to the build metadata if("$ENV{GITHUB_REF}" MATCHES "refs/pull/([0-9]+)/merge") list(APPEND BUILD_METADATA "pr${CMAKE_MATCH_1}") + # Parse hash from merge description + # e.g. "Merge abc1234 into def4567" execute_process( - COMMAND "${GIT_EXECUTABLE}" log --format=%h HEAD~1...HEAD~2 + COMMAND "${GIT_EXECUTABLE}" git log -n 1 --format=%s OUTPUT_VARIABLE COMMIT_HASH WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" TIMEOUT 10 OUTPUT_STRIP_TRAILING_WHITESPACE) # If successful, use the first 7 characters to mimic github's hash style if(COMMIT_HASH) - string(SUBSTRING "${COMMIT_HASH}" 0 7 COMMIT_HASH) + string(SUBSTRING "${COMMIT_HASH}" 7 7 COMMIT_HASH) endif() endif()