Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
# Adds version control information to the variable VERS. For
2
# determining the Version Control System used (if any) it inspects the
3
# existence of certain subdirectories under SOURCE_DIR (if provided as an
4
# extra argument, otherwise uses CMAKE_CURRENT_SOURCE_DIR).
5
 
6
function(get_source_info path revision repository)
7
  find_package(Git QUIET)
8
  if(GIT_FOUND)
9
    execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
10
      WORKING_DIRECTORY ${path}
11
      RESULT_VARIABLE git_result
12
      OUTPUT_VARIABLE git_output
13
      ERROR_QUIET)
14
    if(git_result EQUAL 0)
15
      string(STRIP "${git_output}" git_output)
16
      get_filename_component(git_dir ${git_output} ABSOLUTE BASE_DIR ${path})
17
      execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
18
        WORKING_DIRECTORY ${path}
19
        RESULT_VARIABLE git_result
20
        OUTPUT_VARIABLE git_output)
21
      if(git_result EQUAL 0)
22
        string(STRIP "${git_output}" git_output)
23
        set(${revision} ${git_output} PARENT_SCOPE)
24
      endif()
25
      execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref --symbolic-full-name @{upstream}
26
        WORKING_DIRECTORY ${path}
27
        RESULT_VARIABLE git_result
28
        OUTPUT_VARIABLE git_output
29
        ERROR_QUIET)
30
      if(git_result EQUAL 0)
31
        string(REPLACE "/" ";" branch ${git_output})
32
        list(GET branch 0 remote)
33
      else()
34
        set(remote "origin")
35
      endif()
36
      execute_process(COMMAND ${GIT_EXECUTABLE} remote get-url ${remote}
37
        WORKING_DIRECTORY ${path}
38
        RESULT_VARIABLE git_result
39
        OUTPUT_VARIABLE git_output
40
        ERROR_QUIET)
41
      if(git_result EQUAL 0)
42
        string(STRIP "${git_output}" git_output)
43
        set(${repository} ${git_output} PARENT_SCOPE)
44
      else()
45
        set(${repository} ${path} PARENT_SCOPE)
46
      endif()
47
    endif()
48
  else()
49
    message(WARNING "Git not found. Version cannot be determined.")
50
  endif()
51
endfunction()