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