1# - Extract information from a subversion working copy
2include(admTimeStamp)
3###################################################################
4#
5# Look for git-svn-id in the logs to detect if it is git-svn
6#
7###################################################################
8MACRO(admIsGitSvn _dir _isSvn)
9    #MESSAGE(STATUS "Git on folder ${_dir}")
10    EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} log -n 50 ${_dir}
11            COMMAND grep "git-svn-id"
12            COMMAND wc -l
13            WORKING_DIRECTORY ${_dir}
14                RESULT_VARIABLE result
15                OUTPUT_VARIABLE output
16            )
17    if(${output} EQUAL 0)
18        MESSAGE(STATUS "This is not git-svn")
19        SET(${_isSvn} 0)
20    else(${output} EQUAL 0)
21        MESSAGE(STATUS "This is git-svn")
22        SET(${_isSvn} 1)
23    endif(${output} EQUAL 0)
24    #MESSAGE(STATUS "Dir : ${_dir} Output : ${output} result:${result} svn:${${_isSvn}}")
25ENDMACRO(admIsGitSvn _dir _svn)
26#
27#
28#
29MACRO(admGetGitRevision _dir _rev)
30
31        FIND_PROGRAM(GIT_EXECUTABLE git
32                DOC "git command line client")
33        MARK_AS_ADVANCED(GIT_EXECUTABLE)
34
35        IF(GIT_EXECUTABLE)
36
37        #SET(EXE  "cd ${_dir}&& ${GIT_EXECUTABLE} svn log | head -2  | grep '^r' | sed 's/ .*$//g'" )
38        set(svn 0)
39       MESSAGE(STATUS "Getting git-svn version from ${_dir}")
40       EXECUTE_PROCESS(
41               COMMAND ${GIT_EXECUTABLE} rev-parse  --show-toplevel ${_dir}
42               WORKING_DIRECTORY ${_dir}
43               RESULT_VARIABLE result
44               OUTPUT_VARIABLE topdir
45               )
46       STRING(STRIP "${topdir}" topdir)
47       MESSAGE(STATUS "Top dir is <${topdir}>")
48       #MESSAGE(STATUS "COMMAND  ${GIT_EXECUTABLE} log --format=oneline -1   ${topdir}")
49       EXECUTE_PROCESS(
50               COMMAND echo  log --format=oneline -1   ${topdir}
51               COMMAND xargs ${GIT_EXECUTABLE}
52               COMMAND head -c 11
53               WORKING_DIRECTORY ${_dir}
54               RESULT_VARIABLE result
55               OUTPUT_VARIABLE output
56               )
57
58       #MESSAGE(STATUS "git last entry is ${output} -- ${result}")
59       ADM_TIMESTAMP(date)
60       STRING(STRIP "${output}" output)
61       SET( ${_rev} "${date}_${output}")
62       MESSAGE(STATUS "<${output}><${date}>==> ${${_rev}}")
63
64ELSE(GIT_EXECUTABLE)
65                SET(ADM_GIT_SVN_REVISION 0)
66        ENDIF(GIT_EXECUTABLE)
67
68ENDMACRO(admGetGitRevision _dir _rev)
69
70# FindSubversion.cmake ends here.
71