mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-05 10:40:42 +00:00
100 lines
4.1 KiB
Batchfile
100 lines
4.1 KiB
Batchfile
:::
|
|
::: Build Release and Installer subdirectories of the current shadow build directory.
|
|
::: The Release directory contains everything needed to run OSCAR.
|
|
::: The Installer directory contains a single executable -- the OSCAR installer.
|
|
:::
|
|
::: DEPLOY.BAT should be run as the last step of a QT Build Release kit.
|
|
::: QT Shadow build should be specified (this is the QT default).
|
|
::: A command line parameter is optional. Any text on the command line will be appended
|
|
::: to the file name of the installer.
|
|
:::
|
|
::: Requirements:
|
|
::: Inno Setup 6 - http://www.jrsoftware.org/isinfo.php, installed to default Program Files (x86) location
|
|
::: gawk - somewhere in the PATH or in Git for Windows installed in its default lolcation
|
|
:::
|
|
::: Deploy.bat resides in .../OSCAR-code/Nuilding/Windows, along with
|
|
::: buildinstall.iss -- script for Inno Setup to create installer
|
|
::: getBuildInfo.awk -- gawk script for extracting version fields from various files
|
|
::: setup.ico -- Icon to be used for the installer.
|
|
:::
|
|
::: When building a release version in QT, QT will start this batch file which will prepare
|
|
::: additional files, run WinDeployQt, and create an installer.
|
|
:::
|
|
@echo off
|
|
setlocal
|
|
|
|
::: toolDir is where the Windows install/deploy tools are located
|
|
set toolDir=%~dp0
|
|
:::echo tooldir is %toolDir%
|
|
|
|
::: Set shadowBuildDir and sourceDir for oscar_qt.pro vs oscar\oscar.pro projects
|
|
if exist ..\oscar-code\oscar\oscar.pro (
|
|
::: oscar_QT.pro
|
|
set sourceDir=..\oscar-code\oscar
|
|
set shadowBuildDir=%cd%\oscar
|
|
) else (
|
|
::: oscar\oscar.pro
|
|
set sourceDir=..\oscar
|
|
set shadowBuildDir=%cd%
|
|
)
|
|
echo sourceDir is %sourceDir%
|
|
echo shadowBuildDir is %shadowBuildDir%
|
|
|
|
::: Now copy the base installation control file
|
|
|
|
copy %toolDir%buildInstall.iss %shadowBuildDir% || exit 45
|
|
copy %toolDir%setup.ico %shadowBuildDir% || exit 46
|
|
:::copy %toolDir%use*.reg %shadowBuildDir% || exit 47
|
|
|
|
:::
|
|
::: If gawk.exe is in the PATH, use it. If not, add Git mingw tools (awk) to path. They cannot
|
|
::: be added to global path as they break CMD.exe (find etc.)
|
|
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
|
|
|
::: Create and copy installer control files
|
|
::: Create file with all version numbers etc. ready for use by buildinstall.iss
|
|
::: Extract the version info from various header files using gawk and
|
|
::: #define fields for each data item in buildinfo.iss which will be
|
|
::: used by the installer script.
|
|
where /q gawk.exe || set PATH=%PATH%;%ProgramW6432%\Git\usr\bin
|
|
echo ; This script auto-generated by DEPLOY.BAT >%shadowBuildDir%\buildinfo.iss
|
|
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\VERSION >>%shadowBuildDir%\buildInfo.iss || exit 60
|
|
gawk -f %toolDir%getBuildInfo.awk %sourcedir%\git_info.h >>%shadowBuildDir%\buildInfo.iss || exit 62
|
|
echo %shadowBuildDir% | gawk -f %toolDir%getBuildInfo.awk >>%shadowBuildDir%\buildInfo.iss || exit 63
|
|
echo #define MySuffix "%1" >>%shadowBuildDir%\buildinfo.iss || exit 64
|
|
:::echo #define MySourceDir "%sourcedir%" >>%shadowBuildDir%\buildinfo.iss
|
|
|
|
::: Create Release directory and subdirectories
|
|
if exist %shadowBuildDir%\Release\*.* rmdir /s /q %shadowBuildDir%\Release
|
|
mkdir %shadowBuildDir%\Release
|
|
cd %shadowBuildDir%\Release
|
|
copy %shadowBuildDir%\oscar.exe . || exit 71
|
|
:::copy %shadowBuildDir%\use*.reg . || exit 72
|
|
|
|
::: Now in Release subdirectory
|
|
::: If QT created a help directory, copy it. But it might not have if "helpless" option was set
|
|
if exist Help\*.* rmdir /s /q Help
|
|
mkdir Help
|
|
if exist ..\help\*.qch copy ..\help Help
|
|
|
|
if exist Html\*.* rmdir /s /q Html
|
|
mkdir Html
|
|
copy ..\html html || exit 80
|
|
|
|
if exist Translations\*.* rmdir /s /q Translations
|
|
mkdir Translations
|
|
copy ..\translations Translations || exit 84
|
|
|
|
::: Run deployment tool
|
|
windeployqt.exe --force --compiler-runtime --no-translations --verbose 1 OSCAR.exe || exit 87
|
|
|
|
::: Clean up unwanted translation files
|
|
:::For unknown reasons, Win64 build copies the .ts files into the release directory, while Win32 does not
|
|
if exist Translations\*.ts del /q Translations\*.ts
|
|
|
|
::: Create installer
|
|
cd ..
|
|
:::"%ProgramFiles(x86)%\Inno Setup 6\compil32" /cc BuildInstall.iss
|
|
"%ProgramFiles(x86)%\Inno Setup 6\iscc" /Q BuildInstall.iss
|
|
|
|
endlocal |