diff --git a/GetGitRevisionDescription.cmake b/GetGitRevisionDescription.cmake index 8ab03bc..a9ad77b 100644 --- a/GetGitRevisionDescription.cmake +++ b/GetGitRevisionDescription.cmake @@ -66,6 +66,10 @@ function(get_git_head_revision _refspecvar _hashvar) get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) endif() + if(NOT IS_DIRECTORY "${GIT_DIR}") + file(READ ${GIT_DIR} worktree) + string(REGEX REPLACE "gitdir: (.*)worktrees(.*)\n$" "\\1" GIT_DIR ${worktree}) + endif() set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") if(NOT EXISTS "${GIT_DATA}") file(MAKE_DIRECTORY "${GIT_DATA}")