From 989fba1521aabf856f6df93c40ef4271ae5cc188 Mon Sep 17 00:00:00 2001 From: Juan Jose Nicola Date: Mon, 26 Mar 2018 12:37:11 +0200 Subject: [PATCH] Replace the handling of SVN Revisions with Git Revisions in CMakeLists.txt. --- CMakeLists.txt | 51 ++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1dab38c4..6cea0a04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,36 +34,39 @@ find_package(Perl REQUIRED) include (FindPkgConfig) -## Retrieve svn revision (at configure time) -# Not using Subversion_WC_INFO, as it would have to connect to the repo -find_program (SVN_EXECUTABLE svn DOC "subversion command line client") - -macro (Subversion_GET_REVISION dir variable) - execute_process (COMMAND ${SVN_EXECUTABLE} info ${CMAKE_SOURCE_DIR}/${dir} - OUTPUT_VARIABLE ${variable} - OUTPUT_STRIP_TRAILING_WHITESPACE) - string (REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*" - "\\2" ${variable} "${${variable}}") -endmacro (Subversion_GET_REVISION) +## Retrieve git revision (at configure time) +find_package (Git) + +macro (Git_GET_REVISION dir variable) + execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${dir} + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h + WORKING_DIRECTORY ${dir} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE) + set (${variable} "${GIT_COMMIT_HASH}-${GIT_BRANCH}") +endmacro (Git_GET_REVISION) if (NOT CMAKE_BUILD_TYPE MATCHES "Release") - if (EXISTS "${CMAKE_SOURCE_DIR}/.svn/" OR EXISTS "${CMAKE_SOURCE_DIR}/../.svn/") - if (SVN_EXECUTABLE) - Subversion_GET_REVISION(. ProjectRevision) - set (SVN_REVISION "~svn${ProjectRevision}") - else (SVN_EXECUTABLE) - set (SVN_REVISION "~svn") - endif (SVN_EXECUTABLE) - endif (EXISTS "${CMAKE_SOURCE_DIR}/.svn/" OR EXISTS "${CMAKE_SOURCE_DIR}/../.svn/") + if (EXISTS "${CMAKE_SOURCE_DIR}/.git/") + if (GIT_FOUND) + Git_GET_REVISION(. ProjectRevision) + set (GIT_REVISION "~git$-{ProjectRevision}") + else (GIT_FOUND) + set (GIT_REVISION "~git") + endif (GIT_FOUND) + endif (EXISTS "${CMAKE_SOURCE_DIR}/.git/") endif (NOT CMAKE_BUILD_TYPE MATCHES "Release") # Set beta version if this is a beta release series, # unset if this is a stable release series. set (PROJECT_BETA_RELEASE 0) -if (SVN_REVISION) - set (PROJECT_VERSION_SVN "${SVN_REVISION}") -endif (SVN_REVISION) +if (GIT_REVISION) + set (PROJECT_VERSION_GIT "${GIT_REVISION}") +endif (GIT_REVISION) # If PROJECT_BETA_RELEASE is set, the version string will be set to: # "major.minor+beta${PROJECT_BETA_RELEASE}" @@ -90,7 +93,7 @@ set (CPACK_SOURCE_TOPLEVEL_TAG "") set (CPACK_SYSTEM_NAME "") set (CPACK_TOPLEVEL_TAG "") -set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_STRING}${PROJECT_VERSION_SVN}") +set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_STRING}${PROJECT_VERSION_GIT}") set (CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}") set (CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}") @@ -100,7 +103,7 @@ set (CPACK_PACKAGE_VENDOR "The OpenVAS Project") # Please run CPack only from an out of source build. set (CPACK_SOURCE_IGNORE_FILES "${CMAKE_BINARY_DIR}" - "/.svn/" + "/.git/" "/.hg/" "swp$" )