cmake: fix build failure when git repo is initialized but no first commit

Closes https://github.com/espressif/esp-idf/issues/3920
This commit is contained in:
Renz Christian Bagaporo 2019-08-27 09:24:17 +08:00
parent 520ecb0c4d
commit b6c89984a9
2 changed files with 9 additions and 7 deletions

View file

@ -38,9 +38,9 @@ function(__project_get_revision var)
if(PROJECT_VER_GIT)
set(PROJECT_VER ${PROJECT_VER_GIT})
else()
message(STATUS "Project is not inside a git repository, \
will not use 'git describe' to determine PROJECT_VER.")
set(PROJECT_VER "1")
message(STATUS "Project is not inside a git repository, or git repository has no commits;"
" will not use 'git describe' to determine PROJECT_VER.")
set(PROJECT_VER 0)
endif()
endif()
endif()

View file

@ -24,12 +24,14 @@ if(HEAD_CONTENTS MATCHES "ref")
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
else()
if(EXISTS "@GIT_DIR@/packed-refs")
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
set(HEAD_HASH "${CMAKE_MATCH_1}")
endif()
endif()
endif()
else()
# detached HEAD
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)