File: GitVersion.cmake

package info (click to toggle)
swi-prolog 9.2.9%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 84,456 kB
  • sloc: ansic: 401,705; perl: 374,799; lisp: 9,080; cpp: 8,920; java: 5,525; sh: 3,282; javascript: 2,690; python: 2,655; ruby: 1,594; yacc: 845; makefile: 440; xml: 317; sed: 12; sql: 6
file content (28 lines) | stat: -rw-r--r-- 764 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Get the GIT version as Major.Minor.Patch[-<hash>[-DIRTY]]

function(git_version var)
  find_program(GIT git)
  if(GIT)
    execute_process(COMMAND ${GIT}
		    -C "${CMAKE_CURRENT_SOURCE_DIR}"
		    describe --match "V*"
		    RESULT_VARIABLE git_rc
		    OUTPUT_VARIABLE git_out
		    OUTPUT_STRIP_TRAILING_WHITESPACE
		    ERROR_QUIET)
    if(git_rc EQUAL 0)
      string(REGEX REPLACE "^V" "" gitv "${git_out}")

      execute_process(COMMAND ${GIT}
		      -C "${CMAKE_CURRENT_SOURCE_DIR}"
		      diff
		      OUTPUT_VARIABLE git_diff
		      OUTPUT_STRIP_TRAILING_WHITESPACE
		      ERROR_QUIET)
      if(NOT git_diff STREQUAL "")
        set(gitv "${gitv}-DIRTY")
      endif()
      set(${var} "${gitv}" PARENT_SCOPE)
    endif()
  endif()
endfunction()