File: GitVersion.cmake

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (28 lines) | stat: -rw-r--r-- 764 bytes parent folder | download | duplicates (2)
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()