From 992980fd8c1b4507099528a8d57b04d4eb376502 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Thu, 1 Oct 2015 14:32:22 +0200 Subject: [PATCH] Fixes git tag description. --- scripts/cmake/CMakeSetup.cmake | 32 ----------------- scripts/cmake/Find.cmake | 2 +- scripts/cmake/ProjectSetup.cmake | 29 ++++++++++++++- scripts/cmake/cmake/FindMsysGit.cmake | 36 +++++++++---------- .../cmake/GetGitRevisionDescription.cmake | 6 ++-- 5 files changed, 50 insertions(+), 55 deletions(-) diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake index e86a7717cd8..063be8d6c17 100644 --- a/scripts/cmake/CMakeSetup.cmake +++ b/scripts/cmake/CMakeSetup.cmake @@ -15,44 +15,12 @@ include(ProcessorCount) ProcessorCount(NUM_PROCESSORS) set(NUM_PROCESSORS ${NUM_PROCESSORS} CACHE STRING "Processor count") -include(GetGitRevisionDescription) -GET_GIT_HEAD_REVISION(GIT_REFSPEC GIT_SHA1) -string(SUBSTRING ${GIT_SHA1} 0 8 GIT_SHA1_SHORT) - # Check if this project is included in another if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(IS_SUBPROJECT ON CACHE INTERNAL "" FORCE) set(OGS_BUILD_CLI OFF CACHE BOOL "" FORCE) endif() -if($ENV{CI}) - set(OGS_VERSION 6.6.6) # Dummy version for CI-environment (Travis) or subproject - # Workaround for https://issues.jenkins-ci.org/browse/JENKINS-29329 - if(MSVC) - set(CMAKE_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM} CACHE FILEPATH "workaround for jenkins cmake-plugin") - endif() -elseif(IS_SUBPROJECT) - set(OGS_VERSION x.x.x) -else() - GIT_GET_TAG(GIT_DESCRIBE) - if(GIT_DESCRIBE) - string(REGEX MATCH ^[0-9|\\.]+ GIT_TAG ${GIT_DESCRIBE}) - set(OGS_VERSION ${GIT_TAG}) - - if(GIT_DESCRIBE MATCHES ".*-.*-.*") - # Commit is not a tag - set(OGS_IS_RELEASE FALSE) - string(REGEX MATCH "-([0-9]+)-" GIT_COMMITS_AFTER_TAG ${GIT_DESCRIBE}) - else() - set(OGS_VERSION_STATUS "") - set(OGS_IS_RELEASE TRUE) - message(STATUS "OGS version: ${OGS_VERSION}") - endif() - else() - message(WARNING "Git repository contains no tags! Please run: git fetch --tags") - endif() -endif() - # Get the hostname site_name(HOSTNAME) diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index 7068eb5f29a..df1e425fdac 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -28,7 +28,7 @@ find_package(cppcheck QUIET) find_package(PythonInterp QUIET) find_package(Git REQUIRED) -set(GIT_TOOL_PATH ${GIT_EXECUTABLE} CACHE FILEPATH "The git command line interface" FORCE) +set(GIT_TOOL_PATH ${Git_EXECUTABLE} CACHE FILEPATH "The git command line interface" FORCE) # Find bash itself ... find_program(BASH_TOOL_PATH bash diff --git a/scripts/cmake/ProjectSetup.cmake b/scripts/cmake/ProjectSetup.cmake index f72640b90b0..7f522027b5c 100644 --- a/scripts/cmake/ProjectSetup.cmake +++ b/scripts/cmake/ProjectSetup.cmake @@ -22,4 +22,31 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -site_name(HOSTNAME) +include(GetGitRevisionDescription) +GET_GIT_HEAD_REVISION(GIT_REFSPEC GIT_SHA1) +string(SUBSTRING ${GIT_SHA1} 0 8 GIT_SHA1_SHORT) + +if($ENV{CI}) + set(OGS_VERSION 6.6.6) # Dummy version for CI-environment (Travis) or subproject +elseif(IS_SUBPROJECT) + set(OGS_VERSION x.x.x) +else() + GIT_GET_TAG(GIT_DESCRIBE) + if(GIT_DESCRIBE) + string(REGEX MATCH ^[0-9|\\.]+ GIT_TAG ${GIT_DESCRIBE}) + set(OGS_VERSION ${GIT_TAG}) + + if(GIT_DESCRIBE MATCHES ".*-.*-.*") + # Commit is not a tag + set(OGS_IS_RELEASE FALSE) + string(REGEX MATCH "-([0-9]+)-" GIT_COMMITS_AFTER_TAG ${GIT_DESCRIBE}) + message(STATUS "OGS version: ${GIT_DESCRIBE}") + else() + set(OGS_VERSION_STATUS "") + set(OGS_IS_RELEASE TRUE) + message(STATUS "OGS version: ${OGS_VERSION}") + endif() + else() + message(WARNING "Git repository contains no tags! Please run: git fetch --tags") + endif() +endif() diff --git a/scripts/cmake/cmake/FindMsysGit.cmake b/scripts/cmake/cmake/FindMsysGit.cmake index 1e4f545d98e..ef43d3b415d 100644 --- a/scripts/cmake/cmake/FindMsysGit.cmake +++ b/scripts/cmake/cmake/FindMsysGit.cmake @@ -7,28 +7,28 @@ # message("msysGit tools found in: ${MSYSGIT_BIN_DIR}") # endif() -if(GIT_EXECUTABLE) - execute_process(COMMAND ${GIT_EXECUTABLE} --version - OUTPUT_VARIABLE git_version - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) - if (git_version MATCHES "^git version [0-9]") - string(REPLACE "git version " "" GIT_VERSION_STRING "${git_version}") - if (git_version MATCHES "msysgit") - set(GIT_IS_MSYSGIT TRUE) - else() - set(GIT_IS_MSYSGIT FALSE) - endif() - endif() - unset(git_version) +if(Git_EXECUTABLE) + execute_process(COMMAND ${Git_EXECUTABLE} --version + OUTPUT_VARIABLE git_version + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (git_version MATCHES "^git version [0-9]") + string(REPLACE "git version " "" GIT_VERSION_STRING "${git_version}") + if (git_version MATCHES "msysgit") + set(GIT_IS_MSYSGIT TRUE) + else() + set(GIT_IS_MSYSGIT FALSE) + endif() + endif() + unset(git_version) endif() if(GIT_IS_MSYSGIT) - get_filename_component(MSYS_DIR ${GIT_EXECUTABLE} PATH) - find_path(MSYSGIT_BIN_DIR + get_filename_component(MSYS_DIR ${Git_EXECUTABLE} PATH) + find_path(MSYSGIT_BIN_DIR NAMES date.exe grep.exe unzip.exe git.exe PATHS ${MSYS_DIR}/../bin NO_DEFAULT_PATH) else() - find_path(MSYSGIT_BIN_DIR + find_path(MSYSGIT_BIN_DIR NAMES date.exe grep.exe unzip.exe git.exe PATH_SUFFIXES Git/bin) endif() @@ -37,4 +37,4 @@ endif() include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(MsysGit - REQUIRED_VARS MSYSGIT_BIN_DIR) \ No newline at end of file + REQUIRED_VARS MSYSGIT_BIN_DIR) diff --git a/scripts/cmake/cmake/GetGitRevisionDescription.cmake b/scripts/cmake/cmake/GetGitRevisionDescription.cmake index 4da5f1d7f10..3a4879d0ebd 100644 --- a/scripts/cmake/cmake/GetGitRevisionDescription.cmake +++ b/scripts/cmake/cmake/GetGitRevisionDescription.cmake @@ -81,11 +81,11 @@ function(get_git_head_revision _refspecvar _hashvar) endfunction() function(git_describe _var) - if(NOT GIT_FOUND) + if(NOT Git_FOUND) find_package(Git QUIET) endif() get_git_head_revision(refspec hash) - if(NOT GIT_FOUND) + if(NOT Git_FOUND) set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) return() endif() @@ -105,7 +105,7 @@ function(git_describe _var) #message(STATUS "Arguments to execute_process: ${ARGN}") execute_process(COMMAND - "${GIT_EXECUTABLE}" + ${Git_EXECUTABLE} describe ${hash} ${ARGN} -- GitLab