Author: cazfi Date: Thu Nov 20 17:51:40 2014 New Revision: 27084 URL: http://svn.gna.org/viewcvs/freeciv?rev=27084&view=rev Log: Added support for building Qt-client package for Windows.
Patch by Christian Prochaska <cproc> and myself See task #7752 Added: trunk/win32/installer/create-freeciv-gtk-qt-nsi.sh - copied, changed from r27083, trunk/win32/installer/create-freeciv-gtk-nsi.sh Removed: trunk/win32/installer/create-freeciv-gtk-nsi.sh Modified: trunk/win32/Makefile.am trunk/win32/installer/Makefile trunk/win32/installer/create-freeciv-gtk2-nsi.sh trunk/win32/installer/create-freeciv-gtk3-nsi.sh Modified: trunk/win32/Makefile.am URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/Makefile.am?rev=27084&r1=27083&r2=27084&view=diff ============================================================================== --- trunk/win32/Makefile.am (original) +++ trunk/win32/Makefile.am Thu Nov 20 17:51:40 2014 @@ -7,14 +7,17 @@ clienticon.rc \ mpicon.rc \ servericon.rc \ - installer/create-freeciv-gtk-nsi.sh \ + installer/create-freeciv-gtk-qt-nsi.sh \ installer/create-freeciv-gtk2-nsi.sh \ installer/create-freeciv-gtk3-nsi.sh \ + installer/create-freeciv-qt-nsi.sh \ installer/create-freeciv-sdl-nsi.sh \ installer/freeciv-gtk2.cmd \ installer/freeciv-gtk3.cmd \ installer/freeciv-mp-gtk2.cmd \ installer/freeciv-mp-gtk3.cmd \ + installer/freeciv-mp-qt.cmd \ + installer/freeciv-qt.cmd \ installer/freeciv-sdl.cmd \ installer/freeciv-server.cmd \ installer/Freeciv.url \ Modified: trunk/win32/installer/Makefile URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/installer/Makefile?rev=27084&r1=27083&r2=27084&view=diff ============================================================================== --- trunk/win32/installer/Makefile (original) +++ trunk/win32/installer/Makefile Thu Nov 20 17:51:40 2014 @@ -36,6 +36,9 @@ sdl-installer: make GUI=sdl FCMP=gtk3 wrap-sdl +qt-installer: + make GUI=qt FCMP=qt wrap-qt + snapshot: cd ../.. ; ./autogen.sh --no-configure-run make EXTRA_CONFIG="--enable-svnrev" all @@ -57,6 +60,7 @@ build-freeciv-sdl: build-freeciv-common +build-freeciv-qt: build-freeciv-common # install Freeciv @@ -90,6 +94,7 @@ cp /opt/un-fonts/UnDotum.ttf install-sdl/data/themes/gui-sdl/human/ cp /opt/un-fonts/COPYING install-sdl/data/themes/gui-sdl/human/COPYING.UnDotum +install-freeciv-qt: install-freeciv-common # install Freeciv environment @@ -183,6 +188,17 @@ # add DLLs cp -R $(addprefix /bin/, $(SDL_DLLS)) install-$(GUI) +QT_DLLS := \ + libstdc++-6.dll \ + Qt5Core.dll \ + Qt5Gui.dll \ + Qt5Widgets.dll + +install-env-qt: install-env-default-fcmp + # add DLLs + cp -R $(addprefix /bin/, $(QT_DLLS)) install-$(GUI) + # add additional Qt files + cp -R /plugins install-$(GUI)/ # build installer @@ -201,6 +217,8 @@ wrap-sdl: build-freeciv-sdl installer-common +wrap-qt: build-freeciv-qt installer-common + # cleanup @@ -218,3 +236,4 @@ make GUI=gtk3 clean-build-common clean-install-common clean-installer-common make GUI=gtk2 clean-build-common clean-install-common clean-installer-common make GUI=sdl clean-build-common clean-install-common clean-installer-common + make GUI=qt clean-build-common clean-install-common clean-installer-common Removed: trunk/win32/installer/create-freeciv-gtk-nsi.sh URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/installer/create-freeciv-gtk-nsi.sh?rev=27083&view=auto ============================================================================== --- trunk/win32/installer/create-freeciv-gtk-nsi.sh (original) +++ trunk/win32/installer/create-freeciv-gtk-nsi.sh (removed) @@ -1,319 +0,0 @@ -#!/bin/sh - -# ./create-freeciv-gtk-nsi.sh <Freeciv files directory> <version> <gtk2|gtk3> <GTK+2|GTK+3> - -cat <<EOF -; Freeciv Windows installer script -; some parts adapted from Wesnoth installer script - -SetCompressor /SOLID lzma - -!define APPNAME "Freeciv" -!define VERSION $2 -!define GUI_ID $3 -!define GUI_NAME $4 -!define APPID "\${APPNAME}-\${VERSION}-\${GUI_ID}" - -!define MULTIUSER_EXECUTIONLEVEL Highest -!define MULTIUSER_MUI -!define MULTIUSER_INSTALLMODE_COMMANDLINE -!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\\\${APPNAME}\\\${VERSION}\\\${GUI_ID}" -!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "" -!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\\\${APPNAME}\\\${VERSION}\\\${GUI_ID}" -!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "" -!define MULTIUSER_INSTALLMODE_INSTDIR "\${APPNAME}-\${VERSION}-\${GUI_ID}" - -!include "MultiUser.nsh" -!include "MUI2.nsh" -!include "nsDialogs.nsh" - -;General - -Name "\${APPNAME} \${VERSION} (\${GUI_NAME} client)" -OutFile "Output/\${APPNAME}-\${VERSION}-win32-\${GUI_ID}-setup.exe" - -;Variables - -Var STARTMENU_FOLDER -Var DefaultLanguageCode -Var LangName - -; Pages - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "$1\doc\freeciv\COPYING" -!insertmacro MUI_PAGE_COMPONENTS -Page custom DefaultLanguage DefaultLanguageLeave -!insertmacro MULTIUSER_PAGE_INSTALLMODE -!insertmacro MUI_PAGE_DIRECTORY - -;Start Menu Folder Page Configuration -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\\\${APPNAME}\\\${VERSION}\\\${GUI_ID}" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "\$(^Name)" - -!insertmacro MUI_PAGE_STARTMENU "Application" \$STARTMENU_FOLDER -!insertmacro MUI_PAGE_INSTFILES - -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_FUNCTION RunFreeciv -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -;Languages - -!insertmacro MUI_LANGUAGE "English" - -EOF - -### required files ### - -cat <<EOF -; The stuff to install -Section "\${APPNAME} (required)" - - SectionIn RO - - SetOutPath \$INSTDIR -EOF - - # find files and directories to exclude from default installation - - echo -n " File /nonfatal /r " - - # languages - echo -n "/x locale " - - # soundsets - find $1/data -mindepth 1 -maxdepth 1 -name *.soundspec -printf %f\\n | - sed 's|.soundspec||' | - while read -r name - do - echo -n "/x $name.soundspec /x $name " - done - - echo "$1\\*.*" - -cat <<EOF - - ; Write the installation path into the registry - WriteRegStr "SHCTX" SOFTWARE\\\${APPNAME}\\\${VERSION}\\\${GUI_ID} "" "\$INSTDIR" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "\$SMPROGRAMS\\\$STARTMENU_FOLDER" - CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv.lnk" "\$INSTDIR\freeciv-\${GUI_ID}.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-\${GUI_ID}.exe" 0 SW_SHOWMINIMIZED - CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv Server.lnk" "\$INSTDIR\freeciv-server.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-server.exe" 0 SW_SHOWMINIMIZED - CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv Modpack Installer.lnk" "\$INSTDIR\freeciv-mp-\${GUI_ID}.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-mp-\${GUI_ID}.exe" 0 SW_SHOWMINIMIZED - CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Uninstall.lnk" "\$INSTDIR\uninstall.exe" - CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Website.lnk" "\$INSTDIR\Freeciv.url" - !insertmacro MUI_STARTMENU_WRITE_END - - ; Write the uninstall keys for Windows - WriteRegStr "SHCTX" "Software\Microsoft\Windows\CurrentVersion\Uninstall\\\${APPID}" "DisplayName" "\$(^Name)" - WriteRegStr "SHCTX" "Software\Microsoft\Windows\CurrentVersion\Uninstall\\\${APPID}" "UninstallString" '"\$INSTDIR\uninstall.exe"' - WriteRegDWORD "SHCTX" "Software\Microsoft\Windows\CurrentVersion\Uninstall\\\${APPID}" "NoModify" 1 - WriteRegDWORD "SHCTX" "Software\Microsoft\Windows\CurrentVersion\Uninstall\\\${APPID}" "NoRepair" 1 - WriteUninstaller "uninstall.exe" - - SetOutPath \$INSTDIR -SectionEnd - -EOF - -### soundsets ### - -cat <<EOF -SectionGroup "Soundsets" - -EOF - -find $1/data -mindepth 1 -maxdepth 1 -name *.soundspec -printf %f\\n | -sort | -sed 's|.soundspec||' | -while read -r name -do -if test -d $1/data/$name; then -echo " Section \"$name\"" -echo " SetOutPath \$INSTDIR\\data" -echo " File /r $1\data\\$name.soundspec" -echo " SetOutPath \$INSTDIR\\data\\$name" -echo " File /r $1\\data\\$name\*.*" -echo " SetOutPath \$INSTDIR" -echo " SectionEnd" -echo -fi -done - -cat <<EOF -SectionGroupEnd - -EOF - -### additional languages ### - -cat <<EOF -SectionGroup "Additional languages" - -EOF - -cat ../../bootstrap/langnames.txt | -sort -k 2 | -while read -r code name -do -if test -e $1/share/locale/$code/LC_MESSAGES/freeciv.mo; then -echo " Section \"$name ($code)\"" -echo " SetOutPath \$INSTDIR\\share\\locale\\$code" -echo " File /r $1\\share\\locale\\$code\*.*" -echo " SetOutPath \$INSTDIR" -echo " SectionEnd" -echo -fi -done - -cat <<EOF -SectionGroupEnd - -EOF - -cat <<EOF -;-------------------------------- -;Installer Functions - -Function .onInit - - !insertmacro MULTIUSER_INIT - -FunctionEnd - -Var DefaultLanguageDialog -Var DefaultLanguageLabel -Var DefaultLanguageDropList - -Function DefaultLanguage - !insertmacro MUI_HEADER_TEXT "Choose Default Language" "" - - nsDialogs::Create 1018 - Pop \$DefaultLanguageDialog - - \${If} \$DefaultLanguageDialog == error - Abort - \${EndIf} - - \${NSD_CreateLabel} 0 0 100% 30% \ -"If you want to play Freeciv in a language other than your Windows language or \ -if Freeciv's auto-detection of your Windows language does not work correctly, \ -you can select a specific language to be used by Freeciv here. Be sure \ -you haven't unmarked the installation of the corresponding language files \ -in the previous dialog. You can also change this setting later in the Freeciv \ -Start Menu shortcut properties." - Pop \$DefaultLanguageLabel - - \${NSD_CreateDropList} 0 -60% 100% 13u "" - Pop \$DefaultLanguageDropList - - \${NSD_CB_AddString} \$DefaultLanguageDropList "Autodetected" - \${NSD_CB_SelectString} \$DefaultLanguageDropList "Autodetected" - \${NSD_CB_AddString} \$DefaultLanguageDropList "US English (en_US)" -EOF - - cat ../../bootstrap/langnames.txt | - sort -k 2 | - while read -r code name - do - if test -e $1/share/locale/$code/LC_MESSAGES/freeciv.mo; then - echo " \${NSD_CB_AddString} \$DefaultLanguageDropList \"$name ($code)\"" - fi - done - -cat <<EOF - nsDialogs::Show -FunctionEnd - -Function DefaultLanguageLeave - \${NSD_GetText} \$DefaultLanguageDropList \$LangName -EOF - - echo " \${If} \$LangName == \"Autodetected\"" - echo " StrCpy \$DefaultLanguageCode \"auto\"" - echo " \${EndIf}" - echo " \${If} \$LangName == \"US English (en_US)\"" - echo " StrCpy \$DefaultLanguageCode \"en_US\"" - echo " \${EndIf}" - - cat ../../bootstrap/langnames.txt | - while read -r code name - do - echo " \${If} \$LangName == \"$name ($code)\"" - echo " StrCpy \$DefaultLanguageCode \"$code\"" - echo " \${EndIf}" - done - -cat <<EOF -FunctionEnd - -Function RunFreeciv - nsExec::Exec '"\$INSTDIR\freeciv-\${GUI_ID}.cmd" \$DefaultLanguageCode' -FunctionEnd - -EOF - -### uninstall section ### - -cat <<EOF -; special uninstall section. -Section "Uninstall" - - ; remove files -EOF - -find $1 -type f | -grep -v '/$' | -sed 's|[^/]*||' | -tr '/' '\\' | while read -r name -do -echo " Delete \"\$INSTDIR$name\"" -done - -find $1 -depth -type d | -grep -v '/$' | -sed 's|[^/]*||' | -tr '/' '\\' | while read -r name -do -echo " RMDir \"\$INSTDIR$name\"" -done - -cat <<EOF - - ; MUST REMOVE UNINSTALLER, too - Delete "\$INSTDIR\uninstall.exe" - - ; remove install directory, if empty - RMDir "\$INSTDIR" - - ; remove shortcuts, if any. - !insertmacro MUI_STARTMENU_GETFOLDER "Application" \$STARTMENU_FOLDER - Delete "\$SMPROGRAMS\\\$STARTMENU_FOLDER\*.*" - RMDir "\$SMPROGRAMS\\\$STARTMENU_FOLDER" - - ; remove registry keys - DeleteRegKey "SHCTX" "Software\Microsoft\Windows\CurrentVersion\Uninstall\\\${APPID}" - DeleteRegKey /ifempty "SHCTX" SOFTWARE\\\${APPNAME}\\\${VERSION}\\\${GUI_ID} - DeleteRegKey /ifempty "SHCTX" SOFTWARE\\\${APPNAME}\\\${VERSION} - DeleteRegKey /ifempty "SHCTX" SOFTWARE\\\${APPNAME} -SectionEnd -EOF - -cat <<EOF -;-------------------------------- -;Uninstaller Functions - -Function un.onInit - - !insertmacro MULTIUSER_UNINIT - -FunctionEnd - -EOF Copied: trunk/win32/installer/create-freeciv-gtk-qt-nsi.sh (from r27083, trunk/win32/installer/create-freeciv-gtk-nsi.sh) URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/installer/create-freeciv-gtk-qt-nsi.sh?p2=trunk/win32/installer/create-freeciv-gtk-qt-nsi.sh&p1=trunk/win32/installer/create-freeciv-gtk-nsi.sh&r1=27083&r2=27084&rev=27084&view=diff ============================================================================== --- trunk/win32/installer/create-freeciv-gtk-nsi.sh (original) +++ trunk/win32/installer/create-freeciv-gtk-qt-nsi.sh Thu Nov 20 17:51:40 2014 @@ -1,6 +1,6 @@ #!/bin/sh -# ./create-freeciv-gtk-nsi.sh <Freeciv files directory> <version> <gtk2|gtk3> <GTK+2|GTK+3> +# ./create-freeciv-gtk-qt-nsi.sh <Freeciv files directory> <version> <gtk2|gtk3|qt> <GTK+2|GTK+3|Qt> cat <<EOF ; Freeciv Windows installer script Modified: trunk/win32/installer/create-freeciv-gtk2-nsi.sh URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/installer/create-freeciv-gtk2-nsi.sh?rev=27084&r1=27083&r2=27084&view=diff ============================================================================== --- trunk/win32/installer/create-freeciv-gtk2-nsi.sh (original) +++ trunk/win32/installer/create-freeciv-gtk2-nsi.sh Thu Nov 20 17:51:40 2014 @@ -2,4 +2,4 @@ # ./create-freeciv-gtk2-nsi.sh <Freeciv files directory> <version> -./create-freeciv-gtk-nsi.sh $1 $2 "gtk2" "GTK+2" +./create-freeciv-gtk-qt-nsi.sh $1 $2 "gtk2" "GTK+2" Modified: trunk/win32/installer/create-freeciv-gtk3-nsi.sh URL: http://svn.gna.org/viewcvs/freeciv/trunk/win32/installer/create-freeciv-gtk3-nsi.sh?rev=27084&r1=27083&r2=27084&view=diff ============================================================================== --- trunk/win32/installer/create-freeciv-gtk3-nsi.sh (original) +++ trunk/win32/installer/create-freeciv-gtk3-nsi.sh Thu Nov 20 17:51:40 2014 @@ -2,4 +2,4 @@ # ./create-freeciv-gtk3-nsi.sh <Freeciv files directory> <version> -./create-freeciv-gtk-nsi.sh $1 $2 "gtk3" "GTK+3" +./create-freeciv-gtk-qt-nsi.sh $1 $2 "gtk3" "GTK+3" _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits