From 624c9af7f8409eb67d108b8a0932732368e003cb Mon Sep 17 00:00:00 2001 From: titiger Date: Wed, 21 Jan 2015 20:28:42 +0100 Subject: [PATCH 01/42] updated configuration for nko language --- data/glest_game | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/glest_game b/data/glest_game index 12bb08b1..c29e5630 160000 --- a/data/glest_game +++ b/data/glest_game @@ -1 +1 @@ -Subproject commit 12bb08b14d36fb86a327bcf480872884ce9121ec +Subproject commit c29e5630cad15a160ab201b1769b2c27f5da8359 From 150bf34260df414b317c5ec2285ede13c4b55595 Mon Sep 17 00:00:00 2001 From: filux Date: Fri, 23 Jan 2015 17:05:01 +0100 Subject: [PATCH 02/42] updated data hash --- data/glest_game | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/glest_game b/data/glest_game index c29e5630..b2aae2b3 160000 --- a/data/glest_game +++ b/data/glest_game @@ -1 +1 @@ -Subproject commit c29e5630cad15a160ab201b1769b2c27f5da8359 +Subproject commit b2aae2b36ab4ec227f114eb726ec821d9ce5eb73 From ae5668ab52062d3430ad16f8c49cd1bf455a06ac Mon Sep 17 00:00:00 2001 From: titiger Date: Fri, 23 Jan 2015 21:18:57 +0100 Subject: [PATCH 03/42] version set to 3.12-dev --- mk/linux/mg-version.sh | 6 +++--- mk/linux/mojosetup/megaglest-installer/scripts/config.lua | 2 +- mk/windoze/Installer/MegaGlestInstaller.nsi | 4 ++-- mk/windoze/Installer/MegaGlestUpdater.nsi | 6 +++--- source/glest_game/facilities/game_util.cpp | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mk/linux/mg-version.sh b/mk/linux/mg-version.sh index 1334a9a8..c37441dc 100755 --- a/mk/linux/mg-version.sh +++ b/mk/linux/mg-version.sh @@ -4,9 +4,9 @@ # Written by Mark Vejvoda # Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ -OLD_MG_VERSION=3.9.1 -OLD_MG_VERSION_BINARY=3.9.1 -MG_VERSION=3.11.0 +OLD_MG_VERSION=3.11.0 +OLD_MG_VERSION_BINARY=3.11.0 +MG_VERSION=3.12-dev if [ "$1" = "--oldversion" ]; then echo "$OLD_MG_VERSION" diff --git a/mk/linux/mojosetup/megaglest-installer/scripts/config.lua b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua index d5508439..d9c4197b 100644 --- a/mk/linux/mojosetup/megaglest-installer/scripts/config.lua +++ b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua @@ -1,5 +1,5 @@ local GAME_INSTALL_SIZE = 680000000; -local GAME_VERSION = "3.11.0"; +local GAME_VERSION = "3.12-dev"; local _ = MojoSetup.translate diff --git a/mk/windoze/Installer/MegaGlestInstaller.nsi b/mk/windoze/Installer/MegaGlestInstaller.nsi index a70e64e7..ff280e01 100644 --- a/mk/windoze/Installer/MegaGlestInstaller.nsi +++ b/mk/windoze/Installer/MegaGlestInstaller.nsi @@ -3,8 +3,8 @@ !define APNAME MegaGlest !define APNAME_OLD Mega-Glest -!define APVER_OLD 3.9.1 -!define APVER 3.11.0 +!define APVER_OLD 3.11.0 +!define APVER 3.12-dev Name "${APNAME} ${APVER}" SetCompressor /FINAL /SOLID lzma diff --git a/mk/windoze/Installer/MegaGlestUpdater.nsi b/mk/windoze/Installer/MegaGlestUpdater.nsi index 2afb3d96..b1efc649 100644 --- a/mk/windoze/Installer/MegaGlestUpdater.nsi +++ b/mk/windoze/Installer/MegaGlestUpdater.nsi @@ -2,10 +2,10 @@ ; General Attributes !define APNAME MegaGlest -!define APVER 3.11.0 +!define APVER 3.12-dev !define APNAME_OLD Mega-Glest -!define APVER_OLD 3.9.1 -!define APVER_UPDATE 3.11.0 +!define APVER_OLD 3.11.0 +!define APVER_UPDATE 3.12-dev Name "${APNAME} ${APVER_UPDATE}" SetCompressor /FINAL /SOLID lzma diff --git a/source/glest_game/facilities/game_util.cpp b/source/glest_game/facilities/game_util.cpp index 6fd7eead..fae6f020 100644 --- a/source/glest_game/facilities/game_util.cpp +++ b/source/glest_game/facilities/game_util.cpp @@ -32,7 +32,7 @@ const char *mailString = " http://bugs.megaglest.org"; // !! Use minor versions !! Only major and minor version control compatibility! // typical version numbers look like this: v3.11-beta1.0 v3.12-dev v3.12.0 // don't forget to update mk/linux/mg-version.sh -const string glestVersionString = "v3.11.0"; +const string glestVersionString = "v3.12-dev"; const string lastCompatibleSaveGameVersionString = "v3.9.0"; #if defined(GITVERSION) From 26fad480c6a450de22bbed5ade330190b3896b7d Mon Sep 17 00:00:00 2001 From: titiger Date: Fri, 23 Jan 2015 23:52:18 +0100 Subject: [PATCH 04/42] lets see if this fixes the map editor trouble with 2.8.x wxwidget in linux --- source/glest_map_editor/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index e9c9b7c7..adbfc520 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -143,7 +143,7 @@ void MainWindow::init(string fname) { #elif wxCHECK_VERSION(2, 9, 1) #else - //glCanvas->SetCurrent(); + glCanvas->SetCurrent(); //printf("setcurrent #2\n"); #endif From 652f482240f9c3044d56ce1c485ef6e31b191c0a Mon Sep 17 00:00:00 2001 From: filux Date: Sun, 25 Jan 2015 09:01:23 +0100 Subject: [PATCH 05/42] fixed #48, fixed #49 Source tarball: "fatal: Not a git repository" at each compilation step; CMake gets the version wrong in 3.11.0. --- CMakeLists.txt | 122 +++++++++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cf7db5cc..3d2db2da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,9 @@ endif(NOT DEFINED CMAKE_BUILD_TYPE) # add additional CMake modules MESSAGE(STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}") list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/mk/cmake/Modules) - -MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}") - +IF(CMAKE_BUILD_TYPE) + MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}") +ENDIF() IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") SET(CMAKE_COMPILER_IS_GNUCXX "YES") # ADD_DEFINITIONS("-Qunused-arguments -Wno-switch") @@ -45,38 +45,35 @@ include(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/SpecialMacros.cmake) SET(PKG_NAME "megaglest") # read version -file(READ ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp MG_VERSION_H_CONTENTS) -# find the version string -# +FILE(READ ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp MG_VERSION_H_CONTENTS) MESSAGE(STATUS "Determining version number system type to use:") -string (REGEX MATCH "\"v([0-9]).([0-9]).([0-9].*)[^\";]" _threePartMatch ${MG_VERSION_H_CONTENTS}) -if(NOT _threePartMatch) - MESSAGE(STATUS "** Trying 2 part versioning] ") - string (REGEX MATCH "\"v([0-9]).([0-9].*)[^\";]" _threePartMatch ${MG_VERSION_H_CONTENTS}) - - if (_threePartMatch) - # parse the parts of the version string - STRING(REGEX REPLACE "\"v([0-9])\\.[0-9].*" "\\1" VER_MAJOR "${_threePartMatch}") - STRING(REGEX REPLACE "\"v[0-9]\\.([0-9]).*" "\\1" VER_MINOR "${_threePartMatch}") - - MESSAGE(STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}] ") - endif() -# parse the version string -else() - MESSAGE(STATUS "** Trying 3 part versioning] ") - if (_threePartMatch) - # parse the parts of the version string - STRING(REGEX REPLACE "\"v([0-9])\\.[0-9]\\.[0-9].*" "\\1" VER_MAJOR "${_threePartMatch}") - STRING(REGEX REPLACE "\"v[0-9]\\.([0-9])\\.[0-9].*" "\\1" VER_MINOR "${_threePartMatch}") - STRING(REGEX REPLACE "\"v[0-9]\\.[0-9]\\.([0-9]).*" "\\1" VER_RELEASE "${_threePartMatch}") - - #MESSAGE(STATUS "******* TEST3 MegaGlest Version #1 is [${VER_MAJOR}] ") - #MESSAGE(STATUS "******* TEST3 MegaGlest Version #2 is [${VER_MINOR}] ") - #MESSAGE(STATUS "******* TEST3 MegaGlest Version #3 is [${VER_RELEASE}] ") - - MESSAGE(STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}] ") - endif() -endif() +SET(Begin_otv_string "string glestVersionString") +STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)(\\.)([^\\.]*)(\\.)([^\"\\.;]*)\";" _threePartMatch "${MG_VERSION_H_CONTENTS}") +STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)(\\.)([^\"\\.;]*)\";" _twoPartMatch "${MG_VERSION_H_CONTENTS}") +STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\"\\.;]*)\";" _onePartMatch "${MG_VERSION_H_CONTENTS}") +IF(_threePartMatch) + MESSAGE(STATUS "** Trying 3 part versioning ") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)\\.[^\\.]*\\..*" "\\1" VER_MAJOR "${_threePartMatch}") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.([^\\.]*)\\..*" "\\1" VER_MINOR "${_threePartMatch}") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.[^\\.]*\\.([^\"\\.;]*).*" "\\1" VER_PATCH "${_threePartMatch}") + SET(MEGAGLEST_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}") +ELSEIF(_twoPartMatch) + MESSAGE(STATUS "** Trying 2 part versioning ") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)\\..*" "\\1" VER_MAJOR "${_twoPartMatch}") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.([^\"\\.;]*).*" "\\1" VER_MINOR "${_twoPartMatch}") + SET(VER_PATCH "0") + SET(MEGAGLEST_VERSION "${VER_MAJOR}.${VER_MINOR}") +ELSEIF(_onePartMatch) + MESSAGE(STATUS "** Trying 1 part versioning ") + STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\"\\.;]*).*" "\\1" VER_MAJOR "${_onePartMatch}") + SET(VER_MINOR "0") + SET(VER_PATCH "0") + SET(MEGAGLEST_VERSION "${VER_MAJOR}") +ENDIF() +FOREACH(ver_var VER_MAJOR;VER_MINOR;VER_PATCH;MEGAGLEST_VERSION) + STRING(REGEX REPLACE "[ \t]" "" "${ver_var}" "${${ver_var}}") +ENDFOREACH() +MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ") ## Compiler flags, CPACK configuration and other Apple specific code. IF(APPLE) @@ -215,17 +212,17 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s") ## Strip binary ENDIF() - # Get the git revision info for the binary - SET(HAS_GIT "FALSE") - SET(GIT_LIVE_REV_CMD "") + # Get the git revision info for the binary + SET(HAS_GIT "FALSE") + SET(GIT_LIVE_REV_CMD "") OPTION(WANT_GIT_STAMP "use git revision stamp" ON) IF(WANT_GIT_STAMP) # The stuff below gets GIT Global Revision # but ONLY when calling cmake! # the FindGit.cmake module is part of the standard distribution include(FindGit) - - IF(GIT_FOUND) + + IF(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git/") SET(HAS_GIT "TRUE") MESSAGE(STATUS "Found GIT and using GIT version stamping...") @@ -248,14 +245,13 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) SET(GIT_LIVE_REV_CMD "`git rev-list HEAD --count`.`git log -1 --format=%h`") MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]") - - ENDIF() - ENDIF() - IF(CMAKE_GENERATOR STREQUAL Xcode) - SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''") - ELSE() - SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'") + IF(CMAKE_GENERATOR STREQUAL Xcode) + SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''") + ELSE() + SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'") + ENDIF() + ENDIF() ENDIF() IF(CMAKE_INSTALL_PREFIX STREQUAL "") @@ -288,11 +284,18 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) MESSAGE(STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]") ENDIF() - SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + IF(HAS_GIT STREQUAL "TRUE") + SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD}") + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD}") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD}") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD}") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD}") + ENDIF() + SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") # We do some funky character escaping to get the right stuff written out to # the final Makefile so we get the GIT Global Revsion # @@ -308,9 +311,9 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) message("CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") ELSEIF( CMAKE_BUILD_TYPE STREQUAL Release ) message("CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO ) + ELSEIF( CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo ) message("CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL MINSIZEREL ) + ELSEIF( CMAKE_BUILD_TYPE STREQUAL MinSizeRel ) message("CMAKE_CXX_FLAGS_MINSIZEREL: ${CMAKE_CXX_FLAGS_MINSIZEREL}") ENDIF() @@ -388,9 +391,10 @@ SET(CPACK_PACKAGE_VENDOR "megaglest.org") #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest") -SET(CPACK_PACKAGE_VERSION_MAJOR ${VER_MAJOR}) -SET(CPACK_PACKAGE_VERSION_MINOR ${VER_MINOR}) -SET(CPACK_PACKAGE_VERSION_PATCH ${VER_RELEASE}) +SET(CPACK_PACKAGE_VERSION "${MEGAGLEST_VERSION}") +SET(CPACK_PACKAGE_VERSION_MAJOR "${VER_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${VER_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${VER_PATCH}") # Debian specific generator options @@ -417,6 +421,7 @@ IF(NOT DEFINED CPACK_GENERATOR) libxml2-dev, libz-dev, libfribidi-dev") + # FIXME ^ cpack configuration should be fixed and tested #find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems") #if(DPKG_PROGRAM) @@ -441,12 +446,9 @@ get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITION foreach( d ${DirDefs} ) message( STATUS "=====> Found Define: " ${d} ) endforeach() -message( STATUS "=====> DirDefs: " ${DirDefs} ) +#MESSAGE( STATUS "=====> DirDefs: " ${DirDefs} ) #MESSAGE(STATUS "*** Compiler definitions are [${COMPILE_DEFINITIONS}]") MARK_AS_ADVANCED(SDLMAIN_LIBRARY) MARK_AS_ADVANCED(SDL_INCLUDE_DIR) MARK_AS_ADVANCED(SDL_LIBRARY) - - - From 045f171b9accaaba793a7a326bef64a606686277 Mon Sep 17 00:00:00 2001 From: filux Date: Sun, 25 Jan 2015 12:57:12 +0100 Subject: [PATCH 06/42] linux's binary without glest-dev.ini --- mk/linux/make-binary-archive.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/mk/linux/make-binary-archive.sh b/mk/linux/make-binary-archive.sh index 5c9bb4c9..69a48bc0 100755 --- a/mk/linux/make-binary-archive.sh +++ b/mk/linux/make-binary-archive.sh @@ -59,6 +59,7 @@ cp *.bmp "$RELEASEDIR/" cp *.png "$RELEASEDIR/" cp *.xpm "$RELEASEDIR/" cp {../shared/,}*.ini "$RELEASEDIR/" +if [ -e "$RELEASEDIR/glest-dev.ini" ]; then rm "$RELEASEDIR/glest-dev.ini"; fi cp megaglest "$RELEASEDIR/" cp megaglest_editor "$RELEASEDIR/" cp megaglest_g3dviewer "$RELEASEDIR/" From 791dd96f97b3e922f79a8c3fa14dbb968b275477 Mon Sep 17 00:00:00 2001 From: titiger Date: Sun, 25 Jan 2015 20:01:29 +0100 Subject: [PATCH 07/42] bad translation key for "Healthbar" fixed in options menu. --- source/glest_game/menu/menu_state_options.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/glest_game/menu/menu_state_options.cpp b/source/glest_game/menu/menu_state_options.cpp index 6ba51bf0..1122591c 100644 --- a/source/glest_game/menu/menu_state_options.cpp +++ b/source/glest_game/menu/menu_state_options.cpp @@ -411,7 +411,7 @@ void MenuStateOptions::reloadUI() { buttonKeyboardSetup.setText(lang.getString("Keyboardsetup")); labelVisibleHud.setText(lang.getString("VisibleHUD")); - labelHealthBars.setText(lang.getString("HealthBars")); + labelHealthBars.setText(lang.getString("Healthbar")); labelChatStaysActive.setText(lang.getString("ChatStaysActive")); labelTimeDisplay.setText(lang.getString("TimeDisplay")); From 3433eb5835892491bd4d6cab9270b216ed465851 Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 26 Jan 2015 22:32:08 +0100 Subject: [PATCH 08/42] healthbar default set to "if needed" --- source/glest_game/game/game.cpp | 2 +- source/glest_game/menu/menu_state_options.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index e073ad02..7e5075be 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -240,7 +240,7 @@ void Game::resetMembers() { scrollSpeed = Config::getInstance().getFloat("UiScrollSpeed","1.5"); photoModeEnabled = Config::getInstance().getBool("PhotoMode","false"); - healthbarMode = Config::getInstance().getInt("HealthBarMode","0"); + healthbarMode = Config::getInstance().getInt("HealthBarMode","4"); visibleHUD = Config::getInstance().getBool("VisibleHud","true"); timeDisplay = Config::getInstance().getBool("TimeDisplay","true"); withRainEffect = Config::getInstance().getBool("RainEffect","true"); diff --git a/source/glest_game/menu/menu_state_options.cpp b/source/glest_game/menu/menu_state_options.cpp index 1122591c..506959b7 100644 --- a/source/glest_game/menu/menu_state_options.cpp +++ b/source/glest_game/menu/menu_state_options.cpp @@ -240,7 +240,7 @@ MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu, Program listBoxHealthBars.pushBackItem(lang.getString("HealthbarsSelected")); listBoxHealthBars.pushBackItem(lang.getString("HealthbarsSelectedOrNeeded")); - int hpMode=config.getInt("HealthBarMode","0"); + int hpMode=config.getInt("HealthBarMode","4"); int hpIndex=0; switch (hpMode) { case hbvUndefined: From 4d7e0c1f4daee8e112f9b78c69c464fb9c5fa82b Mon Sep 17 00:00:00 2001 From: titiger Date: Wed, 28 Jan 2015 01:59:17 +0100 Subject: [PATCH 09/42] modcenter download should be available again in menu state connected. --- source/glest_game/menu/menu_state_connected_game.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index 09e26ca8..1e67ff5f 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -4607,7 +4607,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings, // Is the item in the mod center? MutexSafeWrapper safeMutexThread((modHttpServerThread != NULL ? modHttpServerThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__)); - if(tilesetCacheList.find(getMissingMapFromFTPServer) == tilesetCacheList.end()) { + if(tilesetCacheList.find(getMissingTilesetFromFTPServer) == tilesetCacheList.end()) { ftpMessageBox.init(lang.getString("Yes"),lang.getString("NoDownload")); } else { @@ -4775,7 +4775,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings, // Is the item in the mod center? MutexSafeWrapper safeMutexThread((modHttpServerThread != NULL ? modHttpServerThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__)); - if(mapCacheList.find(getMissingTechtreeFromFTPServer) == mapCacheList.end()) { + if(mapCacheList.find(getMissingMapFromFTPServer) == mapCacheList.end()) { ftpMessageBox.init(lang.getString("Yes"),lang.getString("NoDownload")); } else { From 2efa255ca3b7ca8b409d41dd68cacc96e88149d8 Mon Sep 17 00:00:00 2001 From: titiger Date: Thu, 29 Jan 2015 11:42:13 +0100 Subject: [PATCH 10/42] no more double click in minimap Double click is no more handled when mousepointer is over minimap. This often resulted in unselected units when commanding via minimap. --- source/glest_game/game/game.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index 7e5075be..22651b4c 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -4355,17 +4355,21 @@ void Game::mouseDoubleClickLeft(int x, int y) { const Metrics &metrics= Metrics::getInstance(); - //display panel - if(metrics.isInDisplay(x, y) && !gui.isSelectingPos()) { - int xd= x - metrics.getDisplayX(); - int yd= y - metrics.getDisplayY(); - if(gui.mouseValid(xd, yd)){ - return; - } + if(metrics.isInMinimap(x, y)){ + // no double click on minimap + } + else { + //display panel + if(metrics.isInDisplay(x, y) && !gui.isSelectingPos()) { + int xd= x - metrics.getDisplayX(); + int yd= y - metrics.getDisplayY(); + if(gui.mouseValid(xd, yd)){ + return; + } + } + //graphics panel + gui.mouseDoubleClickLeftGraphics(x, y); } - - //graphics panel - gui.mouseDoubleClickLeftGraphics(x, y); } catch(const exception &ex) { char szBuf[8096]=""; From 9a25ca1ba353c3103be78512a3552a0de3e3d087 Mon Sep 17 00:00:00 2001 From: titiger Date: Thu, 29 Jan 2015 17:04:15 +0100 Subject: [PATCH 11/42] nicer tilesets as default --- data/glest_game | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/glest_game b/data/glest_game index b2aae2b3..e6b9cf87 160000 --- a/data/glest_game +++ b/data/glest_game @@ -1 +1 @@ -Subproject commit b2aae2b36ab4ec227f114eb726ec821d9ce5eb73 +Subproject commit e6b9cf878646c294a2d340ca3d36d6cea3d84dd6 From 9aff9842a46b63cc783d708a9a80a4f7af20ee58 Mon Sep 17 00:00:00 2001 From: titiger Date: Thu, 29 Jan 2015 17:05:07 +0100 Subject: [PATCH 12/42] camera start position shows main building in center. --- source/glest_game/game/game.cpp | 47 +++++++++++++-------------------- source/glest_game/game/game.h | 1 + 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index 22651b4c..5536b5f8 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -1334,39 +1334,13 @@ void Game::init(bool initForPreviewOnly) { } if(this->loadGameNode == NULL) { - gameCamera.init(map->getW(), map->getH()); - - // camera default height calculation - if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()getCameraHeight()){ - gameCamera.setCalculatedDefault(map->getCameraHeight()); - } - else if(gameCamera.getCalculatedDefault()getMaxMapHeight()+13.0f){ - gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f); - } - - if(world.getThisFaction() != NULL) { - const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex()); - gameCamera.setPos(Vec2f(v.x, v.y)); - } + initCamera(map); } else { gui.loadGame(loadGameNode,&world); if(inJoinGameLoading == true) { - gameCamera.init(map->getW(), map->getH()); - - // camera default height calculation - if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()getCameraHeight()){ - gameCamera.setCalculatedDefault(map->getCameraHeight()); - } - else if(gameCamera.getCalculatedDefault()getMaxMapHeight()+13.0f){ - gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f); - } - - if(world.getThisFaction() != NULL) { - const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex()); - gameCamera.setPos(Vec2f(v.x, v.y)); - } + initCamera(map); } } @@ -1634,6 +1608,23 @@ void Game::init(bool initForPreviewOnly) { } } +void Game::initCamera(Map *map){ + gameCamera.init(map->getW(), map->getH()); + + // camera default height calculation + if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()getCameraHeight()){ + gameCamera.setCalculatedDefault(map->getCameraHeight()); + } + else if(gameCamera.getCalculatedDefault()getMaxMapHeight()+13.0f){ + gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f); + } + + if(world.getThisFaction() != NULL) { + const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex()); + gameCamera.setPos(Vec2f(v.x, v.y+gameCamera.getCalculatedDefault()/2)); + } +} + // ==================== update ==================== void Game::reInitGUI() { diff --git a/source/glest_game/game/game.h b/source/glest_game/game/game.h index a3b22d9c..1b5a1c67 100644 --- a/source/glest_game/game/game.h +++ b/source/glest_game/game/game.h @@ -408,6 +408,7 @@ private: void checkWinnerStandardHeadlessOrObserver(); void checkWinnerStandardPlayer(); std::map getTeamsAlive(); + void initCamera(Map *map); virtual bool clientLagHandler(int slotIndex,bool networkPauseGameForLaggedClients); }; From 504dc7dfd8078b274c2cda27b4130f42af767bf2 Mon Sep 17 00:00:00 2001 From: titiger Date: Thu, 29 Jan 2015 21:59:05 +0100 Subject: [PATCH 13/42] no more false clicks on minimap if minimap was displayed outside of map, it was not possible to give mouse click commands there. --- source/glest_game/gui/gui.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/glest_game/gui/gui.cpp b/source/glest_game/gui/gui.cpp index 81ae45f3..cb15b307 100644 --- a/source/glest_game/gui/gui.cpp +++ b/source/glest_game/gui/gui.cpp @@ -257,8 +257,8 @@ void Gui::mouseDownLeftGraphics(int x, int y, bool prepared) { if(selectingPos) { //give standard orders Vec2i targetPos=game->getMouseCellPos(); - if(game->isValidMouseCellPos() && - world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) { + if(prepared || (game->isValidMouseCellPos() && + world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) { giveTwoClickOrders(x, y, prepared); } resetState(); @@ -267,8 +267,8 @@ void Gui::mouseDownLeftGraphics(int x, int y, bool prepared) { else if(selectingMeetingPoint) { if(selection.isCommandable()) { Vec2i targetPos=game->getMouseCellPos(); - if(game->isValidMouseCellPos() && - world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) { + if(prepared || (game->isValidMouseCellPos() && + world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) { commander->trySetMeetingPoint(selection.getFrontUnit(), targetPos); } } @@ -288,15 +288,15 @@ void Gui::mouseDownRightGraphics(int x, int y , bool prepared) { else if(selection.isCommandable()) { if(prepared) { Vec2i targetPos=game->getMouseCellPos(); - if(game->isValidMouseCellPos() && - world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) { + if(prepared || (game->isValidMouseCellPos() && + world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true )) { givePreparedDefaultOrders(x, y); } } else { Vec2i targetPos=game->getMouseCellPos(); - if(game->isValidMouseCellPos() && - world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) { + if(prepared || (game->isValidMouseCellPos() && + world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) { giveDefaultOrders(x, y); } } From 9977fd2606f041a386eca3316bba31f18b72dc90 Mon Sep 17 00:00:00 2001 From: filux Date: Sat, 31 Jan 2015 10:30:19 +0100 Subject: [PATCH 14/42] fixed 'Not a git repository' bug related with real out of source build from the git repository --- CMakeLists.txt | 2 +- source/g3d_viewer/CMakeLists.txt | 2 +- source/glest_game/CMakeLists.txt | 2 +- source/glest_map_editor/CMakeLists.txt | 2 +- source/shared_lib/CMakeLists.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d2db2da..32ce6c0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -242,7 +242,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) OUTPUT_STRIP_TRAILING_WHITESPACE ) - SET(GIT_LIVE_REV_CMD "`git rev-list HEAD --count`.`git log -1 --format=%h`") + SET(GIT_LIVE_REV_CMD "`cd '${PROJECT_SOURCE_DIR}' && git rev-list HEAD --count`.`cd '${PROJECT_SOURCE_DIR}' && git log -1 --format=%h`") MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]") diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index ccad19e3..b9fab2bf 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -163,7 +163,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) IF(EXISTS ${HELP2MAN}) MESSAGE("***-- Found help2man: ${HELP2MAN} about to build manpage in [${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}]") - SET(MG_MANPAGE_DESCRIPTION "G3D Model editor for the popular 3D realtime stragegy game") + SET(MG_MANPAGE_DESCRIPTION "G3D Model editor for the popular 3D realtime strategy game") IF(EXISTS ${XVFB_EXEC}) MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} about to build manpage with it.") diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index eabc8665..f8255048 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -317,7 +317,7 @@ IF(BUILD_MEGAGLEST) DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}data/core/misc_textures OPTIONAL REGEX "/.git" EXCLUDE) - MESSAGE(STATUS "**Source package detected git folder structure.") + #MESSAGE(STATUS "**Source package detected git folder structure.") # Installation of the program desktop file INSTALL(FILES diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index 33599e66..0651be77 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -156,7 +156,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) IF(EXISTS ${HELP2MAN}) MESSAGE("***-- Found help2man: ${HELP2MAN} about to build manpage in [${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}]") - SET(MG_MANPAGE_DESCRIPTION "Map editor for the popular 3D realtime stragegy game") + SET(MG_MANPAGE_DESCRIPTION "Map editor for the popular 3D realtime strategy game") IF(EXISTS ${XVFB_EXEC}) MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} about to build manpage with it.") diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index 75663f32..a9443b47 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -455,7 +455,7 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF) IF(NOT WIN32) ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) - MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]") + #MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]") ELSE() SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) From 5eeac92fb4f7e114241de16ca439b6a0fbbc8c95 Mon Sep 17 00:00:00 2001 From: filux Date: Sat, 31 Jan 2015 11:49:07 +0100 Subject: [PATCH 15/42] refreshed list of dependencies --- mk/linux/setupBuildDeps.sh | 130 ++++++++++++++++++++----------------- 1 file changed, 69 insertions(+), 61 deletions(-) diff --git a/mk/linux/setupBuildDeps.sh b/mk/linux/setupBuildDeps.sh index 5517f5bb..c30b70d3 100755 --- a/mk/linux/setupBuildDeps.sh +++ b/mk/linux/setupBuildDeps.sh @@ -106,121 +106,117 @@ error_during_installation () { echo 'If you can come up with something which works for you, please report back to us, too. Thanks!' } - - +if [ "$quiet" -eq "1" ]; then + APT_OPTIONS="$APT_OPTIONS -y -q" + URPMI_OPTIONS="$URPMI_OPTIONS -q --auto" +fi case $distribution in Debian) - if [ $quiet = 1 ]; then - APT_OPTIONS="$APT_OPTIONS -y -q" - fi case $release in - 6.0*|unstable) + oldstable|6|6.*) # No libvlc-dev since version (1.1.3) in Debian 6.0/Squeeze is incompatible, no libluajit-5.1-dev because it is not available on Debian 6.0/Squeeze, cf. http://glest.org/glest_board/?topic=8460 - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev' + installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev" $installcommand - if [ $? != 0 ]; then - error_during_installation; + if [ "$?" -ne "0" ]; then + error_during_installation; echo '' echo 'Be sure to have the squeeze-backports repository installed, it is required for libminiupnpc-dev.' - exit 1; + exit 1; fi ;; + stable|7|7.*) + installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev" + $installcommand + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi + ;; + testing|unstable|8|8.0|9|9.0) + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev" + $installcommand + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi + ;; *) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev' - unsupported_release - exit 1 + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev" + unsupported_release; exit 1 ;; esac ;; - Ubuntu) - if [ $quiet = 1 ]; then - APT_OPTIONS="$APT_OPTIONS -y -q" - fi + Ubuntu) case $release in - 8.04) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libcppunit-dev' - $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi - ;; 10.04) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew1.5-dev libftgl-dev libfribidi-dev libcppunit-dev' + #LTS + installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew1.5-dev libftgl-dev libfribidi-dev libcppunit-dev" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; - 11.10|12.04|12.10|13.04|13.10) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev' + 12.04|14.04) + #LTS + installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; - 14.04|14.10) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase3.0-dev libwxgtk3.0-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev' + 14.10) + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; - *) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev' + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev" unsupported_release exit 1 ;; esac ;; - LinuxMint) - if [ $quiet = 1 ]; then - APT_OPTIONS="$APT_OPTIONS -y -q" - fi + LinuxMint) case $release in - - 13|14|15|16) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev' + 13) + #LTS + installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; *) - installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev' + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev" unsupported_release exit 1 ;; esac ;; - SuSE|SUSE?LINUX|Opensuse*|openSUSE*) + SuSE|SUSE?LINUX|Opensuse*|openSUSE*) case $release in - 11.2|11.3|11.4|12.1) - installcommand='zypper install gcc gcc-c++ cmake libSDL-devel MesaGLw-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' + 11.4) + #LTS + installcommand="zypper install gcc gcc-c++ cmake libSDL-devel MesaGLw-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi - ;; - 12.2) - installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' - $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; 13.1) - installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' + #LTS + installcommand="zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel" $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi ;; *) - installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' + installcommand="zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel" unsupported_release exit 1 ;; esac ;; - Fedora) + Fedora) case $release in - 13|14|15|16|17|18) - installcommand='yum groupinstall development-tools' - $installcommand - if [ $? != 0 ]; then error_during_installation; exit 1; fi + #18) + # installcommand='yum groupinstall development-tools' + # $installcommand + # if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi - installcommand='yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' - $installcommand - ;; + # installcommand='yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' + # $installcommand + # if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi + # ;; *) installcommand='yum groupinstall "Development Tools"; yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel' unsupported_release @@ -229,6 +225,18 @@ case $distribution in esac ;; + Mageia) + if [ "$architecture" = "x86_64" ]; then lib="lib64"; else lib="lib"; fi + case $release in + *) + installcommand="urpmi $URPMI_OPTIONS gcc gcc-c++ cmake make ${lib}curl-devel ${lib}SDL-devel ${lib}openal-devel ${lib}lua-devel ${lib}jpeg-devel ${lib}png-devel ${lib}freetype6-devel ${lib}wxgtku2.9-devel ${lib}cppunit-devel ${lib}fribidi-devel ${lib}ftgl-devel ${lib}glew-devel ${lib}ogg-devel ${lib}vorbis-devel ${lib}miniupnpc-devel ${lib}ircclient-static-devel ${lib}vlc-devel ${lib}xml2-devel ${lib}x11-devel ${lib}mesagl1-devel ${lib}mesaglu1-devel" + # mageia uses link patches + unsupported_release + exit 1 + ;; + esac + ;; + archlinux) case $release in rolling) From 69e9dff75496d55c91ffb598a0327c72117be064 Mon Sep 17 00:00:00 2001 From: filux Date: Sat, 31 Jan 2015 11:53:59 +0100 Subject: [PATCH 16/42] better support for static build on debian --- mk/cmake/Modules/FindIrcclient.cmake | 4 +++- mk/linux/build-mg.sh | 10 ++++++++++ source/shared_lib/CMakeLists.txt | 25 ++++++++++++++++--------- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/mk/cmake/Modules/FindIrcclient.cmake b/mk/cmake/Modules/FindIrcclient.cmake index 4644a7c6..7559e127 100644 --- a/mk/cmake/Modules/FindIrcclient.cmake +++ b/mk/cmake/Modules/FindIrcclient.cmake @@ -46,7 +46,9 @@ OPTION(FORCE_IRCCLIENT_DYNAMIC_LIBS "force the use of dynamic libs for IRCCLIENT MESSAGE(STATUS "Force IRCCLient dynamic: ${FORCE_IRCCLIENT_DYNAMIC_LIBS}") IF(WANT_STATIC_LIBS AND NOT FORCE_IRCCLIENT_DYNAMIC_LIBS) - SET(IRCCLIENT_FIND_LIBRARIES libircclient.a) + SET(IRCCLIENT_FIND_LIBRARIES libircclient.a ircclient.a) +ELSE() + SET(IRCCLIENT_FIND_LIBRARIES libircclient ircclient) ENDIF() FIND_LIBRARY(IRCCLIENT_LIBRARY diff --git a/mk/linux/build-mg.sh b/mk/linux/build-mg.sh index f785c43f..cd85c5c6 100755 --- a/mk/linux/build-mg.sh +++ b/mk/linux/build-mg.sh @@ -140,6 +140,16 @@ echo ' [ '"$distribution"' ] [ '"$release"' ] [ '"$codename"' ] [ '"$architectur case $distribution in + Debian) + case $release in + 6.*|7.*) ;; + *) + echo 'Turning ON dynamic FTGL, LUA, JPEG, PNG, IRCCLIENT ...' + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFTGL_STATIC=OFF -DLUA_STATIC=OFF -DJPEG_STATIC=OFF -DPNG_STATIC=OFF -DFORCE_IRCCLIENT_DYNAMIC_LIBS=ON" + ;; + esac + ;; + SuSE|SUSE?LINUX|Opensuse) case $release in *) diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index a9443b47..9a4c7c9d 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -17,10 +17,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST INCLUDE (CheckIncludeFiles) -#Game options -option(ENABLE_FRIBIDI "Enable FriBIDi support" ON) -option(FORCE_LUA_5_1 "Force looking for LUA 5.1" OFF) -option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF) + #Game options + option(WANT_STATIC_LIBS "builds as many static libs as possible" OFF) + option(ENABLE_FRIBIDI "Enable FriBIDi support" ON) + option(FORCE_LUA_5_1 "Force looking for LUA 5.1" OFF) + option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF) IF(WIN32) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} @@ -115,10 +116,14 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS}) ENDIF() - OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF) - IF(WANT_STATIC_LIBS) - SET(JPEG_NAMES libjpeg.a ${JPEG_NAMES}) + OPTION(JPEG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) + OPTION(PNG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) + ENDIF() + IF(JPEG_STATIC) + SET(JPEG_NAMES libjpeg.a ${JPEG_NAMES}) + ELSE() + SET(JPEG_NAMES libjpeg ${JPEG_NAMES}) ENDIF() FIND_PACKAGE(JPEG REQUIRED) @@ -127,8 +132,10 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) ENDIF() - IF(WANT_STATIC_LIBS) - SET(PNG_NAMES libpng.a ${PNG_NAMES}) + IF(PNG_STATIC) + SET(PNG_NAMES libpng.a ${PNG_NAMES}) + ELSE() + SET(PNG_NAMES libpng ${PNG_NAMES}) ENDIF() FIND_PACKAGE(PNG REQUIRED) INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) From 5192c3f87f08c7477c971ee5124008f91c10b2b6 Mon Sep 17 00:00:00 2001 From: filux Date: Sun, 1 Feb 2015 15:44:24 +0100 Subject: [PATCH 17/42] proposition of different version number management --- mk/linux/build-mg.sh | 1 + mk/linux/mg-version-synch.sh | 117 ++++++++++++++++++++++++++--------- mk/linux/mg-version.sh | 9 +-- source/version.txt | 21 +++++++ 4 files changed, 116 insertions(+), 32 deletions(-) create mode 100644 source/version.txt diff --git a/mk/linux/build-mg.sh b/mk/linux/build-mg.sh index cd85c5c6..9b68bb0a 100755 --- a/mk/linux/build-mg.sh +++ b/mk/linux/build-mg.sh @@ -89,6 +89,7 @@ CLANG_BIN_PATH=$( which clang 2>/dev/null ) CLANGPP_BIN_PATH=$( which clang++ 2>/dev/null ) cd ${SCRIPTDIR} +./mg-version-synch.sh >/dev/null # Google breakpad integration (cross platform memory dumps) - OPTIONAL # Set this to the root path of your Google breakpad subversion working copy. diff --git a/mk/linux/mg-version-synch.sh b/mk/linux/mg-version-synch.sh index 75863f8f..3e646dc6 100755 --- a/mk/linux/mg-version-synch.sh +++ b/mk/linux/mg-version-synch.sh @@ -1,45 +1,106 @@ -#!/bin/bash +#!/bin/sh # Use this script to synchronize other scripts and installers with the version # in mg-version.sh for a Version Release # ---------------------------------------------------------------------------- # Written by Mark Vejvoda -# Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ +# Copyright (c) 2011-2015 Mark Vejvoda under GNU GPL v3.0+ CURRENT_VERSION=`./mg-version.sh --version` OLD_VERSION=`./mg-version.sh --oldversion_binary` - +VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" +LastCompatibleSaveGameVersion="$(awk -F '=' '/^LastCompatibleSaveGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +MapeditorVersion="$(awk -F '=' '/^MapeditorVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +G3dviewerVersion="$(awk -F '=' '/^G3dviewerVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +if [ "$(echo "$CURRENT_VERSION" | grep -v [a-zA-Z])" != "" ]; then modifymore="yes"; else modifymore="no"; fi +echo +echo '===== Updating Game ======' +# const string glestVersionString = "v3.12-dev"; +echo 'Game version # before:' +grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp +sed -i 's/^const string glestVersionString = "[^"]*";$/const string glestVersionString = "v'$CURRENT_VERSION'";/' ../../source/glest_game/facilities/game_util.cpp +echo 'Game version # after:' +grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp +echo +if [ "$modifymore" = "yes" ]; then + # const string lastCompatibleSaveGameVersionString = "v3.9.0"; + echo 'Compatible Save Game version # before:' + grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp + sed -i 's/^const string lastCompatibleSaveGameVersionString = "[^"]*";$/const string lastCompatibleSaveGameVersionString = "v'$LastCompatibleSaveGameVersion'";/' ../../source/glest_game/facilities/game_util.cpp + echo 'Compatible Save Game version # after:' + grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp + echo +fi +if [ "$modifymore" = "yes" ] && [ "$(git status >/dev/null 2>&1; echo "$?")" -eq "0" ]; then + # const string GIT_RawRev = "$4446.1a8673f$"; + GitCommitForRelease="`git rev-list HEAD --count`.`git log -1 --format=%h`"; + echo 'GitCommitForRelease # before:' + grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE" + grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp + sed -i 's/^GitCommitForRelease = "[^"]*";$/GitCommitForRelease = "'$GitCommitForRelease'";/' "$VERSION_INFO_FILE" + sed -i 's/^const string GIT_RawRev = "$[^"]*";$/const string GIT_RawRev = "$'$GitCommitForRelease'$";/' ../../source/glest_game/facilities/game_util.cpp + echo 'GitCommitForRelease # after:' + grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE" + grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp +fi +echo +if [ "$modifymore" = "yes" ]; then + echo '===== Updating Mapeditor ======' + # const string mapeditorVersionString = "v1.6.1"; + echo 'Mapeditor version # before:' + grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp + sed -i 's/^const string mapeditorVersionString = "[^"]*";$/const string mapeditorVersionString = "v'$MapeditorVersion'";/' ../../source/glest_map_editor/main.cpp + echo 'Mapeditor version # after:' + grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp + echo + echo '===== Updating G3dviewer ======' + # const string g3dviewerVersionString= "v1.3.6"; + echo 'G3dviewer version # before:' + grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp + sed -i 's/^const string g3dviewerVersionString= "[^"]*";$/const string g3dviewerVersionString= "v'$G3dviewerVersion'";/' ../../source/g3d_viewer/main.cpp + echo 'G3dviewer version # after:' + grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp +fi +echo echo '===== Updating Linux Installer ======' # local GAME_VERSION = "x.x.x"; echo 'Linux Installer version # before:' -grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua;sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua +grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua +sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua echo 'Linux Installer version # after:' grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua - +echo echo '===== Updating Windows Installer ======' # !define APVER 3.6.0 echo 'Windows Installer version # before:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi +grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi +sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi echo 'Windows Installer version # after:' grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi - -echo 'Windows Installer version # before:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi -echo 'Windows Installer version # after:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi - -echo '===== Updating Windows Updater ======' -echo 'Windows Updater version # before:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - -echo 'Windows Updater version # before:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - -grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi -echo 'Windows Updater version # after:' -grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi - - +echo +if [ "$modifymore" = "yes" ]; then + echo 'Windows Installer version # before:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi + sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi + echo 'Windows Installer version # after:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi + echo + echo '===== Updating Windows Updater ======' + echo 'Windows Updater version # before:' + grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo + echo 'Windows Updater version # before:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo + echo 'Windows Updater version # before:' + grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi + echo 'Windows Updater version # after:' + grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi + echo +fi diff --git a/mk/linux/mg-version.sh b/mk/linux/mg-version.sh index c37441dc..4924e9ff 100755 --- a/mk/linux/mg-version.sh +++ b/mk/linux/mg-version.sh @@ -1,12 +1,13 @@ -#!/bin/bash +#!/bin/sh # Use this script to idenitfy previous and current Version for a Version Release # ---------------------------------------------------------------------------- # Written by Mark Vejvoda # Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ -OLD_MG_VERSION=3.11.0 -OLD_MG_VERSION_BINARY=3.11.0 -MG_VERSION=3.12-dev +VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" +OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameDataVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +OLD_MG_VERSION_BINARY="$(awk -F '=' '/^OldReleaseGameBinaryVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +MG_VERSION="$(awk -F '=' '/^CurrentGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" if [ "$1" = "--oldversion" ]; then echo "$OLD_MG_VERSION" diff --git a/source/version.txt b/source/version.txt new file mode 100644 index 00000000..f116b51a --- /dev/null +++ b/source/version.txt @@ -0,0 +1,21 @@ +# How it currently works? +# Set version here (only here) and just start build on linux. Versions will be +# updated everywhere automatically, but if CurrentGameVersion is a "dev" then +# only game version will be automatically updated (saving time during rebuild +# and for cleaner "git status"). +# +# Then you should on the occasion commit changed files (this step should/will +# disappear someday, during later improvements). + +CurrentGameVersion = "3.12-dev"; +# ^ typical version numbers look like this: "3.11-beta1.0", "3.12-dev", "3.12.0" + +OldReleaseGameBinaryVersion = "3.11.0"; +OldReleaseGameDataVersion = "3.11.0"; +LastCompatibleSaveGameVersion = "3.9.0"; + +MapeditorVersion = "1.6.1"; +G3dviewerVersion = "1.3.6"; + +GitCommitForRelease = "4446.1a8673f"; +# ^ will be automatically generated From 8596f70479132263b2794e55bd237e1ed45b11a5 Mon Sep 17 00:00:00 2001 From: filux Date: Sun, 1 Feb 2015 23:41:09 +0100 Subject: [PATCH 18/42] updated readme file in relation to version number management --- docs/README.release-management.txt | 31 ++++++++---------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/docs/README.release-management.txt b/docs/README.release-management.txt index 9628b3a1..8f261a88 100644 --- a/docs/README.release-management.txt +++ b/docs/README.release-management.txt @@ -11,30 +11,15 @@ Source and Data Archives: ========================= There are 3 archives that are built for a given release (starting with versions -after 3.6.0). In order to build a release you must have all files checked out -of svn for that specific release (example: trunk) - -To set the current version for release, modify the file mk/linux/mg-version.sh -and change the two variables: - -OLD_MG_VERSION=3.6.0.1 -MG_VERSION=3.6.0.2 - -*Note: Please ensure the MG_VERSION variable matches the version set in the -MegaGlest binary, this can be checked by running: ./megaglest --version -It is possible to have the mg-version.sh script NOT match the binary in cases -where we are releasing binary compatible updates to the archives in which case -we typically use a forth digit in the version # (as seen above) - -After setting the correct verions in mg-version.sh you should call: -./mg-version-synch.sh - -This will update associated installers to use the correct version stamps - -To set the actual binary to the desired version you must manually edit -glest_game/facilities/game_util.cpp -const string glestVersionString = "v3.8-dev"; +after 3.6.0). In order to build a release you must have all git repositories +checked out for that specific release (example, tag: 3.11.0) or downloaded all +source archives/"tarballs" which in their name have same version, equal to tag. +To set the current version for release, modify the file source/version.txt +and change there available variables. +During build (on linux by script build-mg.sh) version number will be updated +automatically everywhere where it is needed. +Then you only have to commit changed files. #1. The source archive: This archive contains source code for binary compilation of the application and From adb71b4add4a0e7c2337732bdd8cb61517ac7d1c Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 2 Feb 2015 00:17:05 +0100 Subject: [PATCH 19/42] get rid of AccessControl.dll in repository this is now downloaded on demand. --- mk/windoze/Installer/make_installer.sh | 14 +- .../Installer/plugins/AccessControl.dll | Bin 13312 -> 0 bytes .../Installer/plugins/AccessControl.txt | 253 ------------------ 3 files changed, 12 insertions(+), 255 deletions(-) delete mode 100644 mk/windoze/Installer/plugins/AccessControl.dll delete mode 100644 mk/windoze/Installer/plugins/AccessControl.txt diff --git a/mk/windoze/Installer/make_installer.sh b/mk/windoze/Installer/make_installer.sh index fa7e9230..a6496e5c 100755 --- a/mk/windoze/Installer/make_installer.sh +++ b/mk/windoze/Installer/make_installer.sh @@ -1,6 +1,16 @@ #/bin/bash +# This is a help script to build windows installers on a linux machine +# +# for this script nsis is needed: +# windows binaries must be in place ( for example from snapshots.megaglest.org ) + +CURRENTDIR="$(dirname $(readlink -f $0))" +cd "$CURRENTDIR" + +# We need the AccessControl plugin for nsis and place this in plugins directory +# original from http://nsis.sourceforge.net/AccessControl_plug-in +wget http://downloads.megaglest.org/windowsInstallerHelp/AccessControl.dll -P plugins +wget http://downloads.megaglest.org/windowsInstallerHelp/AccessControl.txt -P plugins -# for this script nsis is needed -# windows binaries must be installed from snapshots.megaglest.org makensis MegaGlestInstaller.nsi diff --git a/mk/windoze/Installer/plugins/AccessControl.dll b/mk/windoze/Installer/plugins/AccessControl.dll deleted file mode 100644 index 0de0324fc659e3d2d70a91657f76e50bdbb0af77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13312 zcmeHO4SZD9mA^?QVT6GhAfcm095o0E;!7qUlle;0WC;9BU|>Q9Klm7u2Qwi|;^aL( zlxXTCZH8yM*80&^yM^Mmu5De{x|X(9gV03kN3pn&E?TjryAMNasu72p_3i(>_a+|_ zHSX^3x7*)u-|u(k-h1vj=bn4+x#!;d-kq8o?`9c{F#|wR7(0NJo-+0K(|?Yldd6ix zoxz^E=;g}~q*cFsd2Kk-YHNu#Z;6Gr+3G{lXtQA3#M@$G)E0@_Dpv+<+nO8rCDW%* z&DBNkSUvMWyZw$MDcE9Jc_bg@?Dq{v3RL{PUT~IP9TrR#@NOs4Iv?f z{LN|jDFaZamH@^)WsLPKiSbR%^^Cnlx>AQo76%yflri?DF~$GS{uNrlUC7uy@ZH^j z20$&q3AhSi1^fl|uLF7kPXg`*>;yDWxd3>;X#hjn2B-zl^Eh~)0o;zdM!?MgKcEb- z1aJjl79a~SXon0yKi~!M(DNYh^sEW^RtIiotfstT+42=W0XuCG|5r>iNgi18tTuZ~2wGPa^wh-}`)m@g`B<6}Sv z#7)=pyIM!-Gz66cyigZv5_!t668YFJy;R9J@d95Fjx;r}+E{2iA8S=<${QNM+z^TJ z^+I!O7ejezq={$MkyfE{1j|?zALV0_df!gIUKGHomxHkgl}5^|`A`E}DmFEh*Vpr{ z&@iwoS|5%zM^AuPm=1USg_fjta5nCZ_4B*Ov=IEV2phwW>5@iY%pw zD$`f4)+1r%EiHVsp;8SVYMqu<>-8)vudFNgFSk=pMoW?eVGHr`DiJ7)*BVwk3weHHC#db7MSPEP_ze&6n;b!N2Ed$xzCG9enV6)hqv{`H~(od2x5%0xlEek+tDKmc}Zy8!{2TWE6B8MLB(6k*PTxH!% z4v1&eD;bONTi}s!P&~CUu~p!C8`kh`k=9lW90Gi(!6xYVh4Wi!bzy!!rq(w{ZJV1y zTUu?Q7(dFP@w9xLMrW?jHU*f44YrW#%eH#WMQu$`WQolei#5l9Yv7%>`3=+@(|I1y-%uBx^B&wRkUHENo^CFxAM^mr}{(EFX+z4XadVCFCbxcN+By_mc}wACydRcG}w7gxJ(gp zO$2pH&NqRKA2!v=Grq_`oO2h->z_9=R2#z8vzSH6X#vWwvX!o@C^PBI;QfY#FR-}z(do}*{$Jl`R7#lFbgQpA`&mUSNosFNh1nRy!?2u6EP*_liPAIWD7HdZ#4CAeOn!gS*#T_2e{P9r?^ zPD$I7VLxKBIls~ZS)z4MAg%qEHs}4fP-$xWZRyP1@god>yf?Ev{?V1O6H;Ll>=RIq z`=w)Y|3``<^>>~$cRT=L6*~6$5$u=8V1EE?XHUX6WbSCBmJt(OoVoL#AiVvyw4LV8 z?;$6>CqD|h?$-3Ks&x5VYSz$Il_B4wW{q7{2KlRMc4}8uro3Ctn!2j8L1n4dnFIRu3hRVE2ui1R~C5tGVsX-(2E@B0rjg)kd7DEr8#D88Y1+mJEgOYS~te%hzR`6MGt4c@+B zAOkW2^0%#MttJ^rRQ`=oIj;DU-IW<>Fs0;6x_pDXPqw!yOt4_66OKJTrK>6pqd#y_ zQ1fzo&xZ9k9f8NL3QD_kO~B5@2zK_EJC30%YwCa~03s+2DmmH6n4e~nho(zoTKHZV z1Fhy-l@pS@Ckqp(qepZ(mZphC=BJmYo1b2haqyHe;~+AIR3=l+_`^NKtK^WoWE}D< zC%`#^pj3MY53{!habLx#b!U3A(vnZZ_lm6RJAHO3n5S8x($oMhe55$ z&5)P6Kofi2-m|`J-G&>`+3;!9%JYWF(qd*~{@MXcDjHDQn5GMP5}NVC4OxqGwW4$F){8WQwtOe`~iK3>Y|qz?qEQltvY*$HJZlID1?A?{_O z9DhMskH)3mMSTa8=>zX!rmhOsNlDEN?cRmmm7F3jXm?yKUJ>VqX%=+*hW*`3)8qx3 zsu`F2hT{t`ZHEVPwUE{~g>)JTY{^bVFw&rPp>3&e!x1eUWC!Xb(P%$emsmGEzO^f< zwRv6ER71~xNH#HdN{|ZTGjXIr$zz1LZr@pdw=d}rbo++0C&5& z{rqlWYWw*`LgrG(Jn?PEJRzfN-cmm%g0#~luS7_29ojupsxi9Cv)e9`mRlslmoM@S zJLXBf;u9Ozqe*pQsPS|z4A^3be`E-nI}gDm`>M-fU*iGV@O74R=8ngKl-8N-3iQI* zr6t;u;zj2UrHcmpk%7#g&~~+ZO>%Yo_Xg?M!QWY?y*llvj~Q1|`RjUP^Pry;Hw#M?C^u+1NoaV$+}CKr-?*0H0-w_;54I8?oie$<;1 zkPng*Qh)rzTg5BEk#b~LuT*16qzUHk8Y6j!>K33=y+hT1LHH%o|Hh=Yx{>}j4Pc40 z)ZqbxYT2VwKL+v;l(&%b@w0B42-cuoK@6-*v<+dH;GK!Kvx&Chgzt2sO~#6OWEKXs zN0<^eVV)1n@AeJKt1$mueF&;`;*_wB(02Jd8kspte4r?2_JRmDrm56ufTmKfyr0&mehi^85N;vqw|4tvOg5Tu7<3xHN*cfI z#%|wXb#RRGddyS_y8HSi-%!GL3Z^e{2pNgCmuMgq@hnLF@+_j#B|k!vZD?BRg&l)I zwRL$e^i(OP1;VeBlD|5K9fLS571GSZf8nR?yv3u~uKI|4 z0;Mx9bQ`qtp1)9J!H8%BPu?Qm_C5yw5)i?qu)F4TnfxX^Ea9`H$PSDplSj!8sAMwvh!2}Zj5_+uVJ$g|D-p3(`dO$&$}vSE?5EBFH4f!Gt)}=Q~U91TaiO&ayG~r6sH}eeFO7 z=DZ@#?XDSCBMLdzBAOl8?+V6Xn9afLxG~;lLF`TXMKigos!A?Y8JIrev1O`eL#|#i z1Jh4i$Yd;JR@fOyHX>V&8#EY#kxeVsR%ovFx$I;BV zDVjh-s2>+a^Z;UFL7AUUT@%YL&kC=Faj;|2c1sA{eOVMgr>wM$BP&nb-vHg>E=(+ zsaV%3r0Fz2AoU{D(q2&2N?wI%Gftl!Xmw(J*8NZF^Qz`}7wGdYBIG!I{v8X=#QMC9 zno;{?Uod9syhx4NEuUbY>W@zghib61GN&n+tJ*86I#SAJ{rVUViCF=;3R=+II5Dc^ z(3nA7m{L-z%%$_IWxpTJkeFVJUpndTr1%=9PsbhkTi5{{`b-u!mZfo0 zEaO_)J1Lg*v8`;I6idcf7U!f`3}acQOp0Y(_ivmO%ed|@m=w#nR&JdX%eYpmh(%p4 zacsbm$b>UK9oYA)F5t85r%|V44BibEs?JeJKB4+SpHF=cLZ|+O&m^o2fQZg;SmNwb zn~7H0xvDb?mm-1({n8xRhRe0zzX>?I6gwv6qo>Ki%xKfR$Ch3s2{DiUU6X%Gx zCUG`XBdLj&!)&%8wHm&O3LH^%J!^1iGGQyPzWUOmX^kbQ#Sp2+>TfJl1Faff6VoZC z>N^11GTKkNKEyF_2#deDV?S2*pj-y=v|qUoCGFIlO>f^!{y;FX&Xib}4Z9d&7ux%n z*!Ek{D_Z?YcZ*PuvxvGEppP9jDRvy$O;~F!i8gDnktwi{KyQ1bH{}n{P_Kn7+A9sr zNu4v<7t~$oH_-}xAkk(jy@60SrgYpriCxH;eJWljr>t`jHTnxk9OFNKn6aw+8#T

