summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-04-20 21:47:07 +0200
committerGitHub <noreply@github.com>2022-04-20 21:47:07 +0200
commitf579b163fe7ccdb0f713001d4253c5d68a3b8280 (patch)
treea085ae1b5080f292d6b469d1080d4546b348978e /CMakeLists.txt
parent1ca7b38f3c174a95e391b4251eebfc98ca66fd17 (diff)
downloadflac-f579b163fe7ccdb0f713001d4253c5d68a3b8280.tar.gz
Add git commit tag, hash and date to vendor string when available
In some circles (Hydrogenaud.io for example) people share binaries compiled from git, i.e. inbetween official releases. Files created with these binaries cannot be discerned from others. To improve troubleshooting, compiles from a git repository are marked with the commit hash and date when configured with autotools or CMake
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt26
1 files changed, 26 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4174ebb8..0a19fac1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,32 @@ if(WITH_OGG)
set(OGG_PACKAGE "ogg")
endif()
+find_program (HAVE_GIT git)
+
+if(HAVE_GIT)
+ execute_process(
+ COMMAND git describe --tags --exact-match
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_COMMIT_TAG
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ execute_process(
+ COMMAND git log -1 --pretty=format:%h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_COMMIT_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ execute_process(
+ COMMAND git log -1 --pretty=format:%cd --date=format:%Y%m%d
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_COMMIT_DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+endif()
+
find_package(Iconv)
set(HAVE_ICONV ${Iconv_FOUND})