Skip to content

Commit

Permalink
Merge pull request #7 from jjnicola/gitrevision
Browse files Browse the repository at this point in the history
Replace the handling of SVN Revisions with Git Revisions in CMakeLists.txt
  • Loading branch information
jjnicola committed Mar 26, 2018
2 parents 3556f42 + 989fba1 commit e30e65d
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand All @@ -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}")
Expand All @@ -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$"
)
Expand Down

0 comments on commit e30e65d

Please sign in to comment.