diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/genrevision/CMakeLists.txt | 37 | ||||
| -rw-r--r-- | src/genrevision/genrevision.cpp | 539 | ||||
| -rw-r--r-- | src/server/authserver/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/server/game/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/server/scripts/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/server/shared/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/server/worldserver/CMakeLists.txt | 4 |
7 files changed, 2 insertions, 588 deletions
diff --git a/src/genrevision/CMakeLists.txt b/src/genrevision/CMakeLists.txt deleted file mode 100644 index 88ce9f8e8e1..00000000000 --- a/src/genrevision/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/> -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -set(GENREV_SRC - genrevision.cpp -) -add_executable(genrev - ${GENREV_SRC} -) - -if( CMAKE_GENERATOR MATCHES "Visual Studio" ) - add_custom_target(revision.h ALL - COMMAND ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/genrev -m $(ConfigurationName) ${CMAKE_SOURCE_DIR} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - DEPENDS genrev - ) -elseif( CMAKE_GENERATOR MATCHES "Xcode" ) - add_custom_target(revision.h ALL - COMMAND ${CMAKE_BINARY_DIR}/src/genrevision/$(CONFIGURATION)/genrev -m ${CMAKE_BUILD_TYPE} ${CMAKE_SOURCE_DIR} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - DEPENDS genrev - ) -else() - add_custom_target(revision.h ALL - COMMAND ${CMAKE_BINARY_DIR}/src/genrevision/genrev -m ${CMAKE_BUILD_TYPE} ${CMAKE_SOURCE_DIR} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - DEPENDS genrev - ) -endif() - diff --git a/src/genrevision/genrevision.cpp b/src/genrevision/genrevision.cpp deleted file mode 100644 index 46e0fc2cbba..00000000000 --- a/src/genrevision/genrevision.cpp +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include <fstream> -#include <sstream> -#include <time.h> -#include <stdio.h> -#include <string.h> - -std::string build_directive = "Unknown"; - -struct RawData -{ - char hash_str[200]; - char rev_str[200]; - char date_str[200]; - char time_str[200]; -}; - -void extractDataFromSvn(FILE* EntriesFile, std::string /*path*/, bool url, RawData& data) -{ - char aux[800]; - char buf[200]; - char repo_str[200]; - char num_str[200]; - - if (fgets(aux, 600, EntriesFile) && fgets(buf, 200, EntriesFile)) - { - sscanf(buf, "%s", num_str); - if (fgets(buf, 200, EntriesFile)) - { - sscanf(buf, "%s", repo_str); - if (fgets(aux, 800, EntriesFile) && fgets(buf, 200, EntriesFile)) - { - sscanf(buf, "%10sT%8s", data.date_str, data.time_str); - if (url) - sprintf(data.rev_str,"%s at %s",num_str,repo_str); - else - strcpy(data.rev_str,num_str); - } - } - } -} - -void extractDataFromHG(FILE* EntriesFile, std::string /*path*/, bool /*url*/, RawData& data) -{ - char buf[200]; - - char hash_str[200]; - char revision_str[200]; - - bool found = false; - while (fgets(buf,200,EntriesFile)) - { - if (sscanf(buf,"%s %s",hash_str,revision_str)==2) - { - found = true; - break; - } - } - - if (!found) - { - strcpy(data.hash_str,"*"); - strcpy(data.rev_str,"*"); - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); - return; - } - - char thash_str[200]; - for (int i = 11; i >= 0; --i) - { - thash_str[i] = hash_str[i]; - } - thash_str[12] = '\0'; - - strcpy(data.hash_str,thash_str); - strcpy(data.rev_str,revision_str); - - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); -} - -void extractDataFromArchive(FILE* EntriesFile, std::string /*path*/, bool /*url*/, RawData& data) -{ - char buf[200]; - - char hash_str[200]; - //char revision_str[200]; - char repo_str[200]; - char branch_str[200]; - char latesttag_str[200]; - char latesttagdistance_str[200]; - - bool error = true; - if (fgets(buf,200,EntriesFile)) - { - sscanf(buf,"repo: %s",repo_str); - if (fgets(buf,200,EntriesFile)) - { - sscanf(buf,"node: %s",hash_str); - if (fgets(buf,200,EntriesFile)) - { - sscanf(buf,"branch: %s",branch_str); - if (fgets(buf,200,EntriesFile)) - { - sscanf(buf,"latesttag: %[^\n]",latesttag_str); - if (fgets(buf,200,EntriesFile)) - { - sscanf(buf,"latesttagdistance: %s",latesttagdistance_str); - error = false; - } - } - } - } - } - - if (!error) - { - char thash_str[200]; - for (int i = 11; i >= 0; --i) - thash_str[i] = hash_str[i]; - thash_str[12] = '\0'; - strcpy(data.hash_str,thash_str); - strcpy(data.rev_str,"Archive"); - } - else - { - strcpy(data.hash_str,"*"); - strcpy(data.rev_str,"*"); - } - - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); -} - -void extractDataFromGit(FILE* EntriesFile, std::string path, bool url, RawData& data) -{ - char buf[200]; - - char hash_str[200]; - char branch_str[200]; - char url_str[200]; - - bool found = false; - while (fgets(buf,200,EntriesFile)) - { - if (sscanf(buf,"%s\t\tbranch %s of %s",hash_str,branch_str,url_str)==3) - { - found = true; - break; - } - } - - if (!found) - { - strcpy(data.hash_str,"*"); - strcpy(data.rev_str,"*"); - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); - return; - } - - if (url) - { - char* host_str = NULL; - char* acc_str = NULL; - char* repo_str = NULL; - - // parse URL like git@github.com:mangos/mangos - char url_buf[200]; - int res = sscanf(url_str,"git@%s",url_buf); - if (res) - { - host_str = strtok(url_buf,":"); - acc_str = strtok(NULL,"/"); - repo_str = strtok(NULL," "); - } - else - { - res = sscanf(url_str,"git://%s",url_buf); - if (res) - { - host_str = strtok(url_buf,"/"); - acc_str = strtok(NULL,"/"); - repo_str = strtok(NULL,"."); - } - } - - // can generate nice link - if (res) - sprintf(data.rev_str,"http://%s/%s/%s/commit/%s",host_str,acc_str,repo_str,hash_str); - // unknonw URL format, use as-is - else - sprintf(data.rev_str,"%s at %s",hash_str,url_str); - } - else - strcpy(data.rev_str,hash_str); - strcpy(data.hash_str,"*"); - - - time_t rev_time = 0; - // extracting date/time - FILE* LogFile = fopen((path+".git/logs/HEAD").c_str(), "r"); - if (LogFile) - { - while (fgets(buf,200,LogFile)) - { - char buf2[200]; - char new_hash[200]; - int unix_time = 0; - int res2 = sscanf(buf,"%s %s %s %s %i",buf2,new_hash,buf2,buf2,&unix_time); - if (res2!=5) - continue; - - if (strcmp(hash_str,new_hash)) - continue; - - rev_time = unix_time; - break; - } - - fclose(LogFile); - - if (rev_time) - { - tm* aTm = localtime(&rev_time); - // YYYY year - // MM month (2 digits 01-12) - // DD day (2 digits 01-31) - // HH hour (2 digits 00-23) - // MM minutes (2 digits 00-59) - // SS seconds (2 digits 00-59) - sprintf(data.date_str,"%04d-%02d-%02d",aTm->tm_year+1900,aTm->tm_mon+1,aTm->tm_mday); - sprintf(data.time_str,"%02d:%02d:%02d",aTm->tm_hour,aTm->tm_min,aTm->tm_sec); - } - else - { - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); - } - } - else - { - strcpy(data.date_str,"*"); - strcpy(data.time_str,"*"); - } -} - -bool extractDataFromGit(std::string filename, std::string path, bool url, RawData& data) -{ - FILE* EntriesFile = fopen(filename.c_str(), "r"); - if (!EntriesFile) - return false; - - extractDataFromGit(EntriesFile,path,url,data); - fclose(EntriesFile); - return true; -} - -bool extractDataFromHG(std::string filename, std::string path, bool url, RawData& data) -{ - FILE* EntriesFile = fopen(filename.c_str(), "r"); - if (!EntriesFile) - return false; - - extractDataFromHG(EntriesFile,path,url,data); - fclose(EntriesFile); - return true; -} - -bool extractDataFromArchive(std::string filename, std::string path, bool url, RawData& data) -{ - FILE* EntriesFile = fopen(filename.c_str(), "r"); - if (!EntriesFile) - return false; - - extractDataFromArchive(EntriesFile,path,url,data); - fclose(EntriesFile); - return true; -} - -bool extractDataFromSvn(std::string filename, std::string path, bool url, RawData& data) -{ - FILE* EntriesFile = fopen(filename.c_str(), "r"); - if (!EntriesFile) - return false; - - extractDataFromSvn(EntriesFile,path,url,data); - fclose(EntriesFile); - return true; -} - -std::string generateHeader(char const* rev_str, char const* date_str, char const* time_str, char const* hash_str) -{ - std::ostringstream newData; - newData << "#ifndef __REVISION_H__" << std::endl; - newData << "#define __REVISION_H__" << std::endl; - newData << " #define _BUILD_DIRECTIVE \"" << build_directive << "\"" << std::endl; - newData << " #define _REVISION \"" << rev_str << "\"" << std::endl; - newData << " #define _HASH \"" << hash_str << "\"" << std::endl; - newData << " #define _REVISION_DATE \"" << date_str << "\"" << std::endl; - newData << " #define _REVISION_TIME \"" << time_str << "\""<< std::endl; - if (!strcmp(rev_str,"Archive") || !strcmp(rev_str,"*")) - { - newData << " #define FILEVER 0,0,0,0"<< std::endl; - newData << " #define PRODUCTVER 0,0,0,0"<< std::endl; - } - else - { - newData << " #define FILEVER 0,0," << rev_str << ",0"<< std::endl; - newData << " #define PRODUCTVER 0,0," << rev_str << ",0"<< std::endl; - } - newData << " #define STRFILEVER \"0, 0, " << rev_str << ", " << hash_str << "\""<< std::endl; - newData << " #define STRPRODUCTVER \"0, 0, " << rev_str << ", " << hash_str << "\""<< std::endl; - newData << "#endif // __REVISION_H__" << std::endl; - - return newData.str(); -} - -int main(int argc, char **argv) -{ - bool use_url = false; - bool file_prefered = true; - bool hg_prefered = false; - bool git_prefered = false; - bool svn_prefered = false; - std::string path; - - // Call: tool {options} [path] - // -f use cmake generated file (default) - // -h use hg prefered - // -g use git prefered - // -s use svn prefered - // -r use only revision (without repo URL) (default) - // -u include repositire URL as commit URL or "rev at URL" - // -m build mode string - for (int k = 1; k <= argc; ++k) - { - if (!argv[k] || !*argv[k]) - break; - - if (argv[k][0]!='-') - { - path = argv[k]; - if (path.size() > 0 && (path[path.size()-1]!='/' || path[path.size()-1]!='\\')) - path += '/'; - break; - } - - switch(argv[k][1]) - { - case 'f': - file_prefered = true; - hg_prefered = false; - git_prefered = false; - svn_prefered = false; - continue; - case 'h': - file_prefered = false; - hg_prefered = true; - git_prefered = false; - svn_prefered = false; - continue; - case 'g': - file_prefered = false; - hg_prefered = false; - git_prefered = true; - svn_prefered = false; - continue; - case 'r': - use_url = false; - continue; - case 's': - file_prefered = false; - hg_prefered = false; - git_prefered = false; - svn_prefered = true; - continue; - case 'u': - use_url = true; - continue; - case 'm': - build_directive = argv[++k]; - continue; - default: - printf("Unknown option %s",argv[k]); - return 1; - } - } - - /// new data extraction - std::string newData; - - { - RawData data; - - bool res = false; - - if (svn_prefered) - { - /// SVN data - res = extractDataFromSvn(path+".svn/entries",path,use_url,data); - if (!res) - res = extractDataFromSvn(path+"_svn/entries",path,use_url,data); - // HG data - if (!res) - res = extractDataFromHG(path+".hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+".hg/branch.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branch.cache",path,use_url,data); - // GIT data - if (!res) - res = extractDataFromGit(path+".git/FETCH_HEAD",path,use_url,data); - if (!res) - res = extractDataFromGit(path+"_git/FETCH_HEAD",path,use_url,data); - } - else if (git_prefered) - { - // GIT data - res = extractDataFromGit(path+".git/FETCH_HEAD",path,use_url,data); - if (!res) - res = extractDataFromGit(path+"_git/FETCH_HEAD",path,use_url,data); - // HG data - if (!res) - res = extractDataFromHG(path+".hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+".hg/branch.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branch.cache",path,use_url,data); - /// SVN data - if (!res) - res = extractDataFromSvn(path+".svn/entries",path,use_url,data); - if (!res) - res = extractDataFromSvn(path+"_svn/entries",path,use_url,data); - } - else if (hg_prefered) - { - // HG data - res = extractDataFromHG(path+".hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+".hg/branch.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branch.cache",path,use_url,data); - /// SVN data - if (!res) - res = extractDataFromSvn(path+".svn/entries",path,use_url,data); - if (!res) - res = extractDataFromSvn(path+"_svn/entries",path,use_url,data); - // GIT data - if (!res) - res = extractDataFromGit(path+".git/FETCH_HEAD",path,use_url,data); - if (!res) - res = extractDataFromGit(path+"_git/FETCH_HEAD",path,use_url,data); - } - else if (file_prefered) - { - res = extractDataFromHG("hg_revision","/",use_url,data); - // HG data - if (!res) - res = extractDataFromHG(path+".hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branchheads.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+".hg/branch.cache",path,use_url,data); - if (!res) - res = extractDataFromHG(path+"_hg/branch.cache",path,use_url,data); - /// SVN data - if (!res) - res = extractDataFromSvn(path+".svn/entries",path,use_url,data); - if (!res) - res = extractDataFromSvn(path+"_svn/entries",path,use_url,data); - // GIT data - if (!res) - res = extractDataFromGit(path+".git/FETCH_HEAD",path,use_url,data); - if (!res) - res = extractDataFromGit(path+"_git/FETCH_HEAD",path,use_url,data); - } - if (!res) - res = extractDataFromArchive(path+".hg_archival.txt",path,use_url,data); - if (!res) - res = extractDataFromArchive(path+"_hg_archival.txt",path,use_url,data); - if (res) - newData = generateHeader(data.rev_str,data.date_str,data.time_str,data.hash_str); - else - newData = generateHeader("*", "*", "*", "*"); - } - - /// get existed header data for compare - std::string oldData; - - if (FILE* HeaderFile = fopen("revision.h","rb")) - { - while (!feof(HeaderFile)) - { - int c = fgetc(HeaderFile); - if (c < 0) - break; - oldData += (char)c; - } - - fclose(HeaderFile); - } - - /// update header only if different data - if (newData != oldData) - { - if (FILE* OutputFile = fopen("revision.h","wb")) - { - fprintf(OutputFile,"%s",newData.c_str()); - fclose(OutputFile); - } - } - - return 0; -} diff --git a/src/server/authserver/CMakeLists.txt b/src/server/authserver/CMakeLists.txt index 3a862d607ef..6dbc11b2262 100644 --- a/src/server/authserver/CMakeLists.txt +++ b/src/server/authserver/CMakeLists.txt @@ -68,10 +68,8 @@ add_executable(authserver ${authserver_SRCS} ) -add_dependencies(authserver revision.h) - if( NOT WIN32 ) - add_definitions(-D_TRINITY_REALM_CONFIG='"${CONF_DIR}/authserver.conf"') + add_definitions(-D_TRINITY_REALM_CONFIG="${CONF_DIR}/authserver.conf") endif() if( UNIX ) diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index ffc8c5e49de..16ba912a18a 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -198,8 +198,6 @@ include_directories( add_library(game STATIC ${game_STAT_SRCS}) -add_dependencies(game revision.h) - # Generate precompiled header if( USE_COREPCH ) if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 0231a0ad1fd..3fea1db2fd1 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -141,8 +141,6 @@ include_directories( add_library(scripts STATIC ${scripts_STAT_SRCS}) -add_dependencies(scripts genrev) - # Generate precompiled header if( USE_SCRIPTPCH ) if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index 75b7a2164d7..8b309e05582 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -76,8 +76,6 @@ include_directories( add_library(shared STATIC ${shared_STAT_SRCS}) -add_dependencies(shared revision.h) - target_link_libraries(shared ${ACE_LIBRARY} ) diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 4df35a227eb..5c713af5057 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -146,11 +146,9 @@ set(worldserver_LINK_FLAGS "") add_executable(worldserver ${worldserver_SRCS}) if( NOT WIN32 ) - add_definitions(-D_TRINITY_CORE_CONFIG='"${CONF_DIR}/worldserver.conf"') + add_definitions(-D_TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf") endif() -add_dependencies(worldserver revision.h) - if( UNIX ) set(worldserver_LINK_FLAGS "-pthread -lncurses ${worldserver_LINK_FLAGS}") endif() |
