From ee9931755434f8809c072efd0cc1fa70ccb2763e Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Tue, 3 Aug 2010 17:28:09 +0000 Subject: [PATCH] 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 --- CMakeLists.txt | 19 +++++++++++-------- cmake/modules/VersionFromVCS.cmake | 20 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 cmake/modules/VersionFromVCS.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ad3a290cbf..63751d6007e 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 00000000000..618b232ec2d --- /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)