From 9a309b78ac43cadc90970ce2f0d31e3fdd65c71c Mon Sep 17 00:00:00 2001 From: aurhat Date: Thu, 4 Aug 2016 22:59:12 +0200 Subject: [PATCH] Update scripts for preparing Windows installer Added windows batch file for portable use and removed batch without profile directory. --- assaultcube.bat | 2 +- assaultcube_portable.bat | 4 + assaultcube_release.bat | 1 - source/vcpp/buildEnv/InstallTypes.ini | 37 --- source/vcpp/buildEnv/ac.nsi | 294 +++++------------- source/vcpp/buildEnv/ac_patch.nsi | 122 +++----- source/vcpp/buildEnv/build_1_exportACdev.bat | 25 ++ source/vcpp/buildEnv/build_1_exportSVN.bat | 3 - .../buildEnv/build_2_prepareACdirectory.bat | 43 ++- .../vcpp/buildEnv/build_3_createInstaller.bat | 2 +- source/vcpp/buildEnv/get-patch.ps1 | 23 -- source/vcpp/buildEnv/mui_page_license.txt | 3 +- source/vcpp/buildEnv/new-patch.ps1 | 23 -- source/vcpp/buildEnv/patch_createPatch.bat | 8 +- .../vcpp/buildEnv/release_Installer_Cur.bat | 9 +- source/vcpp/license.txt | 13 +- 16 files changed, 198 insertions(+), 414 deletions(-) create mode 100644 assaultcube_portable.bat delete mode 100644 assaultcube_release.bat delete mode 100644 source/vcpp/buildEnv/InstallTypes.ini create mode 100644 source/vcpp/buildEnv/build_1_exportACdev.bat delete mode 100644 source/vcpp/buildEnv/build_1_exportSVN.bat delete mode 100644 source/vcpp/buildEnv/get-patch.ps1 delete mode 100644 source/vcpp/buildEnv/new-patch.ps1 diff --git a/assaultcube.bat b/assaultcube.bat index a88e5944..1bb850a8 100644 --- a/assaultcube.bat +++ b/assaultcube.bat @@ -1 +1 @@ -start bin_win32\ac_client.exe --init %1 %2 %3 %4 %5 +start bin_win32\ac_client.exe "--home=?MYDOCUMENTS?\My Games\AssaultCube\v1.2next" --init %1 %2 %3 %4 %5 diff --git a/assaultcube_portable.bat b/assaultcube_portable.bat new file mode 100644 index 00000000..404b3c88 --- /dev/null +++ b/assaultcube_portable.bat @@ -0,0 +1,4 @@ +@echo off +%~d0 +cd %~p0 +start bin_win32\ac_client.exe --home=profile --init %1 %2 %3 %4 %5 diff --git a/assaultcube_release.bat b/assaultcube_release.bat deleted file mode 100644 index 1bb850a8..00000000 --- a/assaultcube_release.bat +++ /dev/null @@ -1 +0,0 @@ -start bin_win32\ac_client.exe "--home=?MYDOCUMENTS?\My Games\AssaultCube\v1.2next" --init %1 %2 %3 %4 %5 diff --git a/source/vcpp/buildEnv/InstallTypes.ini b/source/vcpp/buildEnv/InstallTypes.ini deleted file mode 100644 index cec45ff6..00000000 --- a/source/vcpp/buildEnv/InstallTypes.ini +++ /dev/null @@ -1,37 +0,0 @@ -[Settings] -NumFields=4 - -[Field 1] -Type=RadioButton -Flags=GROUP -Left=20 -Right=255 -Top=20 -Bottom=30 -Text=Install Regularly -State=1 - -[Field 2] -Type=RadioButton -Flags= -Left=20 -Right=255 -Top=60 -Bottom=70 -Text=Install using "My Documents" directory for user data - -[Field 3] -Type=Label -Text=Installs AssaultCube appropriate for a single user on Microsoft Windows XP and earlier. User data will be stored in the installation directory. -Left=32 -Right=300 -Top=35 -Bottom=55 - -[Field 4] -Type=Label -Text=Installs AssaultCube for multiple users by configuring it to store user data inside the "My Documents" folder. Recommended for Microsoft Windows Vista and Windows 7. -Left=32 -Right=300 -Top=75 -Bottom=105 diff --git a/source/vcpp/buildEnv/ac.nsi b/source/vcpp/buildEnv/ac.nsi index d97537ea..32165001 100644 --- a/source/vcpp/buildEnv/ac.nsi +++ b/source/vcpp/buildEnv/ac.nsi @@ -5,109 +5,46 @@ # Open Browser Window -# Uses $0 -Function openLinkNewWindow - Push $3 - Push $2 - Push $1 - Push $0 - ReadRegStr $0 HKCR "http\shell\open\command" "" -# Get browser path - DetailPrint $0 - StrCpy $2 '"' - StrCpy $1 $0 1 - StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char - StrCpy $2 ' ' - StrCpy $3 1 - loop: - StrCpy $1 $0 1 $3 - DetailPrint $1 - StrCmp $1 $2 found - StrCmp $1 "" found - IntOp $3 $3 + 1 - Goto loop +!macro openLink un + # Uses $0 + Function ${un}openLinkNewWindow + Push $3 + Push $2 + Push $1 + Push $0 + ReadRegStr $0 HKCR "http\shell\open\command" "" + # Get browser path + DetailPrint $0 + StrCpy $2 '"' + StrCpy $1 $0 1 + StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char + StrCpy $2 ' ' + StrCpy $3 1 + loop: + StrCpy $1 $0 1 $3 + DetailPrint $1 + StrCmp $1 $2 found + StrCmp $1 "" found + IntOp $3 $3 + 1 + Goto loop - found: - StrCpy $1 $0 $3 - StrCmp $2 " " +2 - StrCpy $1 '$1"' + found: + StrCpy $1 $0 $3 + StrCmp $2 " " +2 + StrCpy $1 '$1"' - Pop $0 - Exec '$1 $0' - Pop $1 - Pop $2 - Pop $3 -FunctionEnd + Pop $0 + Exec '$1 $0' + Pop $1 + Pop $2 + Pop $3 + FunctionEnd +!macroend -# Uses $0 -Function un.openLinkNewWindow - Push $3 - Push $2 - Push $1 - Push $0 - ReadRegStr $0 HKCR "http\shell\open\command" "" -# Get browser path - DetailPrint $0 - StrCpy $2 '"' - StrCpy $1 $0 1 - StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char - StrCpy $2 ' ' - StrCpy $3 1 - loop: - StrCpy $1 $0 1 $3 - DetailPrint $1 - StrCmp $1 $2 found - StrCmp $1 "" found - IntOp $3 $3 + 1 - Goto loop - - found: - StrCpy $1 $0 $3 - StrCmp $2 " " +2 - StrCpy $1 '$1"' - - Pop $0 - Exec '$1 $0' - Pop $1 - Pop $2 - Pop $3 -FunctionEnd +!insertmacro openLink "" +!insertmacro openLink "un." -Function SplitFirstStrPart - Exch $R0 - Exch - Exch $R1 - Push $R2 - Push $R3 - StrCpy $R3 $R1 - StrLen $R1 $R0 - IntOp $R1 $R1 + 1 - loop: - IntOp $R1 $R1 - 1 - StrCpy $R2 $R0 1 -$R1 - StrCmp $R1 0 exit0 - StrCmp $R2 $R3 exit1 loop - exit0: - StrCpy $R1 "" - Goto exit2 - exit1: - IntOp $R1 $R1 - 1 - StrCmp $R1 0 0 +3 - StrCpy $R2 "" - Goto +2 - StrCpy $R2 $R0 "" -$R1 - IntOp $R1 $R1 + 1 - StrCpy $R0 $R0 -$R1 - StrCpy $R1 $R2 - exit2: - Pop $R3 - Pop $R2 - Exch $R1 ;rest - Exch - Exch $R0 ;first -FunctionEnd - ; CONFIGURATION ; general @@ -115,11 +52,11 @@ FunctionEnd SetCompressor /SOLID lzma !define CURPATH ".\" ; must include the installer graphics and the \ac\ directory -!define AC_FULLVERSION "v1.2.0.2" !define AC_FULLVERSIONINT "1.2.0.2" +!define AC_FULLVERSION "v${AC_FULLVERSIONINT}" !define AC_SHORTNAME "AssaultCube" -!define AC_FULLNAME "AssaultCube v1.2.0.2" -!define AC_FULLNAMESAVE "AssaultCube_v1.2.0.2" +!define AC_FULLNAME "AssaultCube ${AC_FULLVERSION}" +!define AC_FULLNAMESAVE "AssaultCube_${AC_FULLVERSION}" !define AC_URLPROTOCOL "assaultcube" !define AC_MAJORVERSIONINT 1 !define AC_MINORVERSIONINT 2 @@ -131,6 +68,22 @@ InstallDir "$PROGRAMFILES\${AC_SHORTNAME}" InstallDirRegKey HKLM "Software\${AC_SHORTNAME}" "" RequestExecutionLevel admin ; require admin in Vista/7 +Function LeaveDirectory + IfFileExists $INSTDIR\Uninstall.exe 0 true + MessageBox MB_YESNO|MB_ICONQUESTION \ + "The directory $INSTDIR already exists. \ + $\nPrevious AssaultCube version in this directory will be uninstalled, if you will install there new version. \ + $\n$\nDo you want to continue? Press 'No' to install AssaultCube in different directory." \ + IDYES true IDNO false + true: + ClearErrors + ExecWait '$INSTDIR\Uninstall.exe /S' + Goto next + false: + Abort + next: +FunctionEnd + ; Interface Configuration !define MUI_HEADERIMAGE @@ -148,9 +101,11 @@ UninstallIcon "${CURPATH}\icon.ico" Page custom WelcomePage !insertmacro MUI_PAGE_LICENSE "${CURPATH}\mui_page_license.txt" -Page custom InstallationTypePage !insertmacro MUI_PAGE_COMPONENTS + +!define MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveDirectory !insertmacro MUI_PAGE_DIRECTORY + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${AC_SHORTNAME}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "start_menu" @@ -274,7 +229,6 @@ Page custom FinishPage Var DIALOG Var HEADLINE Var TEXT -Var HWND Var IMAGECTL Var IMAGE @@ -290,34 +244,15 @@ VIAddVersionKey "ProductVersion" "${AC_FULLVERSIONINT}" Function .onInit - ;Uninstall previous installation - ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_SHORTNAME}" "UninstallString" - StrCmp $R0 "" done - - IfSilent uninst - MessageBox MB_YESNO|MB_ICONQUESTION \ - "${AC_SHORTNAME} is already installed. $\n$\nDo you want to uninstall the previous installation?" \ - IDYES uninst \ - IDNO done - - ;Run the uninstaller silently - uninst: - ClearErrors - ExecWait '$R0 /S' - - done: - InitPluginsDir File /oname=$TEMP\welcome.bmp "${CURPATH}\welcome.bmp" - !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "InstallTypes.ini" "InstallTypes.ini" - FunctionEnd Function .onInstSuccess IfSilent skipopenlink - StrCpy $0 "http://assault.cubers.net/releasenotes/v1.2/" + StrCpy $0 "http://assault.cubers.net/releasenotes/v${AC_MAJORVERSIONINT}.${AC_MINORVERSIONINT}/" Call openLinkNewWindow skipopenlink: @@ -326,7 +261,7 @@ FunctionEnd Function un.onUninstSuccess IfSilent skipopenlink - StrCpy $0 "http://assault.cubers.net/uninstallnotes/v1.2/" + StrCpy $0 "http://assault.cubers.net/uninstallnotes/v${AC_MAJORVERSIONINT}.${AC_MINORVERSIONINT}/" Call un.openLinkNewWindow skipopenlink: @@ -460,78 +395,6 @@ Function FinishPage FunctionEnd -Function DisableMultiuserOption - - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 2" "Flags" "DISABLED" - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 4" "Flags" "DISABLED" - - ; fix currently selected option - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 2" "State" "0" - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 1" "State" "1" - -FunctionEnd - - -Function InstallationTypePage - - ; check if "my documents" folder is present, might disable 2nd option - - ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Personal" - StrCmp $0 "" nohome hashome - nohome: - - Call DisableMultiuserOption ; not present, disable option - goto homecheckdone - - hashome: - homecheckdone: - - - ; check installed windows version, might change default option - - GetVersion::WindowsVersion - Pop $R0 - Push "." ; divider char - Push $R0 ; input string - Call SplitFirstStrPart - Pop $R0 ; major version - Pop $R1 ; minor version - - StrCmp $R0 "6" 0 winvercheckdone ; vista - - ; suggest multiuser option on vista and later - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 2" "State" "1" - !insertmacro MUI_INSTALLOPTIONS_WRITE "InstallTypes.ini" "Field 1" "State" "0" - - winvercheckdone: - - - ; set up GUI - - !insertmacro MUI_HEADER_TEXT "Installation Type" "Select the installation type" - !insertmacro MUI_INSTALLOPTIONS_DISPLAY "InstallTypes.ini" - - Pop $HWND - - GetDlgItem $1 $HWNDPARENT 1 - EnableWindow $1 0 - - !insertmacro MUI_INSTALLOPTIONS_SHOW - Pop $0 - -FunctionEnd - - -Function ConfigureWithoutAppdata - - ; configure ac without home dir - - FileOpen $9 "$INSTDIR\AssaultCube.bat" w - FileWrite $9 "start bin_win32\ac_client.exe --init %1 %2 %3 %4 %5$\r$\n" - FileClose $9 - -FunctionEnd - ; Installer Sections Section "AssaultCube ${AC_FULLVERSION}" AC @@ -568,21 +431,11 @@ Section "AssaultCube ${AC_FULLVERSION}" AC SetShellVarContext all CreateDirectory "$SMPROGRAMS\$StartMenuFolder" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${AC_SHORTNAME}.lnk" "$INSTDIR\AssaultCube.bat" "" "$INSTDIR\docs\images\favicon.ico" 0 SW_SHOWMINIMIZED + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${AC_SHORTNAME}.lnk" "$INSTDIR\assaultcube.bat" "" "$INSTDIR\docs\images\favicon.ico" 0 SW_SHOWMINIMIZED CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\docs\images\favicon.ico" 0 CreateShortCut "$SMPROGRAMS\$StartMenuFolder\README.lnk" "$INSTDIR\README.html" "" "" 0 !insertmacro MUI_STARTMENU_WRITE_END - - - ; set up ac dir config - - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "InstallTypes.ini" "Field 1" "State" - !insertmacro MUI_INSTALLOPTIONS_READ $R1 "InstallTypes.ini" "Field 2" "State" - - StrCmp $R0 "1" 0 appdatadone - Call ConfigureWithoutAppdata - appdatadone: SectionEnd @@ -597,7 +450,7 @@ Section "Desktop Shortcuts" DESKSHORTCUTS SetShellVarContext all - CreateShortCut "$DESKTOP\${AC_SHORTNAME}.lnk" "$INSTDIR\AssaultCube.bat" "" "$INSTDIR\docs\images\favicon.ico" 0 SW_SHOWMINIMIZED + CreateShortCut "$DESKTOP\${AC_SHORTNAME}.lnk" "$INSTDIR\assaultcube.bat" "" "$INSTDIR\docs\images\favicon.ico" 0 SW_SHOWMINIMIZED SectionEnd @@ -614,9 +467,28 @@ Section "Uninstall" SetShellVarContext all - ; delete directory + ; delete installation directory - RMDir /r "$INSTDIR" + ; RMDir /r "$INSTDIR" is not safe + RMDir /r "$INSTDIR\bin_win32" + RMDir /r "$INSTDIR\bin_win64" + RMDir /r "$INSTDIR\bot" + RMDir /r "$INSTDIR\config" + Delete "$INSTDIR\demos\tutorial_demo.dmo" + RMDir "$INSTDIR\demos" + RMDir /r "$INSTDIR\docs" + Delete "$INSTDIR\mods\ac_mods_README.html" + RMDir "$INSTDIR\mods" + RMDir /r "$INSTDIR\packages" + RMDir "$INSTDIR\screenshots" + Delete "$INSTDIR\assaultcube*.bat" + Delete "$INSTDIR\changelog.txt" + Delete "$INSTDIR\README*" + Delete "$INSTDIR\server*.bat" + + Delete "$INSTDIR\Uninstall.exe" + + RMDir "$INSTDIR" ; delete shortcuts @@ -627,7 +499,7 @@ Section "Uninstall" Delete "$SMPROGRAMS\$StartMenuFolder\${AC_SHORTNAME}.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\README.lnk" - RmDir "$SMPROGRAMS\$StartMenuFolder" + RMDir "$SMPROGRAMS\$StartMenuFolder" ; delete reg keys diff --git a/source/vcpp/buildEnv/ac_patch.nsi b/source/vcpp/buildEnv/ac_patch.nsi index c78c6845..3ae23e3c 100644 --- a/source/vcpp/buildEnv/ac_patch.nsi +++ b/source/vcpp/buildEnv/ac_patch.nsi @@ -7,70 +7,36 @@ # Uses $0 Function openLinkNewWindow - Push $3 - Push $2 - Push $1 - Push $0 - ReadRegStr $0 HKCR "http\shell\open\command" "" -# Get browser path + Push $3 + Push $2 + Push $1 + Push $0 + ReadRegStr $0 HKCR "http\shell\open\command" "" + # Get browser path DetailPrint $0 - StrCpy $2 '"' - StrCpy $1 $0 1 - StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char + StrCpy $2 '"' + StrCpy $1 $0 1 + StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char StrCpy $2 ' ' - StrCpy $3 1 - loop: - StrCpy $1 $0 1 $3 - DetailPrint $1 - StrCmp $1 $2 found - StrCmp $1 "" found - IntOp $3 $3 + 1 - Goto loop + StrCpy $3 1 + loop: + StrCpy $1 $0 1 $3 + DetailPrint $1 + StrCmp $1 $2 found + StrCmp $1 "" found + IntOp $3 $3 + 1 + Goto loop - found: - StrCpy $1 $0 $3 - StrCmp $2 " " +2 - StrCpy $1 '$1"' + found: + StrCpy $1 $0 $3 + StrCmp $2 " " +2 + StrCpy $1 '$1"' - Pop $0 - Exec '$1 $0' - Pop $1 - Pop $2 - Pop $3 -FunctionEnd - -# Uses $0 -Function un.openLinkNewWindow - Push $3 - Push $2 - Push $1 - Push $0 - ReadRegStr $0 HKCR "http\shell\open\command" "" -# Get browser path - DetailPrint $0 - StrCpy $2 '"' - StrCpy $1 $0 1 - StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char - StrCpy $2 ' ' - StrCpy $3 1 - loop: - StrCpy $1 $0 1 $3 - DetailPrint $1 - StrCmp $1 $2 found - StrCmp $1 "" found - IntOp $3 $3 + 1 - Goto loop - - found: - StrCpy $1 $0 $3 - StrCmp $2 " " +2 - StrCpy $1 '$1"' - - Pop $0 - Exec '$1 $0' - Pop $1 - Pop $2 - Pop $3 + Pop $0 + Exec '$1 $0' + Pop $1 + Pop $2 + Pop $3 FunctionEnd @@ -80,19 +46,20 @@ FunctionEnd SetCompressor /SOLID lzma -!define CURPATH "R:\projects\actioncube\_svn\trunk\ac\source\vcpp\buildEnv" ; CHANGE ME -!define AC_VERSION "v1.0" -!define AC_FULLVERSION "v1.0.2" -!define AC_FULLVERSIONINT "1.0.2" +!define CURPATH ".\" ; CHANGE ME +!define AC_FULLVERSION "v1.2.0.2" +!define AC_FULLVERSIONINT "1.2.0.2" !define AC_SHORTNAME "AssaultCube" -!define AC_FULLNAME "AssaultCube v1.0" -!define AC_FULLNAMESAVE "AssaultCube_v1.0" +!define AC_FULLNAME "AssaultCube v1.2.0.2" +!define AC_FULLNAMESAVE "AssaultCube_v1.2.0.2" +!define AC_MAJORVERSIONINT 1 +!define AC_MINORVERSIONINT 2 Name "AssaultCube" OutFile "AssaultCube_${AC_FULLVERSION}-Update.exe" -InstallDir "$PROGRAMFILES\${AC_FULLNAMESAVE}" -InstallDirRegKey HKLM "Software\${AC_FULLNAMESAVE}" "" -RequestExecutionLevel admin ; require admin in vista +InstallDir "$PROGRAMFILES\${AC_SHORTNAME}" +InstallDirRegKey HKLM "Software\${AC_SHORTNAME}" "" +RequestExecutionLevel admin ; require admin in Vista/7 ; Interface Configuration @@ -240,25 +207,16 @@ Function .onInit InitPluginsDir File /oname=$TEMP\welcome.bmp "${CURPATH}\welcome.bmp" - - !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "InstallTypes.ini" "InstallTypes.ini" FunctionEnd Function .onInstSuccess - StrCpy $0 "http://assault.cubers.net/releasenotes/v1.0/" + StrCpy $0 "http://assault.cubers.net/releasenotes/v${AC_MAJORVERSIONINT}.${AC_MINORVERSIONINT}/" Call openLinkNewWindow FunctionEnd -Function un.onUninstSuccess - - StrCpy $0 "http://assault.cubers.net/uninstallnotes/v1.0/" - Call un.openLinkNewWindow - -FunctionEnd - Function HideControls LockWindow on @@ -351,7 +309,7 @@ Function WelcomePage # validate existing installation ClearErrors - ReadRegStr $0 HKLM "Software\${AC_FULLNAMESAVE}" "" + ReadRegStr $0 HKLM "Software\${AC_SHORTNAME}" "" IfErrors 0 success MessageBox MB_OK|MB_ICONSTOP "Could not find an existing installation of AssaultCube that could be updated with this Update package. Please get the full package at http://assault.cubers.net/download.html" Quit @@ -402,7 +360,7 @@ Section "AssaultCube ${AC_FULLVERSION} Update" PATCH SectionIn RO - WriteRegStr HKLM "Software\${AC_FULLNAMESAVE}" "version" ${AC_FULLVERSIONINT} + WriteRegStr HKLM "Software\${AC_SHORTNAME}" "version" ${AC_FULLVERSIONINT} SetOutPath "$INSTDIR" @@ -411,8 +369,6 @@ Section "AssaultCube ${AC_FULLVERSION} Update" PATCH SectionEnd - - ; set descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN diff --git a/source/vcpp/buildEnv/build_1_exportACdev.bat b/source/vcpp/buildEnv/build_1_exportACdev.bat new file mode 100644 index 00000000..593bc3eb --- /dev/null +++ b/source/vcpp/buildEnv/build_1_exportACdev.bat @@ -0,0 +1,25 @@ +rem add new release tag to master branch of AssaulCube and documentation before start of AC installer preparing +rem local branches should be compatible with remote +rem you need to have installed 7-Zip and Subversion and added 7z.exe and svn.exe to PATH +set acdir=ac +set acdircompiled=ac_compiled +if not exist "%acdir%\" (mkdir %acdir%) else (rmdir /S /Q %acdir% & mkdir %acdir%) +if not exist "%acdircompiled%\" (mkdir %acdircompiled%) else (rmdir /S /Q %acdircompiled% & mkdir %acdircompiled%) + +rem get tag with name of latest AC version +git describe --tags --abbrev=0 > tmpFile +set /p latest= < tmpFile +del tmpFile + +rem get AC files from latest local release tag +cd ..\..\..\ +git archive --format zip --output source\vcpp\buildEnv\%acdir%\%latest%.zip %latest% +cd source\vcpp\buildEnv\%acdir% +7z x %latest%.zip +7z x %latest%.zip -o..\%acdircompiled% +del %latest%.zip + +rem get documentation files from latest remote release tag +svn export --force https://github.com/assaultcube/assaultcube.github.io/tags/%latest%/htdocs/docs/ docs + +pause diff --git a/source/vcpp/buildEnv/build_1_exportSVN.bat b/source/vcpp/buildEnv/build_1_exportSVN.bat deleted file mode 100644 index 61c9ea60..00000000 --- a/source/vcpp/buildEnv/build_1_exportSVN.bat +++ /dev/null @@ -1,3 +0,0 @@ -svn export svn://svn.code.sf.net/p/actiongame/code/trunk/ac ac -svn export --force svn://svn.code.sf.net/p/actiongame/code/ac_website/htdocs/docs ac\docs -pause \ No newline at end of file diff --git a/source/vcpp/buildEnv/build_2_prepareACdirectory.bat b/source/vcpp/buildEnv/build_2_prepareACdirectory.bat index fa798bc9..be0b3991 100644 --- a/source/vcpp/buildEnv/build_2_prepareACdirectory.bat +++ b/source/vcpp/buildEnv/build_2_prepareACdirectory.bat @@ -2,15 +2,37 @@ set acdir=ac set workingacdir=..\..\..\ -rem delete config -del %acdir%\config\saved.cfg -echo "" > %acdir%\config\servers.cfg +rem delete stuff related to git and GitHub +rmdir /S /Q %acdir%\.git +del %acdir%\.gitattributes +del %acdir%\.travis.yml +for /r %acdir% %%i in (*) do if "%%~nxi"==".gitignore" del "%%i" + +rem delete config and logs +del %acdir%\config\init*.cfg +del %acdir%\config\saved*.cfg +del %acdir%\config\servervita*.cfg +del %acdir%\config\servers.cfg +del %acdir%\config\history +del %acdir%\clientlog*.txt + +rem create config template +7z a -tzip -aoa %acdir%\config\configtemplates.zip .\%acdir%\config\autoexec.cfg .\%acdir%\config\favourites.cfg .\%acdir%\config\pcksources.cfg +del %acdir%\config\autoexec.cfg +del %acdir%\config\favourites.cfg +del %acdir%\config\pcksources.cfg + +rem delete map files +del %acdir%\packages\maps\*.cgz +del %acdir%\packages\maps\*.cfg +del %acdir%\packages\maps\servermaps\incoming\*.cgz +del %acdir%\packages\maps\servermaps\incoming\*.cfg rem purge screenshots del /Q %acdir%\screenshots\* -rem purge demo directory -del /Q %acdir%\demos\* +rem purge demo directory, but leave tutorial demo, just in case of future use +for %%i in (%acdir%\demos\*) do if not "%%~nxi"=="tutorial_demo.dmo" del /Q "%%i" rem remove linux stuff del %acdir%\*.sh @@ -20,14 +42,8 @@ rmdir /S /Q %acdir%\bin_unix rem remove source files (those are available in the source pkg) rmdir /S /Q %acdir%\source -rem use assaultcube_release as launcher -IF EXIST %acdir%\assaultcube_release.bat ( -del %acdir%\assaultcube.bat -ren %acdir%\assaultcube_release.bat assaultcube.bat -) - rem copy shadow files -copy /Y %workingacdir%\packages\models\playermodels\shadows.dat %acdir%\packages\models\playermodels\shadows.dat +copy /Y %workingacdir%\packages\models\misc\gib01\shadows.dat %acdir%\packages\models\misc\gib01\shadows.dat copy /Y %workingacdir%\packages\models\misc\gib02\shadows.dat %acdir%\packages\models\misc\gib02\shadows.dat copy /Y %workingacdir%\packages\models\misc\gib03\shadows.dat %acdir%\packages\models\misc\gib03\shadows.dat copy /Y %workingacdir%\packages\models\pickups\akimbo\shadows.dat %acdir%\packages\models\pickups\akimbo\shadows.dat @@ -37,12 +53,13 @@ copy /Y %workingacdir%\packages\models\pickups\helmet\shadows.dat %acdir%\packag copy /Y %workingacdir%\packages\models\pickups\kevlar\shadows.dat %acdir%\packages\models\pickups\kevlar\shadows.dat copy /Y %workingacdir%\packages\models\pickups\nade\shadows.dat %acdir%\packages\models\pickups\nade\shadows.dat copy /Y %workingacdir%\packages\models\pickups\pistolclips\shadows.dat %acdir%\packages\models\pickups\pistolclips\shadows.dat +copy /Y %workingacdir%\packages\models\playermodels\shadows.dat %acdir%\packages\models\playermodels\shadows.dat copy /Y %workingacdir%\packages\models\weapons\assault\world\shadows.dat %acdir%\packages\models\weapons\assault\world\shadows.dat +copy /Y %workingacdir%\packages\models\weapons\carbine\world\shadows.dat %acdir%\packages\models\weapons\carbine\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\grenade\static\shadows.dat %acdir%\packages\models\weapons\grenade\static\shadows.dat copy /Y %workingacdir%\packages\models\weapons\grenade\world\shadows.dat %acdir%\packages\models\weapons\grenade\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\knife\world\shadows.dat %acdir%\packages\models\weapons\knife\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\pistol\world\shadows.dat %acdir%\packages\models\weapons\pistol\world\shadows.dat -copy /Y %workingacdir%\packages\models\weapons\carbine\world\shadows.dat %acdir%\packages\models\weapons\carbine\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\shotgun\world\shadows.dat %acdir%\packages\models\weapons\shotgun\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\sniper\world\shadows.dat %acdir%\packages\models\weapons\sniper\world\shadows.dat copy /Y %workingacdir%\packages\models\weapons\subgun\world\shadows.dat %acdir%\packages\models\weapons\subgun\world\shadows.dat diff --git a/source/vcpp/buildEnv/build_3_createInstaller.bat b/source/vcpp/buildEnv/build_3_createInstaller.bat index bb86eb1d..b37c2000 100644 --- a/source/vcpp/buildEnv/build_3_createInstaller.bat +++ b/source/vcpp/buildEnv/build_3_createInstaller.bat @@ -3,4 +3,4 @@ IF EXIST "%programfiles%\NSIS\makensis.exe" ( ) ELSE ( "%programfiles(x86)%\NSIS\makensis.exe" ac.nsi ) -pause \ No newline at end of file +pause diff --git a/source/vcpp/buildEnv/get-patch.ps1 b/source/vcpp/buildEnv/get-patch.ps1 deleted file mode 100644 index 352e3fed..00000000 --- a/source/vcpp/buildEnv/get-patch.ps1 +++ /dev/null @@ -1,23 +0,0 @@ -function get-patch -{ - param($from, $to); - # get diff summary as XML - [xml] $summary = (svn diff $to $from -x --ignore-eol-style --xml --summarize); - # loop through all diff/paths/path nodes - # each node represents a modified/new file - foreach($item in $summary.diff.paths.path) - { - # the SVN url - $url=$_."#text"; - # the relative filename - $file=($_."#text".Substring($to.Length)); - # the parent directory - $dir=($file | split-path -parent); - # create parent directory if it doesn't exist already - if((test-path $dir) -eq $false) { mkdir $dir -force}; - # export current files from the SVN repository - svn export $url $file - } - # package the current dir (.) into patch.zip - sevenzip.exe a patch.zip . -} \ No newline at end of file diff --git a/source/vcpp/buildEnv/mui_page_license.txt b/source/vcpp/buildEnv/mui_page_license.txt index 2500aafd..54901e35 100644 --- a/source/vcpp/buildEnv/mui_page_license.txt +++ b/source/vcpp/buildEnv/mui_page_license.txt @@ -1,4 +1,4 @@ -AssaultCube is FREEWARE. By downloading the AssaultCube package(s) you agree that you may freely use and redistribute the AssaultCube package(s) UNMODIFIED (the AssaultCube package(s) can be originally found at http://sourceforge.net/projects/actiongame/files/ or downloaded with an SVN client from https://actiongame.svn.sourceforge.net/svnroot/actiongame) on any media, subject to the following licensing conditions: +AssaultCube is FREEWARE. By downloading the AssaultCube package(s) you agree that you may freely use and redistribute the AssaultCube package(s) UNMODIFIED (the AssaultCube package(s) can be originally found at https://github.com/assaultcube/AC) on any media, subject to the following licensing conditions: * AssaultCube is provided "as-is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of AssaultCube. @@ -12,4 +12,3 @@ AssaultCube is FREEWARE. By downloading the AssaultCube package(s) you agree tha PLEASE NOTE: This license is for the entire UNMODIFIED AssaultCube package(s). You may choose to disect, and use or redistribute, etc. pieces of AssaultCube, instead of the entire package(s) if you wish. HOWEVER, you must adhere to the license specified for that particular data. If no license is specified, you MUST assume that the data is COPYRIGHT and you are NOT allowed to redistribute that data outside of an UNMODIFIED AssaultCube package(s). For more information, please see: http://assault.cubers.net/docs/license.html - diff --git a/source/vcpp/buildEnv/new-patch.ps1 b/source/vcpp/buildEnv/new-patch.ps1 deleted file mode 100644 index aea381d1..00000000 --- a/source/vcpp/buildEnv/new-patch.ps1 +++ /dev/null @@ -1,23 +0,0 @@ -function new-patch -{ - param($from, $to) - # get diff summary as XML - [xml] $summary = (svn diff $to $from -x --ignore-eol-style --xml --summarize) - # loop through all diff/paths/path nodes - # each node represents a modified/new file - foreach($item in $summary.diff.paths.path) - { - # the SVN url - $url=$item."#text" - # the relative filename - $file=($item."#text".Substring($to.Length)) - # the parent directory - $dir=($file | split-path -parent) - # create parent directory if it doesn't exist already - if((test-path $dir) -eq $false) { mkdir $dir -force} - # export current files from the SVN repository - svn export $url $file - } - # package the current dir (.) into patch.zip - sevenzip.exe a patch.zip . -} diff --git a/source/vcpp/buildEnv/patch_createPatch.bat b/source/vcpp/buildEnv/patch_createPatch.bat index 6f73ee77..80fed5cc 100644 --- a/source/vcpp/buildEnv/patch_createPatch.bat +++ b/source/vcpp/buildEnv/patch_createPatch.bat @@ -1,2 +1,6 @@ -"%programfiles%\NSIS\makensis.exe" ac_patch.nsi -pause \ No newline at end of file +IF EXIST "%programfiles%\NSIS\makensis.exe" ( + "%programfiles%\NSIS\makensis.exe" ac_patch.nsi +) ELSE ( + "%programfiles(x86)%\NSIS\makensis.exe" ac_patch.nsi +) +pause diff --git a/source/vcpp/buildEnv/release_Installer_Cur.bat b/source/vcpp/buildEnv/release_Installer_Cur.bat index d9312671..a4e67ea2 100644 --- a/source/vcpp/buildEnv/release_Installer_Cur.bat +++ b/source/vcpp/buildEnv/release_Installer_Cur.bat @@ -1,11 +1,4 @@ -set exportDir=ac - -rem purge old directory -del /S /Q %exportDir% - rem call build processes -call build_1_exportSVN.bat +call build_1_exportACdev.bat call build_2_prepareACdirectory.bat call build_3_createInstaller.bat - -pause diff --git a/source/vcpp/license.txt b/source/vcpp/license.txt index 06bf12d9..96dc4118 100644 --- a/source/vcpp/license.txt +++ b/source/vcpp/license.txt @@ -1,10 +1,10 @@ Quick installation notes for the "./buildEnv" folder: - * Install a command-line SVN client, then include it in your - system path variable. - * Edit the SVN commands and set your own username. - * Install NSIS. - * Edit ac.nsi and fix the CURPATH variable. + * Install GitHub Desktop/a command line Git client. + * Install a command-line SVN client. + * Install 7-Zip. + * Include git.exe, svn.exe, 7z.exe in your system path variable. + * Install NSIS, minimum version 3.0. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= It should be noted, that the new AssaultCube logos/icon files were gifted to @@ -54,4 +54,5 @@ With the understanding that: 3. Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. * Notice - For any reuse or distribution, you must make clear to others the license - terms of this work. The best way to do this is with a link to this web page. \ No newline at end of file + terms of this work. The best way to do this is with a link to this web page. +