aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2010-08-03 17:28:09 +0000
committerOscar Fuentes <ofv@wanadoo.es>2010-08-03 17:28:09 +0000
commitee9931755434f8809c072efd0cc1fa70ccb2763e (patch)
treeb190eb9f1d2272e7c55580008e546e2f34f889df
parent14a498a48677eb1eaddd8329330df073224f9575 (diff)
downloadexternal_llvm-ee9931755434f8809c072efd0cc1fa70ccb2763e.zip
external_llvm-ee9931755434f8809c072efd0cc1fa70ccb2763e.tar.gz
external_llvm-ee9931755434f8809c072efd0cc1fa70ccb2763e.tar.bz2
CMake: add version control info to PACKAGE_VERSION, if available.
Adds "svn" or "git", depending on the VCS used. If svn, adds the revision number as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110121 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt19
-rw-r--r--cmake/modules/VersionFromVCS.cmake20
2 files changed, 31 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ad3a29..63751d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,8 +3,18 @@
project(LLVM)
cmake_minimum_required(VERSION 2.8)
+# Add path for custom modules
+set(CMAKE_MODULE_PATH
+ ${CMAKE_MODULE_PATH}
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+ )
+
+set(PACKAGE_VERSION "2.8")
+include(VersionFromVCS)
+add_version_info_from_vcs(PACKAGE_VERSION)
+
set(PACKAGE_NAME llvm)
-set(PACKAGE_VERSION 2.8svn)
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "llvmbugs@cs.uiuc.edu")
@@ -124,13 +134,6 @@ configure_file(
set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
-# Add path for custom modules
-set(CMAKE_MODULE_PATH
- ${CMAKE_MODULE_PATH}
- "${LLVM_MAIN_SRC_DIR}/cmake"
- "${LLVM_MAIN_SRC_DIR}/cmake/modules"
- )
-
include(AddLLVMDefinitions)
if(WIN32)
diff --git a/cmake/modules/VersionFromVCS.cmake b/cmake/modules/VersionFromVCS.cmake
new file mode 100644
index 0000000..618b232
--- /dev/null
+++ b/cmake/modules/VersionFromVCS.cmake
@@ -0,0 +1,20 @@
+# Adds version control information to the variable VERS. For
+# determining the Version Control System used (if any) it inspects the
+# existence of certain subdirectories under CMAKE_CURRENT_SOURCE_DIR.
+
+function(add_version_info_from_vcs VERS)
+ set(result ${${VERS}})
+ if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn )
+ set(result "${result}svn")
+ find_package(Subversion)
+ if( Subversion_FOUND )
+ subversion_wc_info( ${CMAKE_CURRENT_SOURCE_DIR} Project )
+ if( Project_WC_REVISION )
+ set(result "${result}-r${Project_WC_REVISION}")
+ endif()
+ endif()
+ elseif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git )
+ set(result "${result}git")
+ endif()
+ set(${VERS} ${result} PARENT_SCOPE)
+endfunction(add_version_info_from_vcs)