mirror of
https://github.com/gpac/gpac.git
synced 2026-01-12 00:05:22 +08:00
121 lines
4.0 KiB
Batchfile
121 lines
4.0 KiB
Batchfile
@echo off
|
|
set OLDDIR=%CD%
|
|
cd /d %~dp0
|
|
REM ============================================
|
|
echo *** Generating a Windows GPAC installer ***
|
|
REM ============================================
|
|
|
|
|
|
:begin
|
|
IF "%1"=="win32" GOTO next
|
|
IF "%1"=="x64" GOTO next
|
|
echo You must specified target architecture : win32 or x64
|
|
GOTO Abort
|
|
|
|
:next
|
|
echo:
|
|
REM ============================================
|
|
echo Check NSIS is in your PATH
|
|
REM ============================================
|
|
|
|
|
|
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
|
|
setlocal enabledelayedexpansion
|
|
SET PRGROOT=!programfiles(x86^)!
|
|
setlocal disabledelayedexpansion
|
|
)
|
|
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
|
|
setlocal enabledelayedexpansion
|
|
SET PRGROOT=!programfiles!
|
|
setlocal disabledelayedexpansion
|
|
)
|
|
|
|
set NSIS_EXEC="%PRGROOT%\NSIS\makensis.exe"
|
|
if not exist "%PRGROOT%\NSIS\makensis.exe" echo NSIS couldn't be found at default location %NSIS_EXEC%
|
|
if not exist "%PRGROOT%\NSIS\makensis.exe" goto Abort
|
|
echo Found NSIS at default location %NSIS_EXEC%
|
|
|
|
|
|
echo:
|
|
REM ============================================
|
|
echo Retrieving version/revision information
|
|
REM ============================================
|
|
if not exist include/gpac/revision.h echo version couldn't be found - check include/gpac/revision.h exists
|
|
if not exist include/gpac/revision.h goto Abort
|
|
|
|
REM check if found a local commit which has not been pushed
|
|
for /f "delims=" %%a in ('git diff FETCH_HEAD') do @set diff=%%a
|
|
echo diff = %diff%
|
|
if not "%diff%"=="" echo Local and remote revisions not in sync, consider pushing or pulling changes
|
|
|
|
REM execute git and check if the result if found within revision.h
|
|
for /f "delims=" %%a in ('git describe --tags --long --match "v*" ') do @set VERSION=%%a
|
|
for /f "delims=" %%a in ('git describe --tags --abbrev^=0 --match "v*" ') do @set TAG=%%a-
|
|
for /f "delims=" %%a in ('git rev-parse --abbrev-ref HEAD') do @set BRANCH=%%a
|
|
|
|
REM sanitize BRANCH for filename
|
|
set "BRANCH=%BRANCH:/=-%"
|
|
set "BRANCH=%BRANCH:"=-%"
|
|
set "BRANCH=%BRANCH:<=-%"
|
|
set "BRANCH=%BRANCH:>=-%"
|
|
set "BRANCH=%BRANCH:|=-%"
|
|
set "BRANCH=%BRANCH:@=-%"
|
|
set "BRANCH=%BRANCH:_=-%"
|
|
set "BRANCH=%BRANCH:(=-%"
|
|
set "BRANCH=%BRANCH:)=-%"
|
|
|
|
|
|
REM remove anotated tag from VERSION
|
|
setlocal enabledelayedexpansion
|
|
call set VERSION=%%VERSION:!TAG!=%%
|
|
setlocal disabledelayedexpansion
|
|
SET VarRevisionGIT=%VERSION%-%BRANCH%
|
|
for /f "delims=" %%i in ('type include\gpac\revision.h ^| findstr /i /r "%VarRevisionGIT%"') do Set VarRevisionBuild=%%i
|
|
echo VarRevisionBuild = %VarRevisionBuild%
|
|
echo VarRevisionGIT = %VarRevisionGIT%
|
|
if !"%VarRevisionBuild%"==!"%VarRevisionGIT%" echo local revision and last build revision are not congruent - please consider rebuilding before generating an installer
|
|
if !"%VarRevisionBuild%"==!"%VarRevisionGIT%" goto Abort
|
|
|
|
move packagers\win32_64\nsis\default.out packagers\win32_64\nsis\default.out_
|
|
echo Name "GPAC Framework ${GPAC_VERSION} for %1 revision %VarRevisionGIT%" > packagers\win32_64\nsis\default.out
|
|
echo OutFile "gpac-${GPAC_VERSION}-rev%VarRevisionGIT%-%1.exe" >> packagers\win32_64\nsis\default.out
|
|
IF "%1"=="x64" echo !define IS_WIN64 >> packagers\win32_64\nsis\default.out
|
|
|
|
echo:
|
|
REM ============================================
|
|
echo Executing NSIS
|
|
REM ============================================
|
|
call %NSIS_EXEC% packagers\win32_64\nsis\gpac_installer.nsi
|
|
IF %ERRORLEVEL% NEQ 0 GOTO Abort
|
|
|
|
|
|
echo:
|
|
REM ============================================
|
|
echo Removing temporary files
|
|
REM ============================================
|
|
move packagers\win32_64\nsis\default.out_ packagers\win32_64\nsis\default.out
|
|
|
|
|
|
echo:
|
|
REM ============================================
|
|
echo Windows GPAC installer generated - goodbye!
|
|
REM ============================================
|
|
REM LeaveBatchSuccess
|
|
set VarRevisionGIT=
|
|
set VarRevisionBuild=
|
|
cd /d %OLDDIR%
|
|
exit/b 0
|
|
|
|
:RevisionAbort
|
|
echo Local revision and remote revision are not congruent; you may have local commit
|
|
echo Please consider pushing your commit before generating an installer
|
|
|
|
:Abort
|
|
echo:
|
|
echo *** ABORTING: CHECK ERROR MESSAGES ABOVE ***
|
|
|
|
REM LeaveBatchError
|
|
set VarRevisionBuild=
|
|
cd /d %OLDDIR%
|
|
exit/b 1
|