summaryrefslogtreecommitdiff
path: root/utils/cmake
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-25 13:02:05 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-25 17:47:14 +0100
commiteb8dc75d3808c93068df232ddb3afda704cc36bb (patch)
treef9741fde39c9b3480fe9718234cda92b47fcb2c0 /utils/cmake
parent6783b2c8a7349863e05935d93927e8192fba39fe (diff)
downloadrockbox-eb8dc75d3808c93068df232ddb3afda704cc36bb.tar.gz
rockbox-eb8dc75d3808c93068df232ddb3afda704cc36bb.zip
rbutil: Create git version information at build time.
Change-Id: Iaf701f4d64d6852423f6a28a753b27abc43477e2
Diffstat (limited to 'utils/cmake')
-rw-r--r--utils/cmake/gitversion.cmake58
1 files changed, 58 insertions, 0 deletions
diff --git a/utils/cmake/gitversion.cmake b/utils/cmake/gitversion.cmake
new file mode 100644
index 0000000000..b13dfc0a0f
--- /dev/null
+++ b/utils/cmake/gitversion.cmake
@@ -0,0 +1,58 @@
1#
2# __________ __ ___.
3# Open \______ \ ____ ____ | | _\_ |__ _______ ___
4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7# \/ \/ \/ \/ \/
8#
9# All files in this archive are subject to the GNU General Public License.
10# See the file COPYING in the source tree root for full license agreement.
11#
12# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
13# KIND, either express or implied.
14#
15
16find_package(Git QUIET)
17
18execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --verify --short=10 HEAD
19 OUTPUT_VARIABLE GIT_HASH
20 ERROR_QUIET)
21
22# Check whether we got any revision (which isn't
23# always the case, e.g. when someone downloaded a zip
24# file from Github instead of a checkout)
25if ("${GIT_HASH}" STREQUAL "")
26 set(GIT_HASH "N/A")
27else()
28 execute_process(
29 COMMAND git diff --quiet --exit-code
30 RESULT_VARIABLE GIT_DIFF_EXITCODE)
31
32 string(STRIP "${GIT_HASH}" GIT_HASH)
33 if (${GIT_DIFF_EXITCODE})
34 set(GIT_DIFF "M")
35 endif()
36endif()
37
38string(TIMESTAMP TODAY "%y%m%d")
39set(VERSION "
40#ifndef GITVERSION
41#define GITVERSION \"${GIT_HASH}${GIT_DIFF}-${TODAY}\"
42#define GITHASH \"${GIT_HASH}${GIT_DIFF}\"
43#define BUILDDATE \"${TODAY}\"
44#endif
45")
46
47if(EXISTS ${OUTFILE})
48 file(READ "${OUTFILE}" _version)
49else()
50 set(_version "")
51endif()
52
53if (NOT "${VERSION}" STREQUAL "${_version}")
54 file(WRITE "${OUTFILE}" "${VERSION}")
55endif()
56
57message("-- Revision: ${GIT_HASH}${GIT_DIFF}")
58