summaryrefslogtreecommitdiffstats
path: root/cmake/modules/VersionFromVCS.cmake
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
committerdim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
commitcbb70ce070d220642b038ea101d9c0f9fbf860d6 (patch)
treed2b61ce94e654cb01a254d2195259db5f9cc3f3c /cmake/modules/VersionFromVCS.cmake
parent4ace901e87dac5bbbac78ed325e75462e48e386e (diff)
downloadFreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.zip
FreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.tar.gz
Vendor import of llvm trunk r126079:
http://llvm.org/svn/llvm-project/llvm/trunk@126079
Diffstat (limited to 'cmake/modules/VersionFromVCS.cmake')
-rw-r--r--cmake/modules/VersionFromVCS.cmake31
1 files changed, 22 insertions, 9 deletions
diff --git a/cmake/modules/VersionFromVCS.cmake b/cmake/modules/VersionFromVCS.cmake
index 1016df2..81739be 100644
--- a/cmake/modules/VersionFromVCS.cmake
+++ b/cmake/modules/VersionFromVCS.cmake
@@ -4,13 +4,16 @@
function(add_version_info_from_vcs VERS)
set(result ${${VERS}})
- if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn )
+ if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn" )
set(result "${result}svn")
- find_package(Subversion)
+ # FindSubversion does not work with symlinks. See PR 8437
+ if( NOT IS_SYMLINK "${CMAKE_CURRENT_SOURCE_DIR}" )
+ find_package(Subversion)
+ endif()
if( Subversion_FOUND )
subversion_wc_info( ${CMAKE_CURRENT_SOURCE_DIR} Project )
if( Project_WC_REVISION )
- set(result "${result}-r${Project_WC_REVISION}")
+ set(result "${result}-r${Project_WC_REVISION}")
endif()
endif()
elseif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git )
@@ -19,13 +22,23 @@ function(add_version_info_from_vcs VERS)
find_program(git_executable NAMES git git.exe git.cmd)
if( git_executable )
execute_process(COMMAND ${git_executable} show-ref HEAD
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- TIMEOUT 5
- RESULT_VARIABLE git_result
- OUTPUT_VARIABLE git_output)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ TIMEOUT 5
+ RESULT_VARIABLE git_result
+ OUTPUT_VARIABLE git_output)
if( git_result EQUAL 0 )
- string(SUBSTRING ${git_output} 0 7 git_ref_id)
- set(result "${result}-${git_ref_id}")
+ string(SUBSTRING ${git_output} 0 7 git_ref_id)
+ set(result "${result}-${git_ref_id}")
+ else()
+ execute_process(COMMAND ${git_executable} svn log --limit=1 --oneline
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ TIMEOUT 5
+ RESULT_VARIABLE git_result
+ OUTPUT_VARIABLE git_output)
+ if( git_result EQUAL 0 )
+ string(REGEX MATCH r[0-9]+ git_svn_rev ${git_output})
+ set(result "${result}-svn-${git_svn_rev}")
+ endif()
endif()
endif()
endif()
OpenPOWER on IntegriCloud