diff options
Diffstat (limited to 'utils/cmake')
-rw-r--r-- | utils/cmake/gitversion.cmake | 58 |
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 | |||
16 | find_package(Git QUIET) | ||
17 | |||
18 | execute_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) | ||
25 | if ("${GIT_HASH}" STREQUAL "") | ||
26 | set(GIT_HASH "N/A") | ||
27 | else() | ||
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() | ||
36 | endif() | ||
37 | |||
38 | string(TIMESTAMP TODAY "%y%m%d") | ||
39 | set(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 | |||
47 | if(EXISTS ${OUTFILE}) | ||
48 | file(READ "${OUTFILE}" _version) | ||
49 | else() | ||
50 | set(_version "") | ||
51 | endif() | ||
52 | |||
53 | if (NOT "${VERSION}" STREQUAL "${_version}") | ||
54 | file(WRITE "${OUTFILE}" "${VERSION}") | ||
55 | endif() | ||
56 | |||
57 | message("-- Revision: ${GIT_HASH}${GIT_DIFF}") | ||
58 | |||