xB_P^iKAjzUjr6Pa!9NT5copjS!M+wD@DB`BwZ9Y>7Km-|fAX{k?s>)+Ha+O@Y3 z!+sbe31h$jCfGthwUIrtsxk}Gq#IvNzez^(Mun|@)|`*K)#bGsza@U z`X!#Rh*r0)B~s4rr#e4ASK~TMOudJ48tsG{sw10Xp%}?;R;io#DDr1C9m<>3n`E1b zw?g~IOd^OqlT|b|xAMzE(FR;ixZbyVg|FJ4zofFdnz5N_J6c%!ZnNvy z@>X;w(g6E1wuyQGLyYag)f2Q?K_kKzQO%lGK1Mfe;0L%p)X<2lC91L`#%g8u@gu2I z)19L&s#~D7kvm12PaI@bP0gEhw`SW?ehp`PPOs6OZQPW-RKE+F?$EB!;M*zg+u(yq zF=I`Dqk#2`fw+#b#funwD{H9qG$?j4c9967?@H!TmHqFY3amdlY;d zfKLPN7f9~`oJZY5sM`Wu0pKvlST@?X0hRzt080Vu0NVj~0UiPT7;qTyD&Q309l(cx zi%J-q4X^>O1GoXp0Rg}UKormhpdO~P3}(RG%3@RSQRpHzl}%$NHl5AD{UQsSi5p6@ zSvJeT>&P!KE7NY2>G#BzG&D6~PV%AH$|yyNR31Y@qfyC6cj*;cHieJ0hBh_v#Ibzz zY7DE?&>GR$3SV?0at(VS^=RBkITbk=HKsYMUeNp+1x><8omSLqW1*;^_n=D4Yt@Xr zPralD_uGzHr4ywJIu+)?XuEnrlZ=ASqUJ{FwVb96syV;%!z#tL)A=>$1J1v5{;TsX=X6)LE6?R}-Qaq_^{h*F&2uky zJKc5eg!^&#Gw!6@;CayVwugCVdlz_J-s`<}-gVw@d;7e{yzhJGlwMkTN9p~g-z|Ny zbf^@K+u(y3fN9(cu7$gudy)GcH#_h0ybXDgy#0BH^G@YuC>u z9Pc_ZN-ixaC~=n5maH$iv*a5kKP)+1^2?IbC4VaUOUYHv)y{~s*}2o%;Y>Imc7DhC zedmvz&p3bO{1@kMoo_qeai+VBu9>b&U01jYVcANT-?hdSc12w~Tya;I>mk=Z*JG}y zT|aZZ;(E>XhU<*$Pp&lg6t~4a*L}IW0M@T?uXNYCx4C2PTisuA-{t@$jVb2NA8=imjyzBYE zGu3PHUhJLky~gYDR(PwuYcYN;-tFEyyps2B?|$z;c%Sq>>pkQ>?tR_+2k)P~=e*NO zvrFfeE-YPAYA;<`dQ0h@r4N<3gO0{{gz6eI>V>yOT?B-{2nR zzR&%HdyV@I_ZIg@?maHaU78ooyDRUWyuZ!s$@@*-@ACeXHrdy4P2OOg2xHmPH5E5b#PtWUEJN=z1%mU*loHvj+t diff --git a/mk/windoze/Installer/plugins/AccessControl.txt b/mk/windoze/Installer/plugins/AccessControl.txt deleted file mode 100644 index b8e0a4d3..00000000 --- a/mk/windoze/Installer/plugins/AccessControl.txt +++ /dev/null @@ -1,253 +0,0 @@ -ACCESS CONTROL PLUGIN ---------------------- - -Written by Mathias Hasselmann -Modifications by: -* Afrow UK -* AndersK - -The AccessControl plugin for NSIS provides a set of functions related -Windows NT access control list (ACL) management. - - -MODIFICATIONS -------------- - -v1.0.8.1 - 7th July 2014 - AndersK -* Don't require SE_RESTORE_NAME and SE_TAKE_OWNERSHIP_NAME when changing owner. -* Fixed broken return value when trustee parsing failed - -v1.0.8.0 - 24th March 2014 - AndersK -* Added basic String SID parsing in the emulated ConvertStringSidToSid (Broken in v1.0.6) -* Fixed WinNT4 and Win95 support? (Unicode DLL will not load on Win95 but will probably load on Win98) -* Fixed leaks from ParseSid and ConvertSidToStringSid -* NameToSid and SidToName now pushes "error" and error details -* Better GetCurrentUserName error handling (Still returns the problematic "error" string) - -v1.0.7.0 - 25th February 2012 - Afrow UK -* Fixed DisableFileInheritance (broken in v1.0.5.0). - -v1.0.6.0 - 26th January 2012 - Afrow UK -* Wrote replacements for ConvertSidToStringSid/ConvertStringSidToSid for - backwards compatibility with Windows NT4/ME (ANSI build only). -* Loads RegSetKeySecurity/RegGetKeySecurity functions at run-time for - backwards compatibility with Windows NT4/ME (ANSI build only). -* Removed commented out legacy code. - -v1.0.5.0 - 25th January 2012 - Afrow UK -* Removed IsUserTheAdministrator. -* Added NameToSid. -* Major code cleanup/rewrite. -* Proper Unicode build (with Unicode plugin API). -* Support for 64-bit registry (SetRegView 64). -* Functions now return "ok" on success or "error" otherwise. On "error", - the next item on the stack will be the error description. -* Added version information resource. - -23rd January 2008 - Afrow UK -* Added function IsUserTheAdministrator. -* Cleaned up code. Rebuilt as pure cpp, decreasing DLL size. -* No longer using gobal temp variable for strings. - -7th January 2008 - Afrow UK -* Fixed registry instructions. - -8th November 2007 - Afrow UK -* EnableInheritance/DisableInheritance names changed. -* Functions added: - EnableFileInheritance - DisableFileInheritance - EnableRegKeyInheritance - DisableRegKeyInheritance - GetFileOwner - GetFileGroup - GetRegKeyOwner - GetRegKeyGroup - ClearOnFile - ClearOnRegKey - GetCurrentUserName - SidToName - -21st August 2007 - Afrow UK -* Added /noinherit switch to prevent child objects inheriting a - particular permission. -* Added EnableInheritance and DisableInheritance functions. -* Removed code to print items in the install log. - -13th July 2007 - kichik -* Return proper error codes (return value instead of GetLastError()) - -30th June 2006 - Afrow UK -* Error MessageBox removed. -* Error messages are now just returned on NSIS stack. - - -CONVENTIONS ------------ - - - A valid Windows(tm) filename (ie. "C:\WINDOWS\" or - "\\HOSTNAME\SHARE"). - - - The well-known root of a registry key. Following values are defined: - - HKCR - HKEY_CLASSES_ROOT - HKLM - HKEY_LOCAL_MACHINE - HKCU - HKEY_CURRENT_USER - HKU - HKEY_USERS - - - The name of the registry to alter (ie. "Software\Microsoft\Windows"). - - - A valid Windows(tm) account. The account can be specified as relative - account name (ie. "Administrator" or "Everyone"), a qualified account - name (ie. "Domain\Administrator") or as security identifier (SID, - ie. "(S-1-5-32-545)"). "BUILTIN\USERS" is also a valid account name. - For a list of trustee names, open up - Control Panel > Administrative Tools > Computer Management > - Local Users and Groups. - WinNT4 uses a emulated version of ConvertStringSidToSid and - only supports the following SDDL strings: AN, AU, BA, BU, IU, SY and WD - - - A combination of access rights (ie. "FullAccess" or - "GenericRead + GenericWrite"). - For a full list of access rights, open the AccessControl.cpp source - file in Notepad. - -/NOINHERIT - Ensures the specified ACEs (Access Control Entries) are not inherited - by child nodes (i.e for directory or registry key objects). - -HANDLING ERRORS ---------------- - -To handle errors, check the result on the stack: - - AccessControl::SetOnRegKey HKLM Software\MyApp Stuart FullAccess - Pop $R0 - ${If} $R0 == error - Pop $R0 - DetailPrint `AccessControl error: $R0` - ${EndIf} - -FUNCTIONS ---------- - -GrantOnFile [/NOINHERIT] -GrantOnRegKey [/NOINHERIT] -Pop $Result ; "ok" or "error" + error details - - Makes sure that the trustee get the requested access rights on - that object. - ---------- - -SetOnFile [/NOINHERIT] -SetOnRegKey [/NOINHERIT] -Pop $Result ; "ok" or "error" + error details - - Replaces any existing access rights for the trustee on the object - with the specified access rights. - ---------- - -ClearOnFile [/NOINHERIT] -ClearOnRegKey [/NOINHERIT] -Pop $Result ; "ok" or "error" + error details - - Replaces all trustees on the object with the specified trustee and - access rights. - ---------- - -DenyOnFile [/NOINHERIT] -DenyOnRegKey [/NOINHERIT] -Pop $Result ; "ok" or "error" + error details - - Explicitly denies an access right on a object. - ---------- - -RevokeOnFile [/NOINHERIT] -RevokeOnRegKey [/NOINHERIT] -Pop $Result ; "ok" or "error" + error details - - Removes a formerly defined access right for that object. - Note that access rights will still be revoked even if they are - inherited. - ---------- - -SetFileOwner -SetRegKeyOwner -Pop $Result ; "ok" or "error" + error details - - Changes the owner of an object. - ---------- - -GetFileOwner -GetRegKeyOwner -Pop $Owner ; or "error" + error details - - Gets the owner of an object. - ---------- - -SetFileGroup -SetRegKeyGroup -Pop $Result ; "ok" or "error" + error details - - Changes the primary group of the object. - ---------- - -GetFileGroup -GetRegKeyGroup -Pop $Group ; or "error" + error details - - Gets the primary group of the object. - ---------- - -EnableFileInheritance -EnableRegKeyInheritance -Pop $Result ; "ok" or "error" + error details - - Enables inheritance of parent object permissions. - ---------- - -DisableFileInheritance -DisableRegKeyInheritance -Pop $Result ; "ok" or "error" + error details - - Disables inheritance of parent object permissions. - ---------- - -SidToName -Pop $Domain ; or "error" + error details -Pop $Username - - Converts an SID on the local machine to the corresponding username and - domain name. - ---------- - -NameToSid -Pop $SID ; or "error" + error details - - Gets the SID of the specified username on the local machine. - ---------- - -GetCurrentUserName -Pop $Username ; or "error" - - Gets the username of the current user running the setup. - ---------- \ No newline at end of file From 17cc8a158942a1c96613874a530dd77b3fc692a2 Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 2 Feb 2015 20:49:36 +0100 Subject: [PATCH 20/42] better help text for map editor --- source/glest_map_editor/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index adbfc520..cd77f590 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -1596,7 +1596,7 @@ bool App::OnInit() { std::cout << "glest_map_editor [GBM OR MGM FILE]" << std::endl << std::endl; std::cout << "Creates or edits glest/megaglest maps." << std::endl; std::cout << "Draw with left mouse button (select what and how large area in menu or toolbar)" << std::endl; - std::cout << "Pan trough the map with right mouse button" << std::endl; + std::cout << "Move map with right mouse button" << std::endl; std::cout << "Zoom with middle mouse button or mousewheel" << std::endl; // std::cout << " ~ more helps should be written here ~" << std::endl; From da33c4323050f381abada01b964984b300bc7f82 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 2 Feb 2015 22:08:20 +0100 Subject: [PATCH 21/42] a bit more manual but also cleaner way of updating version number --- docs/README.release-management.txt | 7 +++---- mk/linux/build-mg.sh | 1 - mk/linux/mg-version-synch.sh | 3 ++- source/version.txt | 10 +++------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/docs/README.release-management.txt b/docs/README.release-management.txt index 8f261a88..bce6350f 100644 --- a/docs/README.release-management.txt +++ b/docs/README.release-management.txt @@ -16,10 +16,9 @@ checked out for that specific release (example, tag: 3.11.0) or downloaded all source archives/"tarballs" which in their name have same version, equal to tag. To set the current version for release, modify the file source/version.txt -and change there available variables. -During build (on linux by script build-mg.sh) version number will be updated -automatically everywhere where it is needed. -Then you only have to commit changed files. +and change there available variables, then run mk/linux/mg-version-synch.sh script +for updating version number everywhere where it is needed and then you only have +to commit changed files. #1. The source archive: This archive contains source code for binary compilation of the application and diff --git a/mk/linux/build-mg.sh b/mk/linux/build-mg.sh index 9b68bb0a..cd85c5c6 100755 --- a/mk/linux/build-mg.sh +++ b/mk/linux/build-mg.sh @@ -89,7 +89,6 @@ CLANG_BIN_PATH=$( which clang 2>/dev/null ) CLANGPP_BIN_PATH=$( which clang++ 2>/dev/null ) cd ${SCRIPTDIR} -./mg-version-synch.sh >/dev/null # Google breakpad integration (cross platform memory dumps) - OPTIONAL # Set this to the root path of your Google breakpad subversion working copy. diff --git a/mk/linux/mg-version-synch.sh b/mk/linux/mg-version-synch.sh index 3e646dc6..94786423 100755 --- a/mk/linux/mg-version-synch.sh +++ b/mk/linux/mg-version-synch.sh @@ -11,7 +11,8 @@ VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" LastCompatibleSaveGameVersion="$(awk -F '=' '/^LastCompatibleSaveGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" MapeditorVersion="$(awk -F '=' '/^MapeditorVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" G3dviewerVersion="$(awk -F '=' '/^G3dviewerVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" -if [ "$(echo "$CURRENT_VERSION" | grep -v [a-zA-Z])" != "" ]; then modifymore="yes"; else modifymore="no"; fi +#if [ "$(echo "$CURRENT_VERSION" | grep -v [a-zA-Z])" != "" ]; then modifymore="yes"; else modifymore="no"; fi +modifymore="yes" echo echo '===== Updating Game ======' # const string glestVersionString = "v3.12-dev"; diff --git a/source/version.txt b/source/version.txt index f116b51a..ab19547b 100644 --- a/source/version.txt +++ b/source/version.txt @@ -1,11 +1,7 @@ # How it currently works? -# Set version here (only here) and just start build on linux. Versions will be -# updated everywhere automatically, but if CurrentGameVersion is a "dev" then -# only game version will be automatically updated (saving time during rebuild -# and for cleaner "git status"). -# -# Then you should on the occasion commit changed files (this step should/will -# disappear someday, during later improvements). +# Set version here (only here) and just start mk/linux/mg-version-synch.sh script. +# Versions will be updated everywhere automatically. +# Then you should commit changed files and that's all. CurrentGameVersion = "3.12-dev"; # ^ typical version numbers look like this: "3.11-beta1.0", "3.12-dev", "3.12.0" From 7451e4921357b7a099bf6121e3f8bcd6b1b25aae Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 2 Feb 2015 22:20:57 +0100 Subject: [PATCH 22/42] mapeditor and g3dviever will have always same version number as game, also game and binary packages will have always same version --- mk/linux/mg-version-synch.sh | 5 ++--- mk/linux/mg-version.sh | 4 ++-- source/version.txt | 6 +----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/mk/linux/mg-version-synch.sh b/mk/linux/mg-version-synch.sh index 94786423..604d728a 100755 --- a/mk/linux/mg-version-synch.sh +++ b/mk/linux/mg-version-synch.sh @@ -9,9 +9,8 @@ CURRENT_VERSION=`./mg-version.sh --version` OLD_VERSION=`./mg-version.sh --oldversion_binary` VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" LastCompatibleSaveGameVersion="$(awk -F '=' '/^LastCompatibleSaveGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" -MapeditorVersion="$(awk -F '=' '/^MapeditorVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" -G3dviewerVersion="$(awk -F '=' '/^G3dviewerVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" -#if [ "$(echo "$CURRENT_VERSION" | grep -v [a-zA-Z])" != "" ]; then modifymore="yes"; else modifymore="no"; fi +MapeditorVersion="$CURRENT_VERSION" +G3dviewerVersion="$CURRENT_VERSION" modifymore="yes" echo echo '===== Updating Game ======' diff --git a/mk/linux/mg-version.sh b/mk/linux/mg-version.sh index 4924e9ff..ef735ca7 100755 --- a/mk/linux/mg-version.sh +++ b/mk/linux/mg-version.sh @@ -5,8 +5,8 @@ # Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" -OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameDataVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" -OLD_MG_VERSION_BINARY="$(awk -F '=' '/^OldReleaseGameBinaryVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" +OLD_MG_VERSION_BINARY="$OLD_MG_VERSION" MG_VERSION="$(awk -F '=' '/^CurrentGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" if [ "$1" = "--oldversion" ]; then diff --git a/source/version.txt b/source/version.txt index ab19547b..aeb3e790 100644 --- a/source/version.txt +++ b/source/version.txt @@ -6,12 +6,8 @@ CurrentGameVersion = "3.12-dev"; # ^ typical version numbers look like this: "3.11-beta1.0", "3.12-dev", "3.12.0" -OldReleaseGameBinaryVersion = "3.11.0"; -OldReleaseGameDataVersion = "3.11.0"; +OldReleaseGameVersion = "3.11.0"; LastCompatibleSaveGameVersion = "3.9.0"; -MapeditorVersion = "1.6.1"; -G3dviewerVersion = "1.3.6"; - GitCommitForRelease = "4446.1a8673f"; # ^ will be automatically generated From e324a8f75c4089e8ac4cbf6e7b8d9c5385ec6dd6 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 2 Feb 2015 22:23:22 +0100 Subject: [PATCH 23/42] updated version numbers --- source/g3d_viewer/main.cpp | 2 +- source/glest_game/facilities/game_util.cpp | 2 +- source/glest_map_editor/main.cpp | 2 +- source/version.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/g3d_viewer/main.cpp b/source/g3d_viewer/main.cpp index 1f0c9203..624fca2c 100644 --- a/source/g3d_viewer/main.cpp +++ b/source/g3d_viewer/main.cpp @@ -58,7 +58,7 @@ const char *folderDelimiter = "/"; //int GameConstants::updateFps= 40; //int GameConstants::cameraFps= 100; -const string g3dviewerVersionString= "v1.3.6"; +const string g3dviewerVersionString= "v3.12-dev"; // Because g3d should always support alpha transparency string fileFormat = "png"; diff --git a/source/glest_game/facilities/game_util.cpp b/source/glest_game/facilities/game_util.cpp index fae6f020..02440651 100644 --- a/source/glest_game/facilities/game_util.cpp +++ b/source/glest_game/facilities/game_util.cpp @@ -43,7 +43,7 @@ const string lastCompatibleSaveGameVersionString = "v3.9.0"; const string GIT_RawRev = string(GITVERSION); const string GIT_Rev = string("Rev: ") + string(GITVERSION); #else -const string GIT_RawRev = "$4446.1a8673f$"; +const string GIT_RawRev = "$5060.7451e49$"; const string GIT_Rev = "$Rev$"; #endif diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index adbfc520..e9720f9d 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -46,7 +46,7 @@ string getGameReadWritePath(string lookupKey) { namespace MapEditor { -const string mapeditorVersionString = "v1.6.1"; +const string mapeditorVersionString = "v3.12-dev"; const string MainWindow::winHeader = "MegaGlest Map Editor " + mapeditorVersionString; // =============================================== diff --git a/source/version.txt b/source/version.txt index aeb3e790..71ba4036 100644 --- a/source/version.txt +++ b/source/version.txt @@ -9,5 +9,5 @@ CurrentGameVersion = "3.12-dev"; OldReleaseGameVersion = "3.11.0"; LastCompatibleSaveGameVersion = "3.9.0"; -GitCommitForRelease = "4446.1a8673f"; +GitCommitForRelease = "5060.7451e49"; # ^ will be automatically generated From c453aa778bf477c953714bc48466407df1ec8c71 Mon Sep 17 00:00:00 2001 From: filux Date: Sat, 7 Feb 2015 13:11:24 +0100 Subject: [PATCH 24/42] eliminated ugly icons from installer in linux's menu --- mk/linux/mojosetup/megaglest-installer/make.sh | 2 +- mk/linux/mojosetup/megaglest-installer/scripts/config.lua | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mk/linux/mojosetup/megaglest-installer/make.sh b/mk/linux/mojosetup/megaglest-installer/make.sh index 1df683cb..28c24609 100755 --- a/mk/linux/mojosetup/megaglest-installer/make.sh +++ b/mk/linux/mojosetup/megaglest-installer/make.sh @@ -183,7 +183,7 @@ if [ $REPACKONLY -eq 0 ]; then cp "$CURRENTDIR/$megaglest_linux_path/start_megaglest" $INSTALLDATADIR cp "$CURRENTDIR/$megaglest_linux_path/megaglest" ${INSTALLDATADIR} cp "$CURRENTDIR/$megaglest_linux_path/glest.ini" $INSTALLDATADIR - cp "$CURRENTDIR/$megaglest_linux_path/megaglest.bmp" $INSTALLDATADIR + cp "$CURRENTDIR/$megaglest_linux_path/megaglest.png" $INSTALLDATADIR cp "$CURRENTDIR/$megaglest_shared_path/glestkeys.ini" $INSTALLDATADIR cp "$CURRENTDIR/$megaglest_linux_path/start_megaglest_mapeditor" $INSTALLDATADIR cp "$CURRENTDIR/$megaglest_linux_path/megaglest_editor" ${INSTALLDATADIR} diff --git a/mk/linux/mojosetup/megaglest-installer/scripts/config.lua b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua index d9c4197b..04319fac 100644 --- a/mk/linux/mojosetup/megaglest-installer/scripts/config.lua +++ b/mk/linux/mojosetup/megaglest-installer/scripts/config.lua @@ -119,7 +119,7 @@ Setup.Package genericname = _("MegaGlest"), tooltip = _("A real time strategy game."), builtin_icon = false, - icon = "megaglest.ico", + icon = "megaglest.png", commandline = "%0/start_megaglest", category = "Game;StrategyGame" }, @@ -131,7 +131,7 @@ Setup.Package genericname = _("MegaGlest"), tooltip = _("A real time strategy game."), builtin_icon = false, - icon = "editor.ico", + icon = "megaglest.png", commandline = "%0/start_megaglest_mapeditor", category = "Game;StrategyGame", --mimetype = {"application/x-gbm", "application/mgm"} @@ -144,7 +144,7 @@ Setup.Package genericname = _("MegaGlest"), tooltip = _("A real time strategy game."), builtin_icon = false, - icon = "g3dviewer.ico", + icon = "megaglest.png", commandline = "%0/start_megaglest_g3dviewer", category = "Game;StrategyGame", --mimetype = {"application/x-g3d"} @@ -157,7 +157,7 @@ Setup.Package genericname = _("MegaGlest"), tooltip = _("A real time strategy game."), builtin_icon = false, - icon = "megaglest-uninstall.ico", + icon = "megaglest-uninstall.ico", commandline = "%0/uninstall-megaglest.sh", category = "Game;StrategyGame" } From 546d0112b421debbfd61d1a14f5c074f2e0c6012 Mon Sep 17 00:00:00 2001 From: titiger Date: Sun, 8 Feb 2015 23:32:05 +0100 Subject: [PATCH 25/42] Map editor starts with 8 players per default and uses a zoom of 5. Maps without players crash the map editor on loading and make no sense anyway. Zoom factor is set to 5 instead of 6 now, to ensure you see the full default map on startup --- source/glest_map_editor/program.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index 1d54a1d0..9c3c7863 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -145,13 +145,14 @@ void UndoPoint::revert() { MapPreview *Program::map = NULL; Program::Program(int w, int h) { - cellSize = 6; + cellSize = 5; grid=false; heightmap=false; hideWater=false; ofsetX = 0; ofsetY = 0; map = new MapPreview(); + resetFactions(8); renderer.initMapSurface(w, h); } @@ -581,6 +582,8 @@ void Program::resize(int w, int h, int alt, int surf) { void Program::resetFactions(int maxFactions) { if(map) map->resetFactions(maxFactions); + for (int i = 0; i < map->getMaxFactions(); ++i) + map->changeStartLocation(2*i,2*(i%4)+5,i); } bool Program::setMapTitle(const string &title) { @@ -634,7 +637,7 @@ void Program::incCellSize(int i) { void Program::resetOfset() { ofsetX = 0; ofsetY = 0; - cellSize = 6; + cellSize = 5; } bool Program::setGridOnOff() { From 3c85b0fb257ad7f51272b42b0593cb7d317556ba Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 9 Feb 2015 00:28:32 +0100 Subject: [PATCH 26/42] forgot one place with default cell size --- source/glest_map_editor/program.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index 9c3c7863..4d1aca48 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -159,7 +159,7 @@ Program::Program(int w, int h) { void Program::init() { undoStack = ChangeStack(); redoStack = ChangeStack(); - cellSize = 6; + cellSize = 5; grid=false; heightmap=false; hideWater=false; From 17a412aa9a534ed419157f731489d0b1bd206b44 Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 9 Feb 2015 00:30:43 +0100 Subject: [PATCH 27/42] MegaGlest maps end with .mgm per default now. As they are not really compatible with .gbm files anyway ( cliffs for example ), we call maps *.mgm now per default. Its still possible to load *.gbm files --- source/glest_map_editor/main.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index 744deb16..6fa21798 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -314,7 +314,7 @@ void MainWindow::init(string fname) { GetStatusBar()->SetStatusWidths(siCOUNT, status_widths); SetStatusText(wxT("File: ") + ToUnicode(fileName), siFILE_NAME); - SetStatusText(wxT(".gbm"), siFILE_TYPE); + SetStatusText(wxT(".mgm"), siFILE_TYPE); SetStatusText(wxT("Object: None (Erase)"), siCURR_OBJECT); SetStatusText(wxT("Brush: Height"), siBRUSH_TYPE); SetStatusText(wxT("Value: 0"), siBRUSH_VALUE); @@ -536,14 +536,8 @@ void MainWindow::setExtension() { if (extnsn == "gbm" || extnsn == "mgm") { currentFile = cutLastExt(currentFile); } - if (Program::getMap()->getMaxFactions() <= 4 || Program::getMap()->getCliffLevel() == 0) { - SetStatusText(wxT(".gbm"), siFILE_TYPE); - currentFile += ".gbm"; - } - else { - SetStatusText(wxT(".mgm"), siFILE_TYPE); - currentFile += ".mgm"; - } + SetStatusText(wxT(".mgm"), siFILE_TYPE); + currentFile += ".mgm"; } void MainWindow::onMouseDown(wxMouseEvent &event, int x, int y) { @@ -740,9 +734,9 @@ void MainWindow::onMenuFileSaveAs(wxCommandEvent &event) { } #if wxCHECK_VERSION(2, 9, 1) - wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.gbm|*.mgm"), wxFD_SAVE); + wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.mgm|*.gbm"), wxFD_SAVE); #else - wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.gbm|*.mgm"), wxSAVE); + wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.mgm|*.gbm"), wxSAVE); #endif if(fileDialog->GetPath() != ToUnicode("")) { @@ -758,7 +752,7 @@ void MainWindow::onMenuFileSaveAs(wxCommandEvent &event) { fd.SetDirectory(ToUnicode(defaultPath)); } - fd.SetWildcard(wxT("Glest Map (*.gbm)|*.gbm|MegaGlest Map (*.mgm)|*.mgm")); + fd.SetWildcard(wxT("MegaGlest Map (*.mgm)|*.mgm|Glest Map (*.gbm)|*.gbm")); if (fd.ShowModal() == wxID_OK) { #ifdef WIN32 const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fd.GetPath())); @@ -1593,7 +1587,7 @@ bool App::OnInit() { if(argc==2){ if(argv[1][0]=='-') { // any flag gives help and exits program. std::cout << "MegaGlest map editor " << mapeditorVersionString << " [Using " << (const char *)wxConvCurrent->cWX2MB(wxVERSION_STRING) << "]" << std::endl << std::endl; - std::cout << "glest_map_editor [GBM OR MGM FILE]" << std::endl << std::endl; + std::cout << "glest_map_editor [MGM FILE]" << std::endl << std::endl; std::cout << "Creates or edits glest/megaglest maps." << std::endl; std::cout << "Draw with left mouse button (select what and how large area in menu or toolbar)" << std::endl; std::cout << "Move map with right mouse button" << std::endl; From b4fabc2717964542bfd81a58fd594533340fc90e Mon Sep 17 00:00:00 2001 From: titiger Date: Mon, 9 Feb 2015 00:41:42 +0100 Subject: [PATCH 28/42] map editor: new maps set player name as default author --- source/glest_map_editor/program.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index 4d1aca48..0fa5d3cb 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -14,8 +14,10 @@ #include "util.h" #include #include "platform_util.h" +#include "config.h" using namespace Shared::Util; +using namespace Glest::Game; namespace MapEditor { @@ -154,6 +156,10 @@ Program::Program(int w, int h) { map = new MapPreview(); resetFactions(8); renderer.initMapSurface(w, h); + Config &config = Config::getInstance(); + // set player name as default author + string playerName = config.getString("NetPlayerName",""); + map->setAuthor(playerName); } void Program::init() { From 4c5440f78c8f35e679af4fb7f36a57df1f3fb60d Mon Sep 17 00:00:00 2001 From: titiger Date: Tue, 10 Feb 2015 02:06:02 +0100 Subject: [PATCH 29/42] map editor has much more powerful random height function You can give parameters now, to influence the map height calculation. --- source/glest_map_editor/main.cpp | 47 +++++++- source/glest_map_editor/main.h | 6 + source/glest_map_editor/program.cpp | 12 +- source/glest_map_editor/program.h | 5 +- source/shared_lib/include/map/map_preview.h | 8 +- source/shared_lib/sources/map/map_preview.cpp | 110 ++++++++++-------- 6 files changed, 120 insertions(+), 68 deletions(-) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index 6fa21798..3af0041e 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -103,6 +103,13 @@ MainWindow::MainWindow(string appPath) resourceUnderMouse=0; objectUnderMouse=0; + // default values for random height calculation that turned out to be quite useful + randomWithReset=true; + randomMinimumHeight=-300; + randomMaximumHeight=400; + randomChanceDevider=30; + randomRecursions=3; + this->appPath = appPath; Properties::setApplicationPath(executable_path(appPath)); @@ -187,7 +194,7 @@ void MainWindow::init(string fname) { // --------------------------------------------------------- menuEdit->Append(miEditRandomizeHeights, wxT("Randomize &Heights")); - menuEdit->Append(miEditRandomize, wxT("Randomi&ze Heights/Players")); + menuEdit->Append(miEditRandomize, wxT("Randomi&ze Players")); menuEdit->Append(miEditSwitchSurfaces, wxT("Switch Sur&faces...")); menuEdit->Append(miEditInfo, wxT("&Info...")); menuEdit->Append(miEditAdvanced, wxT("&Advanced...")); @@ -985,10 +992,40 @@ void MainWindow::onMenuEditRandomizeHeights(wxCommandEvent &event) { if(program == NULL) { return; } + while(true){ + program->setUndoPoint(ctAll);//randomizeHeights(-300,400,30,3); - program->setUndoPoint(ctAll); - program->randomizeMapHeights(); - setDirty(); + SimpleDialog simpleDialog; + simpleDialog.addValue("Initial Reset", boolToStr(randomWithReset),"If set to '0' no height reset is done before calculating"); + simpleDialog.addValue("Min Height", intToStr(randomMinimumHeight),"Lowest random height. example: -300 or below if you want water , 0 if you don't want water."); + simpleDialog.addValue("Max Height", intToStr(randomMaximumHeight),"Max random height. A good value is 400"); + simpleDialog.addValue("Chance Devider", intToStr(randomChanceDevider),"Defines how often you get a hill or hole default is 30. Bigger number, less hills/holes."); + simpleDialog.addValue("Smooth Recursions", intToStr(randomRecursions),"Number of recursions cycles to smooth the hills and holes. 0=randomMaximumHeight) randomMinimumHeight=randomMaximumHeight-1; + if(randomChanceDevider<1) randomChanceDevider=1; + + // set randomRecursions to something useful + if(randomRecursions<0) randomRecursions=0; + if(randomRecursions>50) randomRecursions=50; + + program->randomizeMapHeights(randomWithReset, randomMinimumHeight, randomMaximumHeight, + randomChanceDevider, randomRecursions); + } + catch (const exception &e) { + MsgDialog(this, ToUnicode(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal(); + } + setDirty(); + } } void MainWindow::onMenuEditRandomize(wxCommandEvent &event) { @@ -997,7 +1034,7 @@ void MainWindow::onMenuEditRandomize(wxCommandEvent &event) { } program->setUndoPoint(ctAll); - program->randomizeMap(); + program->randomizeFactions(); setDirty(); } diff --git a/source/glest_map_editor/main.h b/source/glest_map_editor/main.h index f68fd6f8..33447b3e 100644 --- a/source/glest_map_editor/main.h +++ b/source/glest_map_editor/main.h @@ -197,6 +197,12 @@ private: int resourceUnderMouse; int objectUnderMouse; + bool randomWithReset; + int randomMinimumHeight; + int randomMaximumHeight; + int randomChanceDevider; + int randomRecursions; + ChangeType enabledGroup; string fileName; diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index 0fa5d3cb..d95a5f35 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -153,6 +153,7 @@ Program::Program(int w, int h) { hideWater=false; ofsetX = 0; ofsetY = 0; + map = new MapPreview(); resetFactions(8); renderer.initMapSurface(w, h); @@ -564,12 +565,12 @@ void Program::shiftDown() { } -void Program::randomizeMapHeights() { - if(map) map->randomizeHeights(); +void Program::randomizeMapHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions) { + if(map) map->randomizeHeights(withReset, minimumHeight, maximumHeight, chanceDevider, smoothRecursions); } -void Program::randomizeMap() { - if(map) map->randomize(); +void Program::randomizeFactions() { + if(map) map->randomizeFactions(); } void Program::switchMapSurfaces(int surf1, int surf2) { @@ -588,8 +589,7 @@ void Program::resize(int w, int h, int alt, int surf) { void Program::resetFactions(int maxFactions) { if(map) map->resetFactions(maxFactions); - for (int i = 0; i < map->getMaxFactions(); ++i) - map->changeStartLocation(2*i,2*(i%4)+5,i); + randomizeFactions(); } bool Program::setMapTitle(const string &title) { diff --git a/source/glest_map_editor/program.h b/source/glest_map_editor/program.h index 12fd8920..3648aa26 100644 --- a/source/glest_map_editor/program.h +++ b/source/glest_map_editor/program.h @@ -103,7 +103,6 @@ private: //static Map *map; static MapPreview *map; friend class UndoPoint; - ChangeStack undoStack, redoStack; void init(); @@ -152,8 +151,8 @@ public: void shiftUp(); void shiftDown(); - void randomizeMapHeights(); - void randomizeMap(); + void randomizeMapHeights(bool withReset, int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions);; + void randomizeFactions(); void switchMapSurfaces(int surf1, int surf2); void loadMap(const string &path); void saveMap(const string &path); diff --git a/source/shared_lib/include/map/map_preview.h b/source/shared_lib/include/map/map_preview.h index 84b38a09..48ac8d62 100644 --- a/source/shared_lib/include/map/map_preview.h +++ b/source/shared_lib/include/map/map_preview.h @@ -207,16 +207,16 @@ public: void reset(int w, int h, float alt, MapSurfaceType surf); void resize(int w, int h, float alt, MapSurfaceType surf); void resetFactions(int maxFactions); - void randomizeHeights(); - void randomize(); + void randomizeHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions); + void randomizeFactions(); + void smoothSurface(bool limitHeights); void switchSurfaces(MapSurfaceType surf1, MapSurfaceType surf2); void loadFromFile(const string &path); void saveToFile(const string &path); void resetHeights(int height); - void sinRandomize(int strenght); - void decalRandomize(int strenght); + void realRandomize(int minimumHeight, int maximumHeight, int chanceDivider, int smoothRecursions); void applyNewHeight(float newHeight, int x, int y, int strenght); bool hasFileLoaded() const {return fileLoaded;} diff --git a/source/shared_lib/sources/map/map_preview.cpp b/source/shared_lib/sources/map/map_preview.cpp index e3c1208d..d494bc89 100644 --- a/source/shared_lib/sources/map/map_preview.cpp +++ b/source/shared_lib/sources/map/map_preview.cpp @@ -704,17 +704,13 @@ void MapPreview::setAdvanced(int heightFactor, int waterLevel, int cliffLevel, i hasChanged = true; } -void MapPreview::randomizeHeights() { - resetHeights(random.randRange(8, 10)); - sinRandomize(0); - decalRandomize(4); - sinRandomize(1); +void MapPreview::randomizeHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions) { + if(withReset) resetHeights(random.randRange(8, 10)); + realRandomize(minimumHeight,maximumHeight,chanceDevider,smoothRecursions); hasChanged = true; } -void MapPreview::randomize() { - randomizeHeights(); - +void MapPreview::randomizeFactions() { int slPlaceFactorX = random.randRange(0, 1); int slPlaceFactorY = random.randRange(0, 1) * 2; @@ -729,6 +725,40 @@ void MapPreview::randomize() { hasChanged = true; } +void MapPreview::smoothSurface(bool limitHeight) { + float *oldHeights = new float[w*h]; + + for (int i = 0; i < w; ++i) { + for (int j = 0; j < h; ++j) { + oldHeights[i*w+j] = cells[i][j].height; + //printf("count=%d height=%f h=%f\n",i*w+h,oldHeights[i*w+h],cells[i][j].height); + } + } + + for (int i = 1; i < w - 1; ++i) { + for (int j = 1; j < h - 1; ++j) { + float height = 0.f; + float numUsedToSmooth = 0.f; + for (int k = -1; k <= 1; ++k) { + for (int l = -1; l <= 1; ++l) { + int tmpHeight=oldHeights[(j + k) * w + (i + l)]; + if(limitHeight && tmpHeight>20){ + tmpHeight=20; + } + if(limitHeight && tmpHeight<0){ + tmpHeight=0; + } + height += tmpHeight; + numUsedToSmooth++; + } + } + height /= numUsedToSmooth; + cells[i][j].height=height; + } + } + delete[] oldHeights; +} + void MapPreview::switchSurfaces(MapSurfaceType surf1, MapSurfaceType surf2) { if (surf1 >= st_Grass && surf1 <= st_Ground && surf2 >= st_Grass && surf2 <= st_Ground) { for (int i = 0; i < w; ++i) { @@ -986,52 +1016,32 @@ void MapPreview::resetHeights(int height) { } } -void MapPreview::sinRandomize(int strenght) { - float sinH1 = random.randRange(5.f, 40.f); - float sinH2 = random.randRange(5.f, 40.f); - float sinV1 = random.randRange(5.f, 40.f); - float sinV2 = random.randRange(5.f, 40.f); - float ah = static_cast(10 + random.randRange(-2, 2)); - float bh = static_cast((maxHeight - minHeight)) / static_cast(random.randRange(2, 3)); - float av = static_cast(10 + random.randRange(-2, 2)); - float bv = static_cast((maxHeight - minHeight)) / static_cast(random.randRange(2, 3)); +void MapPreview::realRandomize(int minimumHeight, int maximumHeight, int _chanceDevider, int _smoothRecursions) { + int moduloParam=abs(maximumHeight-minimumHeight); + int chanceDevider=_chanceDevider; + int smoothRecursions=_smoothRecursions; + if(moduloParam<2) moduloParam=2; + //printf("moduloParam=%d minimumHeight=%d maximumHeight=%d\n",moduloParam,minimumHeight,maximumHeight); - for (int i = 0; i < w; ++i) { - for (int j = 0; j < h; ++j) { - float normH = static_cast(i) / w; - float normV = static_cast(j) / h; + // set chanceDevider to something possible + if(chanceDevider<2) chanceDevider=2; -#ifdef USE_STREFLOP - float sh = (streflop::sinf(static_cast(normH * sinH1)) + streflop::sin(static_cast(normH * sinH2))) / 2.f; - float sv = (streflop::sinf(static_cast(normV * sinV1)) + streflop::sin(static_cast(normV * sinV2))) / 2.f; -#else - float sh = (sinf(normH * sinH1) + sin(normH * sinH2)) / 2.f; - float sv = (sinf(normV * sinV1) + sin(normV * sinV2)) / 2.f; -#endif - float newHeight = (ah + bh * sh + av + bv * sv) / 2.f; - applyNewHeight(newHeight, i, j, strenght); + // set smoothRecursions to something useful + if(smoothRecursions<0) smoothRecursions=0; + if(smoothRecursions>1000) smoothRecursions=1000; + + for (int i = 1; i < w-1; ++i) { + for (int j = 1; j < h-1; ++j) { + if(rand()%chanceDevider==1){ + cells[i][j].height=(rand() % moduloParam)+minimumHeight; + } } } -} - -void MapPreview::decalRandomize(int strenght) { - //first row - int lastHeight = DEFAULT_MAP_CELL_HEIGHT; - for (int i = 0; i < w; ++i) { - lastHeight += random.randRange(-1, 1); - lastHeight = clamp(lastHeight, minHeight, maxHeight); - applyNewHeight(static_cast(lastHeight), i, 0, strenght); - } - - //other rows - for (int j = 1; j < h; ++j) { - int height = static_cast(cells[0][j-1].height + random.randRange(-1, 1)); - applyNewHeight(static_cast(clamp(height, minHeight, maxHeight)), 0, j, strenght); - for (int i = 1; i < w; ++i) { - height = static_cast((cells[i][j-1].height + cells[i-1][j].height) / 2.f + random.randRange(-1, 1)); - float newHeight = static_cast(clamp(height, minHeight, maxHeight)); - applyNewHeight(newHeight, i, j, strenght); - } + for( int i = 0; i Date: Wed, 11 Feb 2015 00:26:03 +0100 Subject: [PATCH 30/42] fix windows build and --help output --- source/glest_map_editor/main.cpp | 15 +++++++-------- source/glest_map_editor/program.cpp | 7 +------ source/glest_map_editor/program.h | 2 +- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index 3af0041e..d4ae98b6 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -487,8 +487,8 @@ void MainWindow::onClose(wxCloseEvent &event) { } void MainWindow::setupStartupSettings() { - program = new Program(glCanvas->GetClientSize().x, glCanvas->GetClientSize().y); - + string playerName = Config::getInstance().getString("NetPlayerName",""); + program = new Program(glCanvas->GetClientSize().x, glCanvas->GetClientSize().y, playerName); fileName = "New (unsaved) Map"; //printf("#0 file load [%s]\n",currentFile.c_str()); @@ -1616,17 +1616,13 @@ bool App::OnInit() { SystemFlags::VERBOSE_MODE_ENABLED = false; SystemFlags::ENABLE_THREADED_LOGGING = false; -#if defined(wxMAJOR_VERSION) && defined(wxMINOR_VERSION) && defined(wxRELEASE_NUMBER) && defined(wxSUBRELEASE_NUMBER) - printf("Using wxWidgets version [%d.%d.%d.%d]\n",wxMAJOR_VERSION,wxMINOR_VERSION,wxRELEASE_NUMBER,wxSUBRELEASE_NUMBER); -#endif - string fileparam; if(argc==2){ if(argv[1][0]=='-') { // any flag gives help and exits program. std::cout << "MegaGlest map editor " << mapeditorVersionString << " [Using " << (const char *)wxConvCurrent->cWX2MB(wxVERSION_STRING) << "]" << std::endl << std::endl; std::cout << "glest_map_editor [MGM FILE]" << std::endl << std::endl; std::cout << "Creates or edits glest/megaglest maps." << std::endl; - std::cout << "Draw with left mouse button (select what and how large area in menu or toolbar)" << std::endl; + std::cout << "Draw with left mouse button" << std::endl; std::cout << "Move map with right mouse button" << std::endl; std::cout << "Zoom with middle mouse button or mousewheel" << std::endl; @@ -1634,7 +1630,6 @@ bool App::OnInit() { std::cout << std::endl; exit (0); } - //#if defined(__MINGW32__) const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(argv[1]); fileparam = tmp_buf; @@ -1649,6 +1644,10 @@ bool App::OnInit() { //#endif } +#if defined(wxMAJOR_VERSION) && defined(wxMINOR_VERSION) && defined(wxRELEASE_NUMBER) && defined(wxSUBRELEASE_NUMBER) + printf("Using wxWidgets version [%d.%d.%d.%d]\n",wxMAJOR_VERSION,wxMINOR_VERSION,wxRELEASE_NUMBER,wxSUBRELEASE_NUMBER); +#endif + wxString exe_path = wxStandardPaths::Get().GetExecutablePath(); //wxString path_separator = wxFileName::GetPathSeparator(); //exe_path = exe_path.BeforeLast(path_separator[0]); diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index d95a5f35..aba2ec0a 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -14,10 +14,8 @@ #include "util.h" #include #include "platform_util.h" -#include "config.h" using namespace Shared::Util; -using namespace Glest::Game; namespace MapEditor { @@ -146,7 +144,7 @@ void UndoPoint::revert() { MapPreview *Program::map = NULL; -Program::Program(int w, int h) { +Program::Program(int w, int h, string playerName) { cellSize = 5; grid=false; heightmap=false; @@ -157,9 +155,6 @@ Program::Program(int w, int h) { map = new MapPreview(); resetFactions(8); renderer.initMapSurface(w, h); - Config &config = Config::getInstance(); - // set player name as default author - string playerName = config.getString("NetPlayerName",""); map->setAuthor(playerName); } diff --git a/source/glest_map_editor/program.h b/source/glest_map_editor/program.h index 3648aa26..b6e54948 100644 --- a/source/glest_map_editor/program.h +++ b/source/glest_map_editor/program.h @@ -107,7 +107,7 @@ private: void init(); public: - Program(int w, int h); + Program(int w, int h, string playerName); ~Program(); Program(const Program& obj) { From 06bb4104dc9f2763a2d2a0a03001672cf9a6e20b Mon Sep 17 00:00:00 2001 From: Karl Goetz Date: Sat, 14 Feb 2015 09:49:06 +1100 Subject: [PATCH 31/42] Run dos2unix on COPYRIGHT.source_code.txt COPYRIGHT.source_code.txt is inlined during the package building stage on OSX when built using Xcode. To prevent it causing Rez to fail due to CRLF line endings we unconditionally run dos2unix against the file during build. In the cases where this wouldn't have caused a problem there is no regression and in the cases where its necesary the file is fixed without manual intervention --- mk/macosx/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index cecf5f9b..392d9b4c 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -31,6 +31,9 @@ LINK_DIRECTORIES(/opt/local/lib) ##install part +# This file is in git CRLF but that causes the cpack run to fail +EXECUTE_PROCESS(COMMAND dos2unix -k docs/COPYRIGHT.source_code.txt WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) + # This changes Info.plist from something with variables and CMakeisms to # something that can be installed on disk. CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist" From c21db677219fbd0f877906696bdcecf1aa8613f5 Mon Sep 17 00:00:00 2001 From: Karl Goetz Date: Sun, 15 Feb 2015 17:22:35 +1100 Subject: [PATCH 32/42] Changes to make package build and run on osx MegaGlest is the correct spelling, the process of building a package upper cases the binary so I'm removing my modification via an earlier branch. This also sets CUSTOM_DATA_INSTALL_PATH to /Applications - this is the final step in getting MegaGlest.app to launch after building and installing. The previously hard coded path was ok for gnumake but failed when Xcode got involved as it has build types (release/debug/et al) which the hard coding didn't support. I've added an if/else catch for the two build types that i've seen while working on megaglest and it should be trivial to add any others that may be desirable. There is still an outstanding issue of embedding dependencies or using system provided dependancies which I haven't sorted out. --- mk/macosx/CMakeLists.txt | 18 +++++++++++++++++- mk/macosx/Info.plist | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index cecf5f9b..ba39c027 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -29,6 +29,9 @@ ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) INCLUDE_DIRECTORIES(/opt/local/include) LINK_DIRECTORIES(/opt/local/lib) +# Set custom data path as macos apps don't use /local/ +SET(CUSTOM_DATA_INSTALL_PATH "/Applications/MegaGlest.app/Contents/Resources/share/megaglest/") + ##install part # This changes Info.plist from something with variables and CMakeisms to @@ -48,7 +51,20 @@ set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt") set (CPACK_BUNDLE_NAME "MegaGlest") -set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/megaglest") + +# This variable changs depending on the build type +IF(CMAKE_GENERATOR STREQUAL Xcode) + IF(CMAKE_BUILD_TYPE STREQUAL Release) + set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Release/megaglest") + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Debug) + set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Debug/megaglest") + ENDIF() +ELSE() +# Assume gnumake + set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/megaglest") +ENDIF() + + set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") diff --git a/mk/macosx/Info.plist b/mk/macosx/Info.plist index 25372035..bcef4570 100644 --- a/mk/macosx/Info.plist +++ b/mk/macosx/Info.plist @@ -5,9 +5,9 @@ CFBundleDevelopmentRegion English CFBundleExecutable - megaglest + MegaGlest CFBundleGetInfoString - ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}, © 2001-2015 The Glest Team All Rights Reserved. + ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}, © 2001-2015 The MegaGlest Team. CFBundleIconFile MegaGlest CFBundleIdentifier From 404db007018ac17cd9561a9b99a8e07a030c0735 Mon Sep 17 00:00:00 2001 From: titison Date: Mon, 16 Feb 2015 20:28:10 +0100 Subject: [PATCH 33/42] AttackBoosts: Show Ep + Hp Regeneration in Desc Previously the Hp and Ep regeneration was only shown if hp and ep were also affected by the AttackBoost. In addition I changed the way the regeneration is shown: Old: ->EP +10 [10] New: ->EP +10 (Regeneration: +10) --- source/glest_game/types/upgrade_type.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/glest_game/types/upgrade_type.cpp b/source/glest_game/types/upgrade_type.cpp index 46a57390..7529a458 100644 --- a/source/glest_game/types/upgrade_type.cpp +++ b/source/glest_game/types/upgrade_type.cpp @@ -306,7 +306,7 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{ string indent="->"; Lang &lang= Lang::getInstance(); - if(getMaxHp() != 0) { + if(getMaxHp() != 0 || getMaxHpRegeneration() != 0) { str += indent+lang.getString("Hp",(translatedValue == true ? "" : "english")) + " +" + intToStr(maxHp); if(maxHpIsMultiplier) { str += "%"; @@ -315,11 +315,11 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{ // str += " +" + intToStr(getMaxHpFromBoosts()); // } if(getMaxHpRegeneration() != 0) { - str += " [" + intToStr(maxHpRegeneration); + str += " (" + lang.getString("Regeneration",(translatedValue == true ? "" : "english")) + ": +" + intToStr(maxHpRegeneration); // if(getMaxHpRegenerationFromBoosts() != 0) { // str += " +" + intToStr(getMaxHpRegenerationFromBoosts()); // } - str += "]"; + str += ")"; } } @@ -336,7 +336,7 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{ // } } - if(getMaxEp() != 0) { + if(getMaxEp() != 0 || getMaxEpRegeneration() != 0) { if(str != "") { str += "\n"; } @@ -350,11 +350,11 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{ // } if(getMaxEpRegeneration() != 0) { - str += " [" + intToStr(maxEpRegeneration); + str += " (" + lang.getString("Regeneration",(translatedValue == true ? "" : "english")) + ": +" + intToStr(maxEpRegeneration); // if(getMaxEpRegenerationFromBoosts() != 0) { // str += " +" + intToStr(getMaxEpRegenerationFromBoosts()); // } - str += "]"; + str += ")"; } } From f2b9a25198673885f72ba8f4391de6e12a3a6335 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 23 Feb 2015 19:10:32 +0100 Subject: [PATCH 34/42] support also for macos --- mk/linux/make-data-archive.sh | 31 +++++++++++++++++++++---------- mk/linux/mg-version.sh | 8 +++++++- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/mk/linux/make-data-archive.sh b/mk/linux/make-data-archive.sh index fcbef4ef..e966aff9 100755 --- a/mk/linux/make-data-archive.sh +++ b/mk/linux/make-data-archive.sh @@ -7,16 +7,26 @@ # Consider setting this for small packages if there's plenty of RAM and CPU available: #export XZ_OPT="$XZ_OPT -9e" +KERNEL="$(uname -s | tr '[A-Z]' '[a-z]')" +if [ "$KERNEL" = "darwin" ]; then + CURRENTDIR="$(cd "$(dirname "$0")"; pwd)" +else + CURRENTDIR="$(dirname "$(readlink -f "$0")")" +fi +cd "$CURRENTDIR" VERSION=`./mg-version.sh --version` RELEASENAME=megaglest-standalone-data PACKAGE="$RELEASENAME-$VERSION.tar.xz" -CURRENTDIR="$(dirname $(readlink -f $0))" -RELEASEDIR_ROOT="$CURRENTDIR/../../../release/" +RELEASEDIR_ROOT="$CURRENTDIR/../../../release" RELEASEDIR="${RELEASEDIR_ROOT}/${RELEASENAME-$VERSION}" PROJDIR="$CURRENTDIR/../../" REPODIR="$CURRENTDIR/../../" -echo "Creating data package in $RELEASEDIR" +if [ "$KERNEL" != "darwin" ]; then + echo "Creating data package in $RELEASEDIR" +else + echo "Creating data directory $RELEASEDIR" +fi [[ -d "$RELEASEDIR" ]] && rm -rf "$RELEASEDIR" mkdir -p "$RELEASEDIR" @@ -74,11 +84,12 @@ rm -rf "$RELEASEDIR/data/cegui" # END cd "$CURRENTDIR" -echo "creating data archive: $PACKAGE" -[[ -f "${RELEASEDIR_ROOT}/$PACKAGE" ]] && rm "${RELEASEDIR_ROOT}/$PACKAGE" -cd $RELEASEDIR -tar -cf - * | xz > ../$PACKAGE -cd $CURRENTDIR - -ls -la ${RELEASEDIR_ROOT}/$PACKAGE +if [ "$KERNEL" != "darwin" ]; then + echo "creating data archive: $PACKAGE" + [[ -f "${RELEASEDIR_ROOT}/$PACKAGE" ]] && rm "${RELEASEDIR_ROOT}/$PACKAGE" + cd $RELEASEDIR + tar -cf - * | xz > ../$PACKAGE + cd $CURRENTDIR + ls -la ${RELEASEDIR_ROOT}/$PACKAGE +fi diff --git a/mk/linux/mg-version.sh b/mk/linux/mg-version.sh index ef735ca7..53a0d3e0 100755 --- a/mk/linux/mg-version.sh +++ b/mk/linux/mg-version.sh @@ -4,7 +4,13 @@ # Written by Mark Vejvoda # Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+ -VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt" +KERNEL="$(uname -s | tr '[A-Z]' '[a-z]')" +if [ "$KERNEL" = "darwin" ]; then + CURRENTDIR="$(cd "$(dirname "$0")"; pwd)" +else + CURRENTDIR="$(dirname "$(readlink -f "$0")")" +fi +VERSION_INFO_FILE="$CURRENTDIR/../../source/version.txt" OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" OLD_MG_VERSION_BINARY="$OLD_MG_VERSION" MG_VERSION="$(awk -F '=' '/^CurrentGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')" From 60fb61937d2100d474d8a47e1c7df61d81194be5 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 23 Feb 2015 19:17:14 +0100 Subject: [PATCH 35/42] bundle resources --- mk/macosx/PkgInfo | 2 -- .../{Info.plist => bundle_resources/Info.plist.in} | 10 +++++----- mk/macosx/{ => bundle_resources}/MegaGlest.icns | Bin mk/macosx/bundle_resources/MegaGlest.sh | 12 ++++++++++++ 4 files changed, 17 insertions(+), 7 deletions(-) delete mode 100644 mk/macosx/PkgInfo rename mk/macosx/{Info.plist => bundle_resources/Info.plist.in} (73%) rename mk/macosx/{ => bundle_resources}/MegaGlest.icns (100%) create mode 100755 mk/macosx/bundle_resources/MegaGlest.sh diff --git a/mk/macosx/PkgInfo b/mk/macosx/PkgInfo deleted file mode 100644 index 7839fa54..00000000 --- a/mk/macosx/PkgInfo +++ /dev/null @@ -1,2 +0,0 @@ -APPL???? -APPL???? \ No newline at end of file diff --git a/mk/macosx/Info.plist b/mk/macosx/bundle_resources/Info.plist.in similarity index 73% rename from mk/macosx/Info.plist rename to mk/macosx/bundle_resources/Info.plist.in index bcef4570..106225e4 100644 --- a/mk/macosx/Info.plist +++ b/mk/macosx/bundle_resources/Info.plist.in @@ -3,15 +3,15 @@ CFBundleDevelopmentRegion - English + en CFBundleExecutable MegaGlest CFBundleGetInfoString - ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}, © 2001-2015 The MegaGlest Team. + v${MEGAGLEST_VERSION}, © 2001-2015 The MegaGlest Team. CFBundleIconFile MegaGlest CFBundleIdentifier - org.megaglest.v${VER_MAJOR}-${VER_MINOR}-${VER_RELEASE} + org.megaglest.v${MEGAGLEST_VERSION} CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -19,11 +19,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE} + ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} CFBundleSignature MGGL CFBundleVersion - ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE} + ${VER_MAJOR}.${VER_MINOR}.${VER_PATCH} NSMainNibFile MainMenu NSPrincipalClass diff --git a/mk/macosx/MegaGlest.icns b/mk/macosx/bundle_resources/MegaGlest.icns similarity index 100% rename from mk/macosx/MegaGlest.icns rename to mk/macosx/bundle_resources/MegaGlest.icns diff --git a/mk/macosx/bundle_resources/MegaGlest.sh b/mk/macosx/bundle_resources/MegaGlest.sh new file mode 100755 index 00000000..ec3c7e21 --- /dev/null +++ b/mk/macosx/bundle_resources/MegaGlest.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Use this script in bundle to run game +# ---------------------------------------------------------------------------- +# Copyright (c) 2015 under GNU GPL v3.0+ + +export LANG=C +SCRIPTDIR="$(cd "$(dirname "$0")"; pwd)" +export DYLD_LIBRARY_PATH="$SCRIPTDIR/../FRAMEWORKS" +export PATH="$SCRIPTDIR/../Resources/megaglest-game:$PATH" + +exec "$SCRIPTDIR/../Resources/megaglest-game/megaglest" +exit "$?" From e934a48fe2a7af7fcb201bd12a54d56e1db95e27 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 23 Feb 2015 19:24:53 +0100 Subject: [PATCH 36/42] added "mac ports" path --- mk/cmake/Modules/FindFriBiDi.cmake | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mk/cmake/Modules/FindFriBiDi.cmake b/mk/cmake/Modules/FindFriBiDi.cmake index 0d10d616..518f20fb 100644 --- a/mk/cmake/Modules/FindFriBiDi.cmake +++ b/mk/cmake/Modules/FindFriBiDi.cmake @@ -20,9 +20,10 @@ MESSAGE(STATUS "** Searching for library: FriBiDi...") # Set variable in temp var, otherwise FIND_PATH might fail # unset isn't present in the required version of cmake. FIND_PATH(xFRIBIDI_INCLUDE_DIR fribidi.h - /usr/local/include/fribidi - /usr/include/fribidi - ) + /usr/local/include/fribidi + /usr/include/fribidi + /opt/local/include/fribidi + ) set(FRIBIDI_INCLUDE_DIR ${xFRIBIDI_INCLUDE_DIR}) SET(FRIBIDI_NAMES ${FRIBIDI_NAMES} fribidi libfribidi) @@ -35,8 +36,10 @@ ENDIF() MESSAGE(STATUS "** Searching for library names: [${FRIBIDI_NAMES}] ...") FIND_LIBRARY(FRIBIDI_LIBRARY - NAMES ${FRIBIDI_NAMES} - PATHS /usr/lib /usr/local/lib + NAMES ${FRIBIDI_NAMES} + PATHS /usr/lib + /usr/local/lib + /opt/local/lib ) IF (FRIBIDI_LIBRARY AND FRIBIDI_INCLUDE_DIR) From e7ae5d2ca2dccb8811e14dde2bb0573fb5b98ced Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 23 Feb 2015 19:32:27 +0100 Subject: [PATCH 37/42] ini files for macos --- mk/macosx/.gitignore | 12 ++++++ mk/macosx/glest-dev.ini | 3 ++ mk/macosx/glest.ini | 94 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 mk/macosx/.gitignore create mode 100644 mk/macosx/glest-dev.ini create mode 100644 mk/macosx/glest.ini diff --git a/mk/macosx/.gitignore b/mk/macosx/.gitignore new file mode 100644 index 00000000..d90dcefc --- /dev/null +++ b/mk/macosx/.gitignore @@ -0,0 +1,12 @@ +/megaglest +/megaglest.6 +/megaglest_* +/[Mm]ega[Gg]lest*.dmg + +core +core.bak + +/build/ +/[Rr]elease/ +/[Dd]ebug/ +/mydata/ diff --git a/mk/macosx/glest-dev.ini b/mk/macosx/glest-dev.ini new file mode 100644 index 00000000..c2c91931 --- /dev/null +++ b/mk/macosx/glest-dev.ini @@ -0,0 +1,3 @@ +DataPath=$APPLICATIONPATH/../../data/glest_game/ +ServerListPath=$APPLICATIONPATH/../shared/ +GlestKeysIniPath=$APPLICATIONPATH/../shared/ diff --git a/mk/macosx/glest.ini b/mk/macosx/glest.ini new file mode 100644 index 00000000..b4c41d06 --- /dev/null +++ b/mk/macosx/glest.ini @@ -0,0 +1,94 @@ +; === propertyMap File === +; This file defines default properties and values. Do not edit this file, +; instead, to modify, copy any properties to glestuser.ini, then change these as +; needed. Values contained in glestuser.ini will overwrite values found here. +; +; For explanation of these properties, please refer to the MegaGlest wiki at +; http://wiki.megaglest.org/ +; +AiLog=0 +AiRedir=false +AllowDownloadDataSynch=false +AllowGameDataSynchCheck=false +AllowRotateUnits=true +AnnouncementURL=http://master.megaglest.org/files/announcement.txt +AutoMaxFullScreen=false +AutoTest=false +CheckGlCaps=true +ColorBits=32 +ConsoleMaxLines=8 +ConsoleMaxLinesStored=25 +ConsoleTimeout=20 +DataPath=$APPLICATIONDATAPATH/ +LogPath=$HOME/.megaglest/ +DayTime=1000 +DebugLogFile=debug.log +DebugMode=false +DebugPerformance=false +DebugNetwork=false +DebugWorldSynch=false +DepthBits=16 +FactoryGraphics=OpenGL +FactorySound=OpenAL +FastSpeedLoops=8 +FileArchiveExtension=.7z +FileArchiveExtractCommand=$APPLICATIONDATAPATH/p7zip/7z +FileArchiveExtractCommandParameters=x -o"{outputpath}" "{archivename}" +FileArchiveCompressCommand=$APPLICATIONDATAPATH/p7zip/7z +FileArchiveCompressCommandParameters=a -r -xr!?svn\* "{archivename}" "{archivefiles}" +FileArchiveCompressCommandSuccessResult=0 +Filter=Bilinear +FilterMaxAnisotropy=1 +FirstTime=false +FocusArrows=true +FogOfWarSmoothing=true +FogOfWarSmoothingFrameSkip=3 +FontConsoleBaseSize=14 +FontConsolePostfix=-*-*-*-*-*-*-* +FontConsolePrefix=-*-arial-*-r-*-*- +FontDisplayBaseSize=12 +FontDisplayPostfix=-*-*-*-*-*-*-* +FontDisplayPrefix=-*-arial-*-r-*-*- +FontDisplaySmallBaseSize=12 +FontMenuBigBaseSize=20 +FontMenuBigPostfix=-*-*-*-*-*-*-* +FontMenuBigPrefix=-*-arial-*-r-*-*- +FontMenuNormalBaseSize=14 +FontMenuNormalPostfix=-*-*-*-*-*-*-* +FontMenuNormalPrefix=-*-arial-*-r-*-*- +FontMenuVeryBigBaseSize=25 +FontSizeAdjustment=0 +FONT_HEIGHT_TEXT=yW +Lang=english +MaxLights=3 +Masterserver=http://master.megaglest.org/ +NetPlayerName=newbie +NetworkConsistencyChecks=true +PhotoMode=false +PortList=61357,61367,61377,61387,61397 +PortServer=61357 +RefreshFrequency=75 +ScreenHeight=600 +ScreenWidth=800 +ServerIp=192.168.0.107 +ShadowFrameSkip=2 +ShadowTextureSize=512 +Shadows=Projected +SoundStaticBuffers=16 +SoundStreamingBuffers=4 +SoundVolumeAmbient=80 +SoundVolumeFx=80 +SoundVolumeMusic=90 +StencilBits=0 +Textures3D=true +TranslationGetURL=https://www.transifex.com/api/2/project/megaglest/resource/$file/translation/$language +TranslationGetURLDetails=https://www.transifex.com/api/2/project/megaglest/resource/$file/?details +TranslationGetURLFileList=main-language-file|megapack-language-file|loading-screen-hints|tutorials-1-very-basic-tutorial|tutorials-2-basic-tutorial|tutorials-3-advanced-tutorial|scenarios-amazones|scenarios-amazones-light|scenarios-capture-enemy-flag|scenarios-storming +TranslationGetURLFileListMapping=data/lang/$language.lng|techs/megapack/lang/megapack_$language.lng|data/lang/hint/hint_$language.lng|tutorials/1_very_basic_tutorial/1_very_basic_tutorial_$language.lng|tutorials/2_basic_tutorial/2_basic_tutorial_$language.lng|tutorials/3_advanced_tutorial/3_advanced_tutorial_$language.lng|scenarios/amazones/amazones_$language.lng|scenarios/amazones_light/amazones_light_$language.lng|scenarios/capture_enemy_flag/capture_enemy_flag_$language.lng|scenarios/storming/storming_$language.lng +TranslationGetURLLanguage=en +TranslationGetURLPassword= +TranslationGetURLUser= +UnitParticles=true +UserData_Root=$HOME/.megaglest/ +VersionURL=http://master.megaglest.org/files/versions/ +Windowed=true From 966da324724764157bece9733c8355a67054c351 Mon Sep 17 00:00:00 2001 From: filux Date: Mon, 23 Feb 2015 20:19:49 +0100 Subject: [PATCH 38/42] better support for macos, this also closes #36 --- CMakeLists.txt | 53 +++++++++++----- mk/macosx/CMakeLists.txt | 85 +++++++++---------------- source/g3d_viewer/CMakeLists.txt | 39 ++++++++---- source/glest_game/CMakeLists.txt | 87 +++++++++++++++++--------- source/glest_map_editor/CMakeLists.txt | 38 +++++++---- source/tests/CMakeLists.txt | 40 ++++++------ 6 files changed, 196 insertions(+), 146 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32ce6c0a..552f2aa2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,7 @@ OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON) OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON) OPTION(BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF) OPTION(WITH_VLC "Use libVLC to play videos" ON) +OPTION(SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF) FIND_PROGRAM(HELP2MAN "help2man") @@ -77,7 +78,6 @@ MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ") ## Compiler flags, CPACK configuration and other Apple specific code. IF(APPLE) - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") include(${PROJECT_SOURCE_DIR}/mk/macosx/CMakeLists.txt) ENDIF(APPLE) @@ -247,7 +247,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]") IF(CMAKE_GENERATOR STREQUAL Xcode) - SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''") + SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_COMMIT_COUNT}.${GIT_SHA1}\\\\''") ELSE() SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'") ENDIF() @@ -257,30 +257,51 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) IF(CMAKE_INSTALL_PREFIX STREQUAL "") MESSAGE(STATUS "*NOTE: NOT USING a Custom Data Install Path...") ELSE() + IF(SINGLE_INSTALL_DIRECTORY AND NOT MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH) + SET(MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH "megaglest-game/" CACHE STRING "The single directory installation path for game (this is appended to the CMAKE_INSTALL_PREFIX)") + ENDIF() IF(NOT MEGAGLEST_BIN_INSTALL_PATH) - SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)") + IF(NOT SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)") + ELSE() + SET(MEGAGLEST_BIN_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() ENDIF() IF(NOT MEGAGLEST_DATA_INSTALL_PATH) - SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)") + IF(NOT SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)") + ELSE() + SET(MEGAGLEST_DATA_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() ENDIF() IF(NOT MEGAGLEST_DESKTOP_INSTALL_PATH) - SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)") + IF(NOT SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)") + ELSE() + SET(MEGAGLEST_DESKTOP_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() ENDIF() IF(NOT MEGAGLEST_ICON_INSTALL_PATH) - SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)") + IF(NOT SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)") + ELSE() + SET(MEGAGLEST_ICON_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() ENDIF() - IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH) - SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)") + IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY) + IF(NOT SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)") + ELSE() + SET(MEGAGLEST_MANPAGE_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() + ENDIF() + IF(NOT CUSTOM_DATA_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY) + SET(CUSTOM_DATA_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)") + SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}") ENDIF() - IF(NOT CUSTOM_DATA_INSTALL_PATH) - SET (CUSTOM_DATA_INSTALL_PATH "\"${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}\"" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)") - ENDIF() - SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}") - - SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE}) - SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH}) - + SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE}) + SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH}) MESSAGE(STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]") ENDIF() diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index 8c1ad4eb..c37eb16a 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -1,91 +1,64 @@ -# Set defaults for Universal Binaries. We want 32-bit Intel/PPC on 10.4 -# and 32/64-bit Intel/PPC on >= 10.5. Anything <= 10.3 doesn't support. -# These are just defaults/recommendations, but how we want to build -# out of the box. But the user needs to be able to change these options. +# Anything <= 10.3 isn't supported. We want 32-bit Intel/PPC on 10.4, 10.5. +# On 10.6 32/64-bit Intel. On >= 10.7 unset architecture mean default 64-bit Intel. +# Using oldest available sdk with current Xcode is recommended. +# User needs to be able to change these options. # So we must only set the values the first time CMake is run, or we # will overwrite any changes the user sets. # FORCE is used because the options are not reflected in the UI otherwise. # Seems like a good place to add version specific compiler flags too. + IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) - IF(EXISTS /Developer/SDKs/MacOSX10.6.sdk) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - - ELSEIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk) - # 64-bit compiles are not supported with Carbon. We should enable - # 64-bit compilation by default once osgviewer has been - # rewritten with Cocoa. - #SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) - ELSE() - # No Universal Binary support - # Should break down further to set the -mmacosx-version-min, - # but the SDK detection is too unreliable here. + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") + #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") ENDIF() + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize" CACHE STRING "Flags used by the compiler during all build types." FORCE) ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE) +# don't try to be too much "modern" +ADD_DEFINITIONS(-Wno-deprecated -Wno-deprecated-declarations) + # Include extra paths to search for includes; this is the default system wide macports path. INCLUDE_DIRECTORIES(/opt/local/include) LINK_DIRECTORIES(/opt/local/lib) -# Set custom data path as macos apps don't use /local/ -SET(CUSTOM_DATA_INSTALL_PATH "/Applications/MegaGlest.app/Contents/Resources/share/megaglest/") - ##install part # This file is in git CRLF but that causes the cpack run to fail -EXECUTE_PROCESS(COMMAND dos2unix -k docs/COPYRIGHT.source_code.txt WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) +CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt" + "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt" NEWLINE_STYLE UNIX) +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt") # This changes Info.plist from something with variables and CMakeisms to # something that can be installed on disk. -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist" - "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") +CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/Info.plist.in" + "${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/Info.plist") +SET(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/Info.plist") include (InstallRequiredSystemLibraries) # Use bundle generator (OSX has 3 other options if you feel adventurous) -set (CPACK_GENERATOR "Bundle") - -# The following CPACK_* options are all required -set (CPACK_PACKAGE_FILE_NAME MegaGlest-${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}) -set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") - -set (CPACK_RESOURCE_FILE_LICENSE - "${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt") -set (CPACK_BUNDLE_NAME "MegaGlest") - -# This variable changs depending on the build type -IF(CMAKE_GENERATOR STREQUAL Xcode) - IF(CMAKE_BUILD_TYPE STREQUAL Release) - set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Release/megaglest") - ELSEIF(CMAKE_BUILD_TYPE STREQUAL Debug) - set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Debug/megaglest") - ENDIF() -ELSE() -# Assume gnumake - set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/megaglest") -ENDIF() - - -set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") +SET(CPACK_GENERATOR "Bundle") +SET(CPACK_BUNDLE_NAME "MegaGlest") +SET(CPACK_PACKAGE_FILE_NAME "MegaGlest-game-macos-${MEGAGLEST_VERSION}") +SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns") +SET(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns") +SET(CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.sh") # Install files in to the package (FIXME: how? we sure?) -INSTALL(FILES +INSTALL(FILES ${LUA_LIBRARIES} - DESTINATION ../Frameworks + DESTINATION ../Frameworks ) #the SDL_LIBRARY is seen as a framework thus we need to remove the suffix... STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}") -#INSTALL(DIRECTORY +#INSTALL(DIRECTORY # ${OGG_LIBRARY} # ${XERCESC_LIBRARY} # ${VORBIS_LIBRARY} # ${SDL_LIBRARY_DIR} # ${PNG_LIBRARY} - # DESTINATION ../Frameworks - # ) - +# DESTINATION ../Frameworks +# ) diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index b9fab2bf..9e3cd5c1 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_MEGAGLEST_MODEL_VIEWER) MESSAGE(STATUS "Will try to build MegaGlest model viewer") + + IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + ADD_DEFINITIONS("-std=c++11") + ENDIF() FIND_PACKAGE(SDL REQUIRED) INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) @@ -128,13 +132,15 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) ENDFOREACH(DIR) OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF) - IF(WANT_DEV_OUTPATH) - IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) - ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) - ENDIF() - ENDIF() + IF(WANT_DEV_OUTPATH) + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) + ELSEIF(UNIX AND APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) + ENDIF() + ENDIF() SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH}) IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "") @@ -199,12 +205,21 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) "${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico" DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) - # Installation of the program desktop file - SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop) + IF(UNIX AND NOT APPLE) + # Installation of the program desktop file + SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop) - INSTALL(FILES - "${MG_DESKTOP_FILE}" - DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + INSTALL(FILES + "${MG_DESKTOP_FILE}" + DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + + IF(NOT BUILD_MEGAGLEST) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png" + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + ENDIF() + ENDIF() ENDIF() ENDIF() diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index f8255048..9b6025df 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -217,13 +217,15 @@ IF(BUILD_MEGAGLEST) ENDIF() OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF) - IF(WANT_DEV_OUTPATH) - IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) - ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) - ENDIF() - ENDIF() + IF(WANT_DEV_OUTPATH) + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) + ELSEIF(UNIX AND APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) + ENDIF() + ENDIF() MESSAGE(STATUS "***Note: The final output path for Megaglest Game will be [${EXECUTABLE_OUTPUT_PATH}]") @@ -299,17 +301,27 @@ IF(BUILD_MEGAGLEST) DESTINATION ${MEGAGLEST_MANPAGE_INSTALL_PATH}) ENDIF() - # rename the ini for installation + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini" + "${PROJECT_SOURCE_DIR}/mk/shared/servers.ini" + DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) IF(WIN32) - INSTALL(FILES - "${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini" - "${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini" - DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) - ELSE() - INSTALL(FILES - "${PROJECT_SOURCE_DIR}/mk/linux/glest.ini" - "${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini" - DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini" + DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) + ELSEIF(UNIX AND NOT APPLE) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/glest.ini" + DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) + ELSEIF(UNIX AND APPLE) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/macosx/glest.ini" + DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) + IF(SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip/") + INSTALL(DIRECTORY + "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip" + DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) + ENDIF() ENDIF() # Installation of data files from outside normal data folder @@ -319,19 +331,32 @@ IF(BUILD_MEGAGLEST) #MESSAGE(STATUS "**Source package detected git folder structure.") - # Installation of the program desktop file - INSTALL(FILES - "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop" - DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + IF(NOT APPLE) + # Installation of the program desktop file + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop" + DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + ENDIF() - # Installation of the program desktop icon file - INSTALL(FILES - "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png" - "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm" - "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp" - "${PROJECT_SOURCE_DIR}/mk/shared/editor.ico" - "${PROJECT_SOURCE_DIR}/mk/shared/glest.ico" - "${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico" - DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) - ENDIF() + # Installation of the program desktop icon file + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/shared/megaglest.ico" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + IF(UNIX AND NOT APPLE) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png" + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + ELSEIF(UNIX AND APPLE) + IF(NOT SINGLE_INSTALL_DIRECTORY) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + ENDIF() + ELSE() + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + ENDIF() + ENDIF() ENDIF() diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index 0651be77..0afc54b9 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6") IF(BUILD_MEGAGLEST_MAP_EDITOR) MESSAGE(STATUS "Will try to build MegaGlest map editor") + + IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + ADD_DEFINITIONS("-std=c++11") + ENDIF() FIND_PACKAGE(SDL REQUIRED) INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) @@ -112,13 +116,15 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ENDFOREACH(DIR) OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF) - IF(WANT_DEV_OUTPATH) - IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) - ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) - ENDIF() - ENDIF() + IF(WANT_DEV_OUTPATH) + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) + ELSEIF(UNIX AND APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) + ENDIF() + ENDIF() SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH}) IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "") @@ -193,12 +199,20 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) "${PROJECT_SOURCE_DIR}/mk/shared/editor.ico" DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) - # Installation of the program desktop file - SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop) + IF(UNIX AND NOT APPLE) + # Installation of the program desktop file + SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop) - INSTALL(FILES - "${MG_DESKTOP_FILE}" - DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + INSTALL(FILES + "${MG_DESKTOP_FILE}" + DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH}) + IF(NOT BUILD_MEGAGLEST) + INSTALL(FILES + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png" + "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm" + DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) + ENDIF() + ENDIF() ENDIF() ENDIF() diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 925c4c54..1cd843dd 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -140,13 +140,15 @@ IF(BUILD_MEGAGLEST_TESTS) SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF) - IF(WANT_DEV_OUTPATH) - IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) - ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) - ENDIF() - ENDIF() + IF(WANT_DEV_OUTPATH) + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) + ELSEIF(UNIX AND APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) + ENDIF() + ENDIF() MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") @@ -164,19 +166,19 @@ IF(BUILD_MEGAGLEST_TESTS) ENDIF() TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) + IF(NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") + # Run the unit tests after build + IF(EXISTS ${XVFB_EXEC}) + MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.") - # Run the unit tests after build - IF(EXISTS ${XVFB_EXEC}) - MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.") - - add_custom_command(TARGET ${TARGET_NAME} POST_BUILD - COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME} - COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...") - - ELSE() - add_custom_command(TARGET ${TARGET_NAME} POST_BUILD - COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME} - COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...") + add_custom_command(TARGET ${TARGET_NAME} POST_BUILD + COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME} + COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...") + ELSE() + add_custom_command(TARGET ${TARGET_NAME} POST_BUILD + COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME} + COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...") + ENDIF() ENDIF() ENDIF() From d3911ea45ea9d356c040fa441fe047b1f8e144d7 Mon Sep 17 00:00:00 2001 From: filux Date: Wed, 25 Feb 2015 16:48:53 +0100 Subject: [PATCH 39/42] initial version of scripts for macos --- mk/macosx/.gitignore | 1 + mk/macosx/CMakeLists.txt | 6 +- mk/macosx/build-mg.sh | 214 +++++++++++++++++++++++++ mk/macosx/make-binary-archive.sh | 67 ++++++++ mk/macosx/make-release-archives.sh | 55 +++++++ mk/macosx/start_headless_gameserver.sh | 60 +++++++ 6 files changed, 400 insertions(+), 3 deletions(-) create mode 100755 mk/macosx/build-mg.sh create mode 100755 mk/macosx/make-binary-archive.sh create mode 100755 mk/macosx/make-release-archives.sh create mode 100755 mk/macosx/start_headless_gameserver.sh diff --git a/mk/macosx/.gitignore b/mk/macosx/.gitignore index d90dcefc..2fc9fa28 100644 --- a/mk/macosx/.gitignore +++ b/mk/macosx/.gitignore @@ -6,6 +6,7 @@ core core.bak +/p7zip/ /build/ /[Rr]elease/ /[Dd]ebug/ diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index c37eb16a..c8d763b6 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -25,9 +25,9 @@ LINK_DIRECTORIES(/opt/local/lib) ##install part # This file is in git CRLF but that causes the cpack run to fail -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt" - "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt" NEWLINE_STYLE UNIX) -SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt") +#CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt" +# "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt" NEWLINE_STYLE UNIX) +#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt") # This changes Info.plist from something with variables and CMakeisms to # something that can be installed on disk. diff --git a/mk/macosx/build-mg.sh b/mk/macosx/build-mg.sh new file mode 100755 index 00000000..6a8aa02d --- /dev/null +++ b/mk/macosx/build-mg.sh @@ -0,0 +1,214 @@ +#!/bin/sh +# Use this script to build MegaGlest using cmake +# ---------------------------------------------------------------------------- +# 2011 Written by Mark Vejvoda +# 2015 Rewritten by filux +# Copyright (c) 2011-2015 under GNU GPL v3.0+ +# ---------------------------------------------------------------------------- +# Default to English language output so we can understand your bug reports +export LANG=C + +SCRIPTDIR="$(cd "$(dirname "$0")"; pwd)" +BUILD_BUNDLE=0 +CPU_COUNT=-1 +CMAKE_ONLY=0 +MAKE_ONLY=0 +USE_XCODE=0 +CLANG_FORCED=0 +WANT_STATIC_LIBS="-DWANT_STATIC_LIBS=ON" +LUA_FORCED_VERSION=0 + +while getopts "c:dfhl:mnxb" option; do + case "${option}" in + c) CPU_COUNT=${OPTARG};; + d) WANT_STATIC_LIBS="-DWANT_STATIC_LIBS=OFF";; + f) CLANG_FORCED=1;; + h) echo "Usage: $0