Reimplement CMake Git revision extraction

The third-party module solution used didn't require Git to be installed,
but it was broken when the repository layout changed. Since Git is very
likely to be installed, just use CMake's built-in FindGit module and
call Git to extract the HEAD short revision ID.
This commit is contained in:
Oliver Hamlet
2015-11-28 13:05:08 +00:00
parent e5162c32d7
commit c48dc7c1da
2 changed files with 7 additions and 19 deletions
+7 -17
View File
@@ -7,24 +7,14 @@
# Get Build Revision
##############################
# Uses the CMake module in this repo: https://github.com/rpavlik/cmake-modules
# On Windows, this requires Git for Windows to be installed.
find_package(Git)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
include(GetGitRevisionDescription OPTIONAL RESULT_VARIABLE GIT_MODULE_PATH)
IF (NOT GIT_MODULE_PATH MATCHES "NOTFOUND")
get_git_head_revision(GIT_REFSPEC GIT_COMMIT_STRING --tags --long)
IF (GIT_COMMIT_STRING MATCHES "GITDIR-NOTFOUND")
set(GIT_COMMIT_STRING "unknown")
ELSE ()
# Get a shortened ID. Although knowing the shortest unique string requires Git,
# 8 characters should be a good compromise between chance of ambiguity and length,
# especially since the version numbers would narrow down the range of possibly
# ambiguous commits.
string(SUBSTRING ${GIT_COMMIT_STRING} 0 8 GIT_COMMIT_STRING)
ENDIF ()
ELSE ()
IF (GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
OUTPUT_VARIABLE GIT_COMMIT_STRING
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
ELSE()
SET (GIT_COMMIT_STRING "unknown")
ENDIF ()
-2
View File
@@ -67,8 +67,6 @@ Example CMake keys: `-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=build -DCMAKE_ARCHIVE_OUTP
#### LOOT
LOOT uses a third-party CMake module to generate its build revision data, so first download the `GetGitRevisionDescription.cmake` and `GetGitRevisionDescription.cmake.in` files found in [this repository](https://github.com/rpavlik/cmake-modules) to the `build` subdirectory of the LOOT folder.
1. Set CMake up so that it builds the binaries in the `build` subdirectory of the LOOT folder.
2. Define any necessary parameters.
3. Configure CMake, then generate a build system for Visual Studio 12.