diff options
author | click <click@gonnamakeyou.com> | 2011-08-04 22:53:33 +0200 |
---|---|---|
committer | click <click@gonnamakeyou.com> | 2011-08-04 22:53:33 +0200 |
commit | d7715fa4b8d18d518c1247bcb77c0ef76e9e4b17 (patch) | |
tree | f83e80743b055e843cd968018a85c56374dd4708 /cmake/genrev.cmake | |
parent | 2056af63f01c177376fc6bebb41ce158cc6016b4 (diff) |
Buildsystem/Windows: Add support for reading commithash and commitdate directly from the executable binaries.
To view this information, check the "Product Version" field in Properties on the respective daemon.
+ Fix worldserver/authserver .rc file layouts and content (now adheres to MS standards *sighs*)
+ Change .serv info output to show corename followed by the commit date and hash
+ Include showing the versionstring on worldserver startup completion (on Aokromes' request)
Thanks to Paradox for bugging me enough about it and the initial pull-request.
Diffstat (limited to 'cmake/genrev.cmake')
-rw-r--r-- | cmake/genrev.cmake | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/cmake/genrev.cmake b/cmake/genrev.cmake index 043f6f0b9ad..37cea9b3deb 100644 --- a/cmake/genrev.cmake +++ b/cmake/genrev.cmake @@ -40,27 +40,30 @@ if(_GIT_VERSION_OK) 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 + ) else() message("") message(STATUS "WARNING - Missing or outdated git - did you forget to install a recent version?") - message(STATUS "WARNING - Observe that for revision ID/hash to work you need at least version ${_REQUIRED_GIT_VERSION}") - message(STATUS "WARNING - Continuing anyway, but setting the revision-ID and hash to Rev:0 Hash: Archive") - message("") + message(STATUS "WARNING - Observe that for revision hash/date to work you need at least version ${_REQUIRED_GIT_VERSION}") 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("") message(STATUS "WARNING - Missing repository tags - you may need to pull tags with git fetch -t") - message(STATUS "WARNING - Continuing, but the hash will be set to 'Archive'") - set(rev_hash_str "Archive") - set(rev_hash "0") + 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 revision and hash from git - string(REGEX REPLACE init-|[0-9]+-g "" rev_hash_str ${rev_info}) - string(REGEX REPLACE [+]+ "" rev_hash ${rev_hash_str}) + # Extract information required to build a proper versionstring + string(REGEX REPLACE init-|[0-9]+-g "" rev_hash ${rev_info}) endif() # Its not set during initial run @@ -69,11 +72,11 @@ if(NOT BUILDDIR) endif() # Create the actual revision.h file from the above params -if(NOT "${rev_hash_cached}" MATCHES "${rev_hash_str}") +if(NOT "${rev_hash_cached}" MATCHES "${rev_hash}") configure_file( "${CMAKE_SOURCE_DIR}/revision.h.in.cmake" "${BUILDDIR}/revision.h" @ONLY ) - set(rev_hash_cached "${rev_hash_str}" CACHE INTERNAL "Cached commit-hash") + set(rev_hash_cached "${rev_hash}" CACHE INTERNAL "Cached commit-hash") endif() |