Buildsystem/CMake: Correct a few mistakes regarding WITHOUT_GIT, and add a better warning during configure-phase.

This commit is contained in:
click
2013-02-11 23:27:20 +01:00
parent 3178fc4d96
commit dfa56a33e0
3 changed files with 46 additions and 34 deletions

View File

@@ -61,7 +61,7 @@ if( UNIX )
find_package(BZip2)
endif()
if( NOT WITHOUT_GIT )
if(NOT WITHOUT_GIT)
find_package(Git)
endif()

View File

@@ -10,57 +10,51 @@
# User has manually chosen to ignore the git-tests, so throw them a warning.
# This is done EACH compile so they can be alerted about the consequences.
if(NOT BUILDDIR)
# Workaround for funny MSVC behaviour - this segment only run during compile
set(GIT_EXEC ${GIT_EXECUTABLE})
set(BUILDDIR ${CMAKE_BINARY_DIR})
endif()
if(WITHOUT_GIT)
message(STATUS "
By choosing the WITHOUT_GIT option, you waive all rights for support, and accept
that any or all requests for assistance by you to core developers will be rejected.
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.
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(rev_date "1970-01-01 00:00:00 +0000")
set(rev_hash "Archived")
else()
# Workaround for funny MSVC behaviour - this segment only run during compile
if(NOT BUILDDIR)
set(BUILDDIR ${CMAKE_BINARY_DIR})
set(_GIT_EXEC ${GIT_EXECUTABLE})
endif()
if(_GIT_EXEC)
if(GIT_EXEC)
# Create a revision-string that we can use
execute_process(
COMMAND "${_GIT_EXEC}" describe --match init --dirty=+ --abbrev=12
COMMAND "${GIT_EXEC}" describe --match init --dirty=+ --abbrev=12
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE rev_info
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
# And grab the commits timestamp
# And grab the commits timestamp
execute_process(
COMMAND "${_GIT_EXEC}" show -s --format=%ci
COMMAND "${GIT_EXEC}" show -s --format=%ci
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE rev_date
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
endif()
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)
# 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 "1970-01-01 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})
if(NOT rev_info)
# No valid ways available to find/set the revision/hash, so let's force some defaults
message(STATUS "
Could not find a proper repository signature (hash) - you may need to pull tags with git fetch -t
Continuing anyway - note that the versionstring will be set to 1970-01-01 00:00:00 (Archived)")
set(rev_date "1970-01-01 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()
# Create the actual revision.h file from the above params

View File

@@ -72,10 +72,28 @@ if( WIN32 )
endif()
endif( WIN32 )
if ( WITHOUT_GIT )
message("* Use GIT revision hash : No")
message("")
message(" *** WITHOUT_GIT - WARNING!")
message(" *** By choosing the WITHOUT_GIT option you have waived all rights for support,")
message(" *** and accept that or all requests for support or assistance sent to the core")
message(" *** developers will be rejected. This due to that we will be unable to detect")
message(" *** what revision of the codebase you are using in a proper way.")
message(" *** We remind you that you need to use the repository codebase and a supported")
message(" *** version of git for the revision-hash to work, and be allowede to ask for")
message(" *** support if needed.")
else()
message("* Use GIT revision hash : Yes")
endif()
if ( NOJEM )
message("")
message("*** WARNING: jemalloc linking has been disabled!")
message("*** Please note that this is for DEBUGGING WITH VALGRIND only!")
message("*** DO NOT DISABLE IT UNLESS YOU KNOW WHAT YOU'RE DOING!")
message(" *** NOJEM - WARNING!")
message(" *** jemalloc linking has been disabled!")
message(" *** Please note that this is for DEBUGGING WITH VALGRIND only!")
message(" *** DO NOT DISABLE IT UNLESS YOU KNOW WHAT YOU'RE DOING!")
endif()
message("")