63 lines
No EOL
3.5 KiB
Batchfile
63 lines
No EOL
3.5 KiB
Batchfile
rem
|
|
rem This script will build all the simulators in the current branch
|
|
rem (presumed to be master) and package the resulting windows binaries
|
|
rem into a zip file which will be named for the revision, build date and
|
|
rem git commit id. The resulting zip file will be pushed to the github
|
|
rem Win32-Development-Binaries repository for public access.
|
|
rem
|
|
rem We're using a github repository for this purpose since github no longer
|
|
rem supports a Download files facility since some folks were using it to
|
|
rem contain large binary files. The typical set of simh windows binaries
|
|
rem is under 7MB in size and the plan is to delete and recreate the whole
|
|
rem Win32-Development-Binaries repository at least every few months.
|
|
rem
|
|
rem If this script is invoked with a single parameter "reset", the local
|
|
rem repository will be wiped out and reset. This should be done AFTER
|
|
rem the github one is deleted and recreated.
|
|
rem
|
|
rem
|
|
|
|
set BIN_REPO=Win32-Development-Binaries
|
|
if exist "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
|
|
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
|
|
cd %~p0
|
|
SET GIT_COMMIT_ID=
|
|
if not exist ..\.git-commit-id goto _NoId
|
|
for /F %%i in (..\.git-commit-id) do set GIT_COMMIT_ID=%%i
|
|
for /F "tokens=3 delims=/" %%i in ("%DATE%") do set D_YYYY=%%i
|
|
for /F "tokens=2 delims=/ " %%i in ("%DATE%") do set D_MM=%%i
|
|
for /F "tokens=2 delims=/" %%i in ("%DATE%") do set D_DD=%%i
|
|
for /F "usebackq tokens=3" %%i in (`findstr/C:"#define SIM_MAJOR" ..\sim_rev.h`) do set _SIM_MAJOR=%%i
|
|
for /F "usebackq tokens=3" %%i in (`findstr/C:"#define SIM_MINOR" ..\sim_rev.h`) do set _SIM_MINOR=%%i
|
|
for /F "usebackq tokens=3" %%i in (`findstr/C:"#define SIM_PATCH" ..\sim_rev.h`) do set _SIM_PATCH=-%%i
|
|
for /F "usebackq tokens=3" %%i in (`findstr/C:"#define SIM_VERSION_MODE" ..\sim_rev.h`) do set _SIM_VERSION_MODE=-%%~i
|
|
if "%_SIM_PATCH%" equ "-0" set _SIM_PATCH=
|
|
set _ZipName=simh-%_SIM_MAJOR%.%_SIM_MINOR%%_SIM_PATCH%%_SIM_VERSION_MODE%--%D_YYYY%-%D_MM%-%D_DD%-%GIT_COMMIT_ID:~0,8%.zip
|
|
set _ZipPath=..\..\%BIN_REPO%\
|
|
vcbuild /M2 /useenv /rebuild Simh.sln "Release|Win32"
|
|
if exist "%ProgramFiles%\7-Zip\7z.exe" "%ProgramFiles%\7-Zip\7z.exe" a -tzip "%_ZipPath%%_ZipName%" "..\BIN\NT\Win32-Release\*.exe"
|
|
if exist "%ProgramFiles(x86)%\7-Zip\7z.exe" "%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip "%_ZipPath%%_ZipName%" "..\BIN\NT\Win32-Release\*.exe"
|
|
if exist "%PROGRAMW6432%\7-Zip\7z.exe" "%PROGRAMW6432%\7-Zip\7z.exe" a -tzip "%_ZipPath%%_ZipName%" "..\BIN\NT\Win32-Release\*.exe"
|
|
|
|
pushd %_ZipPath%
|
|
where git.exe >NUL
|
|
if %ERRORLEVEL% equ 0 goto GitOK
|
|
if exist "%ProgramFiles%\Git\bin\git.exe" path %USERPROFILE%\bin;%ProgramFiles%\Git\local\bin;%ProgramFiles%\Git\mingw\bin;%ProgramFiles%\Git\bin\;%Path%
|
|
if exist "%ProgramFiles(x86)%\Git\bin\git.exe" path %USERPROFILE%\bin;%ProgramFiles(x86)%\Git\local\bin;%ProgramFiles(x86)%\Git\mingw\bin;%ProgramFiles(x86)%\Git\bin\;%Path%
|
|
:GitOK
|
|
if "%1" neq "reset" goto GitAddNew
|
|
:GitSetup
|
|
if exist .git rmdir/s .git
|
|
git init
|
|
git add README.md
|
|
git commit -m "Initializing the Windows Binary repository"
|
|
git remote add origin git@github.com:simh/%BIN_REPO%.git
|
|
git branch -m master %BIN_REPO%
|
|
git push -u origin %BIN_REPO%
|
|
|
|
:GitAddNew
|
|
git add %_ZipName%
|
|
git commit -m "Build results on %D_YYYY%-%D_MM%-%D_DD% for Commit Id %GIT_COMMIT_ID%"
|
|
git push -u origin %BIN_REPO%
|
|
|
|
popd |