mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
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:
+7
-17
@@ -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 ()
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user