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 | |
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.
-rw-r--r-- | cmake/genrev.cmake | 27 | ||||
-rw-r--r-- | cmake/showoptions.cmake | 5 | ||||
-rw-r--r-- | revision.h.in.cmake | 13 | ||||
-rwxr-xr-x | src/server/authserver/authserver.rc | 37 | ||||
-rwxr-xr-x | src/server/shared/SystemConfig.h | 8 | ||||
-rwxr-xr-x | src/server/worldserver/Master.cpp | 1 | ||||
-rwxr-xr-x | src/server/worldserver/worldserver.rc | 39 |
7 files changed, 75 insertions, 55 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() diff --git a/cmake/showoptions.cmake b/cmake/showoptions.cmake index 84d72356d06..31e1b412b32 100644 --- a/cmake/showoptions.cmake +++ b/cmake/showoptions.cmake @@ -1,8 +1,9 @@ # output generic information about the core and buildtype chosen message("") -message("* TrinityCore commithash : ${rev_hash_str}") +message("* TrinityCore rev. hash : ${rev_hash}") +message("* TrinityCore rev. date : ${rev_date}") if( UNIX ) - message("* Build binaries in : ${CMAKE_BUILD_TYPE} mode") + message("* TrinityCore buildtype : ${CMAKE_BUILD_TYPE}") endif() message("") diff --git a/revision.h.in.cmake b/revision.h.in.cmake index ac993190d4c..9212b8060ef 100644 --- a/revision.h.in.cmake +++ b/revision.h.in.cmake @@ -1,8 +1,11 @@ #ifndef __REVISION_H__ #define __REVISION_H__ - #define _HASH "@rev_hash_str@" - #define FILEVER 0,0,0 - #define PRODUCTVER 0,0,0 - #define STRFILEVER "0, 0, @rev_hash_str@" - #define STRPRODUCTVER "0, 0, @rev_hash_str@" + #define _HASH "@rev_hash@" + #define _DATE "@rev_date@" + #define VER_COMPANYNAME_STR "TrinityCore Developers" + #define VER_LEGALCOPYRIGHT_STR "(c)2008-2011 TrinityCore" + #define VER_FILEVERSION 0,0,0 + #define VER_FILEVERSION_STR "@rev_date@ (@rev_hash@)" + #define VER_PRODUCTVERSION VER_FILEVERSION + #define VER_PRODUCTVERSION_STR VER_FILEVERSION_STR #endif // __REVISION_H__ diff --git a/src/server/authserver/authserver.rc b/src/server/authserver/authserver.rc index f4e93642c5c..fde1be5061e 100755 --- a/src/server/authserver/authserver.rc +++ b/src/server/authserver/authserver.rc @@ -53,31 +53,36 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_SYS_DEFAULT // VS_VERSION_INFO VERSIONINFO - FILEVERSION FILEVER - PRODUCTVERSION PRODUCTVER - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION + +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + +#ifndef _DEBUG + FILEFLAGS 0 #else - FILEFLAGS 0x0L + FILEFLAGS (VER_PRIVATEBUILD|VER_PRERELASE|VER_DEBUG) #endif - FILEOS 0x0L - FILETYPE 0x0L - FILESUBTYPE 0x0L + +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP + BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "080004b0" BEGIN - VALUE "FileDescription", "authserver" - VALUE "FileVersion", STRFILEVER - VALUE "InternalName", "authserver" - VALUE "LegalCopyright", "Copyright (C) 2008-2010" - VALUE "OriginalFilename", "authserver.exe" - VALUE "ProductName", "authserver" - VALUE "ProductVersion", STRPRODUCTVER + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", "TrinityCore Authentication Server Daemon" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "authserver" + VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR + VALUE "OriginalFilename", "authserver.exe" + VALUE "ProductName", "TrinityCore Authentication Server" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END + BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x800, 1200 diff --git a/src/server/shared/SystemConfig.h b/src/server/shared/SystemConfig.h index c15d3de2461..18acc739018 100755 --- a/src/server/shared/SystemConfig.h +++ b/src/server/shared/SystemConfig.h @@ -24,7 +24,7 @@ #include "Define.h" #include "revision.h" -#define _PACKAGENAME "TrinityCore " +#define _PACKAGENAME "TrinityCore" #if TRINITY_ENDIAN == TRINITY_BIGENDIAN # define _ENDIAN_STRING "big-endian" @@ -34,11 +34,11 @@ #if PLATFORM == PLATFORM_WINDOWS # ifdef _WIN64 -# define _FULLVERSION _PACKAGENAME "Hash: " _HASH " (Win64, "_BUILD_DIRECTIVE " (" _ENDIAN_STRING "))" +# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Win64, "_BUILD_DIRECTIVE ")" # else -# define _FULLVERSION _PACKAGENAME "Hash: " _HASH " (Win32, " _BUILD_DIRECTIVE " (" _ENDIAN_STRING "))" +# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Win32, " _BUILD_DIRECTIVE ")" # endif #else -# define _FULLVERSION _PACKAGENAME "Hash: " _HASH " (Unix, " _BUILD_DIRECTIVE " (" _ENDIAN_STRING "))" +# define _FULLVERSION _PACKAGENAME " rev. " VER_PRODUCTVERSION_STR " (Unix, " _BUILD_DIRECTIVE ")" #endif #endif diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index cfb8a5a1aaa..c44ac1c9266 100755 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -275,6 +275,7 @@ int Master::Run() // set server online (allow connecting now) LoginDatabase.DirectPExecute("UPDATE realmlist SET color = color & ~%u, population = 0 WHERE id = '%u'", REALM_FLAG_INVALID, realmID); + sLog->outString("%s (worldserver-daemon) ready...", _FULLVERSION); sWorldSocketMgr->Wait(); if (soap_thread) diff --git a/src/server/worldserver/worldserver.rc b/src/server/worldserver/worldserver.rc index afb16c9422c..8f260b60922 100755 --- a/src/server/worldserver/worldserver.rc +++ b/src/server/worldserver/worldserver.rc @@ -53,31 +53,38 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_SYS_DEFAULT // VS_VERSION_INFO VERSIONINFO - FILEVERSION FILEVER - PRODUCTVERSION PRODUCTVER - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION + + + +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + +#ifndef _DEBUG + FILEFLAGS 0 #else - FILEFLAGS 0x0L + FILEFLAGS (VER_PRIVATEBUILD|VER_PRERELASE|VER_DEBUG) #endif - FILEOS 0x0L - FILETYPE 0x0L - FILESUBTYPE 0x0L + +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP + BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "080004b0" BEGIN - VALUE "FileDescription", "worldserver" - VALUE "FileVersion", STRFILEVER - VALUE "InternalName", "worldserver" - VALUE "LegalCopyright", "Copyright (C) 2008-2010" - VALUE "OriginalFilename", "worldserver.exe" - VALUE "ProductName", "worldserver" - VALUE "ProductVersion", STRPRODUCTVER + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", "TrinityCore World Server Daemon" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "worldserver" + VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR + VALUE "OriginalFilename", "worldserver.exe" + VALUE "ProductName", "TrinityCore World Server" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR END END + BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x800, 1200 |