1 IF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/") ## when SVN version >= 1.8, maybe getting subversion failed. 2 include(FindSubversion) 3 FIND_PACKAGE(Subversion) 4 IF (Subversion_FOUND) 5 Subversion_WC_INFO(${CMAKE_CURRENT_LIST_DIR} hamsterStore) 6 ELSE (Subversion_FOUND) 7 MESSAGE (FATAL_ERROR "Subversion not found.") 8 ENDIF (Subversion_FOUND) 9 ELSE (EXISTS "${PROJECT_SOURCE_DIR}/.svn/")10 MESSAGE (STATUS "Subversion is not found.")11 ENDIF (EXISTS "${PROJECT_SOURCE_DIR}/.svn/")12 13 IF(${hamsterStore_WC_REVISION})14 set (CONFIG_Get_Revision ${hamsterStore_WC_REVISION} CACHE STRING "software revision")15 MESSAGE (STATUS "CONFIG_Get_Revision from Subversion.")16 ELSE(${hamsterStore_WC_REVISION})17 set (CONFIG_Get_Revision "12345" CACHE STRING "software revision")18 MESSAGE (STATUS "CONFIG_Get_Revision set is 12345.")19 ENDIF(${hamsterStore_WC_REVISION})
以上hamsterStore是Project Name; CONFIG_Get_Revision即是获取到的svn版本号;2, 用shell脚本获取svn版本号
1 `svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 2 或者 3 # 获取XML版本的svn信息,这样可以避免不同语言的问题 4 svnv=`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 5 echo $svnv 6 7 安卓系统下: 8 svnv=`svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//'` 9 echo $svnv 10 sed -i s/versionName=".∗build−[0-9]*"/versionName="\1$svnv"/ AndroidManifest.xml 11 cat AndroidManifest.xml |grep versionName