aboutsummaryrefslogtreecommitdiff
path: root/cmake/genrev.cmake
diff options
context:
space:
mode:
authorclick <click@gonnamakeyou.com>2013-02-11 14:51:26 +0100
committerclick <click@gonnamakeyou.com>2013-02-11 14:51:26 +0100
commit620a43b4efa429a34f1671d1ede39f43dffeee9d (patch)
tree032f59c0a7166da52d9d705af9101eea3b93dc4c /cmake/genrev.cmake
parentdb0b81e8e78a3c5b42e5b45efdda2c2c99f1e312 (diff)
Buildsystem/CMake: Allow building the core without the gitchecks, this is done in the GUI, or through the DISABLEGITCHECK parameter on *nix-platforms.
DO NOTE THAT WE WILL NOT GIVE SUPPORT ON ANY CORE-VERSION COMPILED WITH THIS FLAG, AS WE CAN NOT EFFECTIVELY FIND OUT WHAT REVISION YOU ARE ON
Diffstat (limited to 'cmake/genrev.cmake')
-rw-r--r--cmake/genrev.cmake123
1 files changed, 69 insertions, 54 deletions
diff --git a/cmake/genrev.cmake b/cmake/genrev.cmake
index 0df1770e142..86acc6df22f 100644
--- a/cmake/genrev.cmake
+++ b/cmake/genrev.cmake
@@ -10,70 +10,85 @@
include(${CMAKE_SOURCE_DIR}/cmake/macros/EnsureVersion.cmake)
-set(_REQUIRED_GIT_VERSION "1.7")
+# User has manually chosen to ignore the git-tests, so we create an arbitrary string for the revisionhash/date as well
+if(DISABLEGITCHECK)
+ message(STATUS "
+ By choosing the DISABLEGITCHECK option, you waive all rights for support, and accept
+ that any or all requests for assistance by you to core developers will be rejected.
-find_program(GIT_EXEC
- NAMES
- git git.cmd
- HINTS
- ENV PATH
- DOC "Full path to git commandline client"
-)
-MARK_AS_ADVANCED(GIT_EXEC)
+ You, as user, take full responsibility for issues, problems etc that might arise
+ from using the core, as we we can not properly detect what codebase you're using.
-if(NOT GIT_EXEC)
- message(FATAL_ERROR "
- Git was NOT FOUND on your system - did you forget to install a recent version, or setting the path to it?
- Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}
+ We remind you that you need to use the repository and a proper version of git for
+ the revision/hash to work, and thus get our support if the need arises.
")
+
+ # Set an arbitrary date and hash, so we can match on that
+ set(rev_date "0000-00-00 00:00:00 +0000")
+ set(rev_hash "TC-COPY-WITH-NO-GIT-SUPPORT")
else()
- execute_process(
- COMMAND "${GIT_EXEC}" --version
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- OUTPUT_VARIABLE _GIT_VERSION
- ERROR_QUIET
+ set(_REQUIRED_GIT_VERSION "1.7")
+ find_program(GIT_EXEC
+ NAMES
+ git git.cmd
+ HINTS
+ ENV PATH
+ DOC "Full path to git commandline client"
)
+ MARK_AS_ADVANCED(GIT_EXEC)
- # make sure we're using minimum the required version of git, so the "dirty-testing" will work properly
- ensure_version( "${_REQUIRED_GIT_VERSION}" "${_GIT_VERSION}" _GIT_VERSION_OK)
-
- # throw an error if we don't have a recent enough version of git...
- if(NOT _GIT_VERSION_OK)
+ if(NOT GIT_EXEC)
message(FATAL_ERROR "
- Git was found but is OUTDATED - did you forget to install a recent version, or setting the path to it?
- Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}
- ")
+ Git was NOT FOUND on your system - did you forget to install a recent version, or setting the path to it?
+ Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}")
+ else()
+ execute_process(
+ COMMAND "${GIT_EXEC}" --version
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT_VARIABLE _GIT_VERSION
+ ERROR_QUIET
+ )
+
+ # make sure we're using minimum the required version of git, so the "dirty-testing" will work properly
+ ensure_version( "${_REQUIRED_GIT_VERSION}" "${_GIT_VERSION}" _GIT_VERSION_OK)
+
+ # throw an error if we don't have a recent enough version of git...
+ if(NOT _GIT_VERSION_OK)
+ message(FATAL_ERROR "
+ Git was found but is OUTDATED - did you forget to install a recent version, or setting the path to it?
+ Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}")
+ endif()
endif()
-endif()
-if(_GIT_VERSION_OK)
- execute_process(
- COMMAND "${GIT_EXEC}" describe --match init --dirty=+ --abbrev=12
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- OUTPUT_VARIABLE rev_info
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
- execute_process(
- COMMAND "${GIT_EXEC}" show -s --format=%ci
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- OUTPUT_VARIABLE rev_date
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
-endif()
+ if(_GIT_VERSION_OK)
+ execute_process(
+ COMMAND "${GIT_EXEC}" describe --match init --dirty=+ --abbrev=12
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT_VARIABLE rev_info
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ execute_process(
+ COMMAND "${GIT_EXEC}" show -s --format=%ci
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ OUTPUT_VARIABLE rev_date
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ endif()
-# Last minute check - ensure that we have a proper revision
-# If everything above fails (means the user has erased the git revision control directory or removed the origin/HEAD tag)
-if(NOT rev_info)
- # No valid ways available to find/set the revision/hash, so let's force some defaults
- message(STATUS "WARNING - Missing repository tags - you may need to pull tags with git fetch -t")
- message(STATUS "WARNING - Continuing anyway - note that the versionstring will be set to 0000-00-00 00:00:00 (Archived)")
- set(rev_date "0000-00-00 00:00:00 +0000")
- set(rev_hash "Archived")
-else()
- # Extract information required to build a proper versionstring
- string(REGEX REPLACE init-|[0-9]+-g "" rev_hash ${rev_info})
+ # Last minute check - ensure that we have a proper revision
+ # If everything above fails (means the user has erased the git revision control directory or removed the origin/HEAD tag)
+ if(NOT rev_info)
+ # No valid ways available to find/set the revision/hash, so let's force some defaults
+ message(STATUS "WARNING - Missing repository tags - you may need to pull tags with git fetch -t")
+ message(STATUS "WARNING - Continuing anyway - note that the versionstring will be set to 0000-00-00 00:00:00 (Archived)")
+ set(rev_date "0000-00-00 00:00:00 +0000")
+ set(rev_hash "Archived")
+ else()
+ # Extract information required to build a proper versionstring
+ string(REGEX REPLACE init-|[0-9]+-g "" rev_hash ${rev_info})
+ endif()
endif()
# Its not set during initial run