Files
RustRaptor/raptor/win32build.bat
T
raptorreplica f7c9b7a02d Vendor raptor source files (was embedded gitlink)
Tree vendored at upstream 0019c5dd; origin + license recorded in
raptor/VENDOR.txt. Windows SDL dev packages excluded via .gitignore.
2026-08-25 22:08:42 +10:00

352 lines
11 KiB
Batchfile

@echo off
cd /D "%~dp0"
cls
echo *********************************************************************
echo * *
echo * Raptor build script for Windows *
echo * *
echo *********************************************************************
echo.
echo Select build:
echo.
echo 1. Release build win32
echo 2. Release build win64
echo 3. Clean all
echo 0. Exit
echo.
set /P select=Select 0-3:
if /i "%select%"== "1" goto:win32
if /i "%select%"== "2" goto:win64
if /i "%select%"== "3" goto:clean
if /i "%select%"== "0" goto:eof
echo Incorrect entry
goto:eof
:win32:
set arch="Release|x86"
set archname=win32
set buildfoldername=raptorx86
set msvcfolder=msvc\Release
set sdlfolder=include\SDL2-devel-2.28.2-VC\SDL2-2.28.2\lib\x86\SDL2.dll
goto:buildres
:win64:
set arch="Release|x64"
set archname=win64
set buildfoldername=raptorx64
set msvcfolder=msvc\x64\Release
set sdlfolder=include\SDL2-devel-2.28.2-VC\SDL2-2.28.2\lib\x64\SDL2.dll
goto:buildres
:buildres
set digitpos0=false
set digitpos2=false
set digitpos4=false
set version=empty
echo Enter version number in this format 0.0.0
set /P version=Enter version number:
if %version% == "empty" goto:buildres
if "%version:~0,-4%" geq "0" if "%version:~0,-4%" leq "9" set digitpos0=true
if "%version:~2,-2%" geq "0" if "%version:~2,-2%" leq "9" set digitpos2=true
if "%version:~4%" geq "0" if "%version:~4%" leq "9" set digitpos4=true
if not "%digitpos0%" == "true" (
echo Incorrect entry
goto:buildres
)
if not "%digitpos2%" == "true" (
echo Incorrect entry
goto:buildres
)
if not "%digitpos4%" == "true" (
echo Incorrect entry
goto:buildres
)
if not "%version:~1,-3%" == "." (
echo Incorrect entry
goto:buildres
)
if not "%version:~3,-1%" == "." (
echo Incorrect entry
goto:buildres
)
(
echo #define APSTUDIO_READONLY_SYMBOLS
echo #include "winres.h"
echo #undef APSTUDIO_READONLY_SYMBOLS
echo.
echo MAINICON ICON "raptor.ico"
echo.
echo VS_VERSION_INFO VERSIONINFO
echo FILEVERSION %version:~0,-4%,%version:~2,-2%,%version:~4%,0
echo PRODUCTVERSION %version:~0,-4%,%version:~2,-2%,%version:~4%,0
echo FILEFLAGSMASK 0x3FL
echo FILEFLAGS 0x0L
echo FILEOS 0x4L
echo FILETYPE 0x1L
echo FILESUBTYPE 0x0L
echo BEGIN
echo BLOCK "StringFileInfo"
echo BEGIN
echo BLOCK "040904E4"
echo BEGIN
echo VALUE "CompanyName", "skynettx"
echo VALUE "FileDescription", "Raptor %version%"
echo VALUE "FileVersion", "%version%"
echo VALUE "InternalName", "raptor"
echo VALUE "LegalCopyright", "Copyright (C) 1994-%date:~-4%. Licensed under the GNU General Public License, version 2"
echo VALUE "OriginalFilename", "raptor"
echo VALUE "ProductName", "Raptor"
echo VALUE "ProductVersion", "%version%"
echo END
echo END
echo BLOCK "VarFileInfo"
echo BEGIN
echo VALUE "Translation", 0x409, 1252
echo END
echo END
) > rsrc\resource.rc
(
echo #define APSTUDIO_READONLY_SYMBOLS
echo #include "winres.h"
echo #undef APSTUDIO_READONLY_SYMBOLS
echo.
echo MAINICON ICON "raptorsetup.ico"
echo.
echo VS_VERSION_INFO VERSIONINFO
echo FILEVERSION %version:~0,-4%,%version:~2,-2%,%version:~4%,0
echo PRODUCTVERSION %version:~0,-4%,%version:~2,-2%,%version:~4%,0
echo FILEFLAGSMASK 0x3FL
echo FILEFLAGS 0x0L
echo FILEOS 0x4L
echo FILETYPE 0x1L
echo FILESUBTYPE 0x0L
echo BEGIN
echo BLOCK "StringFileInfo"
echo BEGIN
echo BLOCK "040904E4"
echo BEGIN
echo VALUE "CompanyName", "skynettx"
echo VALUE "FileDescription", "Raptor %version% Setup"
echo VALUE "FileVersion", "%version%"
echo VALUE "InternalName", "raptorsetup"
echo VALUE "LegalCopyright", "GNU General Public License"
echo VALUE "OriginalFilename", "raptorsetup"
echo VALUE "ProductName", "Raptor Setup"
echo VALUE "ProductVersion", "%version%"
echo END
echo END
echo BLOCK "VarFileInfo"
echo BEGIN
echo VALUE "Translation", 0x409, 1252
echo END
echo END
) > rsrc\setup\resource.rc
:build
devenv msvc\raptor.sln /Build %arch%
goto:buildfolder
:buildfolder
@RD /S /Q pkg\win32\%buildfoldername%
mkdir pkg\win32\%buildfoldername%
xcopy %msvcfolder%\raptor.exe pkg\win32\%buildfoldername%
xcopy %msvcfolder%\raptorsetup\raptorsetup.exe pkg\win32\%buildfoldername%
xcopy include\TinySoundFont\LICENSE pkg\win32\%buildfoldername%
ren pkg\win32\%buildfoldername%\LICENSE LICENSETSF
xcopy LICENSE pkg\win32\%buildfoldername%
xcopy %sdlfolder% pkg\win32\%buildfoldername%
if exist pkg\win32\%buildfoldername%\raptor.exe (
echo raptor.exe PASS
) else (
echo raptor.exe FAILED
goto:eof
)
if exist pkg\win32\%buildfoldername%\raptorsetup.exe (
echo raptorsetup.exe PASS
) else (
echo raptorsetup.exe FAILED
goto:eof
)
if exist pkg\win32\%buildfoldername%\LICENSETSF (
echo LICENSETSF PASS
) else (
echo LICENSETSF FAILED
goto:eof
)
if exist pkg\win32\%buildfoldername%\LICENSE (
echo LICENSE PASS
) else (
echo LICENSE FAILED
goto:eof
)
if exist pkg\win32\%buildfoldername%\SDL2.dll (
echo SDL2.dll PASS
) else (
echo SDL2.dll FAILED
goto:eof
)
goto:getinfo
:getinfo
set assetsflag=false
set /P assets=Bundle assets y/n:
if "%assets%" == "y" (
set assetsflag=true
)
if "%assets%" == "Y" (
set assetsflag=true
)
if "%assets%" == "yes" (
set assetsflag=true
)
if "%assets%" == "YES" (
set assetsflag=true
)
if "%assetsflag%" == "true" (
goto:getassets
) else (
echo Continue without bundle assets
goto:buildnsis
)
:getassets
set /P "assetspath=Path to assets folder: "
xcopy "%assetspath%\*.GLB" pkg\win32\%buildfoldername%
:buildnsis
(
echo ; Script generated by the HM NIS Edit Script Wizard.
echo.
echo ; HM NIS Edit Wizard helper defines
echo !define PRODUCT_NAME "Raptor"
echo !define PRODUCT_VERSION "%version%"
echo !define PRODUCT_PUBLISHER "skynettx"
echo !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\raptor.exe"
echo !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
echo !define PRODUCT_UNINST_ROOT_KEY "HKLM"
echo.
echo ; MUI 1.67 compatible ------
echo !include "MUI.nsh"
echo.
echo ; MUI Settings
echo !define MUI_ABORTWARNING
echo !define MUI_ICON "..\..\rsrc\raptor.ico"
echo !define MUI_UNICON "..\..\rsrc\raptor.ico"
echo.
echo ; Welcome page
echo !insertmacro MUI_PAGE_WELCOME
echo ; Directory page
echo !insertmacro MUI_PAGE_DIRECTORY
echo ; Instfiles page
echo !insertmacro MUI_PAGE_INSTFILES
echo ; Finish page
echo !define MUI_FINISHPAGE_RUN "$INSTDIR\raptor.exe"
echo !insertmacro MUI_PAGE_FINISH
echo.
echo ; Uninstaller pages
echo !insertmacro MUI_UNPAGE_INSTFILES
echo.
echo ; Language files
echo !insertmacro MUI_LANGUAGE "English"
echo.
echo ; MUI end ------
echo.
echo Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
echo OutFile "raptor-%version%-%archname%.exe"
if "%archname%" == "win32" (
echo InstallDir "$PROGRAMFILES\Raptor"
) else (
echo InstallDir "$PROGRAMFILES64\Raptor"
)
echo InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
echo ShowInstDetails show
echo ShowUnInstDetails show
echo.
echo Section "Hauptgruppe" SEC01
echo SetOutPath "$INSTDIR"
echo SetOverwrite try
if "%assetsflag%" == "true" (
echo File "%buildfoldername%\FILE0000.GLB"
echo File "%buildfoldername%\FILE0001.GLB"
)
echo File "%buildfoldername%\LICENSE"
echo File "%buildfoldername%\LICENSETSF"
echo File "%buildfoldername%\raptor.exe"
echo CreateDirectory "$SMPROGRAMS\Raptor"
echo CreateShortCut "$SMPROGRAMS\Raptor\Raptor.lnk" "$INSTDIR\raptor.exe"
echo CreateShortCut "$DESKTOP\Raptor.lnk" "$INSTDIR\raptor.exe"
echo File "%buildfoldername%\raptorsetup.exe"
echo CreateShortCut "$SMPROGRAMS\Raptor\Raptor Setup.lnk" "$INSTDIR\raptorsetup.exe"
echo CreateShortCut "$DESKTOP\Raptor Setup.lnk" "$INSTDIR\raptorsetup.exe"
echo File "%buildfoldername%\SDL2.dll"
echo SectionEnd
echo.
echo Section -AdditionalIcons
echo CreateShortCut "$SMPROGRAMS\Raptor\Uninstall.lnk" "$INSTDIR\uninst.exe"
echo SectionEnd
echo.
echo Section -Post
echo WriteUninstaller "$INSTDIR\uninst.exe"
echo WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\raptor.exe"
echo WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
echo WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
echo WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\raptor.exe"
echo WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
echo WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
echo SectionEnd
echo.
echo.
echo Function un.onUninstSuccess
echo HideWindow
echo MessageBox MB_ICONINFORMATION^|MB_OK "Raptor was successfully uninstalled."
echo FunctionEnd
echo.
echo Function un.onInit
echo MessageBox MB_ICONQUESTION^|MB_YESNO^|MB_DEFBUTTON2 "Do you want to uninstall Raptor and all its components?" IDYES +2
echo Abort
echo FunctionEnd
echo.
echo Section Uninstall
echo Delete "$INSTDIR\uninst.exe"
echo Delete "$INSTDIR\SDL2.dll"
echo Delete "$INSTDIR\raptorsetup.exe"
echo Delete "$INSTDIR\raptor.exe"
echo Delete "$INSTDIR\LICENSETSF"
echo Delete "$INSTDIR\LICENSE"
if "%assetsflag%" == "true" (
echo Delete "$INSTDIR\FILE0001.GLB"
echo Delete "$INSTDIR\FILE0000.GLB"
)
echo.
echo Delete "$SMPROGRAMS\Raptor\Uninstall.lnk"
echo Delete "$DESKTOP\Raptor Setup.lnk"
echo Delete "$SMPROGRAMS\Raptor\Raptor Setup.lnk"
echo Delete "$DESKTOP\Raptor.lnk"
echo Delete "$SMPROGRAMS\Raptor\Raptor.lnk"
echo.
echo RMDir "$SMPROGRAMS\Raptor"
echo RMDir "$INSTDIR"
echo.
echo DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
echo DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
echo SetAutoClose true
echo SectionEnd
) > pkg\win32\build.nsi
makensis.exe pkg\win32\build.nsi
xcopy pkg\win32\raptor-%version%-%archname%.exe %cd%
del pkg\win32\raptor-%version%-%archname%.exe
goto:eof
:clean:
@RD /S /Q msvc\.vs
@RD /S /Q msvc\Release
@RD /S /Q msvc\x64
@RD /S /Q pkg\win32
del *.exe
echo All cleaned
goto:eof
:eof