Skip to content

Commit

Permalink
#1041: split the batch files further so we can re-use them
Browse files Browse the repository at this point in the history
* move the packaging part to a new file
* constify the log files (and use different names depending on which python version is used)
* stub for creating a sound-only build in "dist\Sound"

git-svn-id: https://xpra.org/svn/Xpra/trunk@11575 3bb7dfac-3a0b-4e04-842a-767bc560f471
  • Loading branch information
totaam committed Jan 4, 2016
1 parent 7728103 commit f36c5bc
Show file tree
Hide file tree
Showing 5 changed files with 216 additions and 124 deletions.
144 changes: 27 additions & 117 deletions src/win32/BUILD.BAT
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
ECHO OFF
SET ARGS=%*
set DIR=%CD%

SETLOCAL EnableExtensions EnableDelayedExpansion
Expand All @@ -11,48 +9,21 @@ IF EXIST "E:\Xpra-Build-Libs-v0.17.x\" (
SET XPRA_WIN32_BUILD_LIB_PREFIX=E:\Xpra-Build-Libs-v0.17.x\
)
REM support double-click on BAT file, so run from parent directory:
IF EXIST "MAKE-INSTALLER.BAT" CD ..
IF EXIST "BUILD.BAT" CD ..

REM "*********THESE MUSE BE SET BEFORE RUNNING**************"
if "%PYTHON%"=="" (
ECHO build error, missing %%PYTHON%%
GOTO ERROR
)
if "%DO_BUILD%"=="" (
SET DO_BUILD=1
)
if "%DO_INSTALLER%"=="" (
SET DO_INSTALLER=1
)
if "%DO_ZIP%"=="" (
SET DO_ZIP=1
)
if "%DIST%"=="" (
SET DIST="dist"
)
ECHO PYTHON=%PYTHON%
ECHO VC=%VC%
ECHO DO_BUILD=%DO_BUILD%
ECHO DO_INSTALLER=%DO_INSTALLER%
ECHO DO_ZIP=%DO_ZIP%

SET PYTHON_EXE=%PYTHON%\python.exe
SET PYTHONPATH=.;%PYTHONPATH%
SET INNOSETUP="%ProgramFiles%\Inno Setup 5\ISCC.exe"
IF EXIST "%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe" (
SET INNOSETUP="%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe"
)
SET TORTOISESVN="%ProgramFiles%\TortoiseSVN"
IF EXIST "%ProgramFiles(x86)%\TortoiseSVN" (
SET TORTOISESVN="%ProgramFiles(x86)%\TortoiseSVN"
)
SET ZIP7="%ProgramFiles%\7-Zip\7z.exe"
IF EXIST "%ProgramFiles(x86)%\7-Zip\7z.exe" (
SET ZIP7="%ProgramFiles(x86)%\7-Zip\7z.exe"
)
SET SVNVERSION_EXE=svnversion
SET EXTRA_VERSION=
SET BUILD_DIR=build

FOR /F "delims=" %%i IN ('%PYTHON_EXE% -c "import sys;print(sys.version_info.major)"') DO set PYTHON_MAJOR_VERSION=%%i
FOR /F "delims=" %%i IN ('%PYTHON_EXE% -c "import sys;print(sys.version_info.minor)"') DO set PYTHON_MINOR_VERSION=%%i
Expand All @@ -64,10 +35,7 @@ REM "IE:"
REM SET BUILD_ARGS=%BUILD_ARGS% --with-debug

if "%DO_BUILD%"=="1" (
REM CLEAN
%PYTHON_EXE% ./setup.py clean

REM Record Version Info
%PYTHON_EXE% -c "from add_build_info import record_src_info;record_src_info()"
)

Expand All @@ -84,15 +52,9 @@ SET FULL_VERSION=%VERSION%-r%REVISION%
ECHO Full version %FULL_VERSION%


if "%DO_BUILD%"=="0" (
ECHO "Skipping build step"
GOTO MAKEINSTALLER
)
ECHO ***************************************************************
ECHO ****** Clearing build directory
RMDIR /S /Q %BUILD_DIR% %DIST% Output Temp 2> NUL
DEL /Q Xpra_Setup*.exe 2> NUL
DEL /Q win32\cx_freeze-xpra.log win32\build-xpra.log win32\py2exe-xpra.log win32\innosetup.log 2> NUL
RMDIR /S /Q build %DIST% Output Temp 2> NUL

if NOT "%VC%"=="" (
if "%VSINSTALLDIR%"=="" (
Expand All @@ -104,10 +66,12 @@ if NOT "%VC%"=="" (

ECHO ***************************************************************
ECHO ****** build cython pyd files inplace
ECHO %PYTHON_EXE% -OO setup.py build_ext %BUILD_ARGS% --inplace %COMPILER_ARGS% ^> win32\build-xpra.log
%PYTHON_EXE% -OO setup.py build_ext %BUILD_ARGS% --inplace %COMPILER_ARGS% > win32\build-xpra.log
if %errorlevel% NEQ 0 (
ECHO "build error, see win32\build-xpra.log"
SET BUILD_LOG=win32\Python%PYTHON_MAJOR_VERSION%.%PYTHON_MINOR_VERSION%-build.log
DEL /Q %BUILD_LOG% 2> NUL
ECHO %PYTHON_EXE% -OO setup.py build_ext %BUILD_ARGS% --inplace %COMPILER_ARGS% ^> %BUILD_LOG%
%PYTHON_EXE% -OO setup.py build_ext %BUILD_ARGS% --inplace %COMPILER_ARGS% > %BUILD_LOG%
if %ERRORLEVEL% NEQ 0 (
ECHO build error, see %BUILD_LOG%
GOTO ERROR
)

Expand All @@ -132,10 +96,12 @@ SET PYTHONPATH=%PYGTK%;%GTK%\lib;%GTK%\bin;%PYTHON%\Lib\site-packages\;%DIR%;%PY
SET PATH=%PATH%;%GSTREAMER%\sdk\bin;%GSTREAMER%\bin
SET PY2EXE_ARGS=%BUILD_ARGS%
IF %SHOW_DEPENDENCIES% NEQ 0 SET PY2EXE_ARGS=%BUILD_ARGS% -x
ECHO %PYTHON_EXE% -OO setup.py py2exe %PY2EXE_ARGS% ^> win32\py2exe-xpra.log
%PYTHON_EXE% -OO setup.py py2exe %PY2EXE_ARGS% > win32\py2exe-xpra.log
if %errorlevel% NEQ 0 (
ECHO "py2exe error, see win32\py2exe-xpra.log"
SET PY2EXE_LOG=win32\py2exe-xpra.log
DEL /Q %PY2EXE_LOG% 2> NUL
ECHO %PYTHON_EXE% -OO setup.py py2exe %PY2EXE_ARGS% ^> %PY2EXE_LOG%
%PYTHON_EXE% -OO setup.py py2exe %PY2EXE_ARGS% > %PY2EXE_LOG%
if %ERRORLEVEL% NEQ 0 (
ECHO py2exe error, see %PY2EXE_LOG%
GOTO ERROR
)

Expand Down Expand Up @@ -171,83 +137,27 @@ REM "Overwrite the old version shipped with gstreamer - not sure why the PYTHONP
ECHO ****** Fix GTK DLLs
XCOPY /I /Y /S /Q "%GTK%\bin\*.dll" %DIST%\

GOTO MAKEINSTALLER
GOTO END


:PYTHON3
SET EXTRA_VERSION=-GTK3-py%PYTHON_MAJOR_VERSION%%PYTHON_MINOR_VERSION%
ECHO %PYTHON_EXE% -OO setup.py install_exe -d %DIST% ^> win32\cx_freeze-xpra.log
%PYTHON_EXE% -OO setup.py install_exe -d %DIST% > win32\cx_freeze-xpra.log
if %errorlevel% NEQ 0 (
ECHO "cx_freeze error, see win32\cx_freeze-install.log"
SET CX_FREEZE_ARGS=%BUILD_ARGS%
SET CX_FREEZE_LOG=win32\cx_freeze-install.log
DEL /Q %CX_FREEZE_LOG% 2> NUL
ECHO %PYTHON_EXE% -OO setup.py install_exe %CX_FREEZE_ARGS% -d %DIST% ^> %CX_FREEZE_LOG%
%PYTHON_EXE% -OO setup.py install_exe %CX_FREEZE_ARGS% -d %DIST% > %CX_FREEZE_LOG%
if %ERRORLEVEL% NEQ 0 (
ECHO cx_freeze error, see %CX_FREEZE_LOG%
GOTO ERROR
)


:MAKEINSTALLER

REM Use a custom script to move the PyOpenGL bits back into the library.zip
REM (ugly, but hacking py2exe is worse?)
ECHO ****** Moving OpenGL into library.zip
ECHO %PYTHON_EXE% win32\move_to_zip.py %DIST%\library.zip %DIST% OpenGL
%PYTHON_EXE% win32\move_to_zip.py %DIST%\library.zip %DIST% OpenGL

ECHO ****** Generating HTML Manual Page
REM "Add mingw to the path unconditionally so we can find groff"
SET PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;%PATH%
groff.exe -mandoc -Thtml < man\xpra.1 > %DIST%\manual.html

ECHO ****** Adding TortoisePlink
REM "These are the versions currently used by TortoisePlink.exe: VC 2012 redist.."
COPY /B /Y /V "C:\WINDOWS\system32\msvcr110.dll" %DIST%\ > NUL
COPY /B /Y /V "C:\WINDOWS\system32\msvcp110.dll" %DIST%\ > NUL
COPY /B /Y /V %TORTOISESVN%\bin\TortoisePlink.exe %DIST%\Plink.exe > NUL
COPY /B /Y /V %TORTOISESVN%\Putty-LICENSE.txt %DIST%\ > NUL


if "%DO_ZIP%"=="1" (
ECHO ***************************************************************
ECHO ****** Creating ZIP file
SET ZIP_DIR=Xpra%EXTRA_VERSION%%BUILD_TYPE%_%FULL_VERSION%
SET ZIP_FILENAME=!ZIP_DIR!.zip
ECHO RD /S /Q !ZIP_DIR! ^> NUL
RD /S /Q !ZIP_DIR! > NUL
ECHO DEL !ZIP_FILENAME! ^> NUL
DEL !ZIP_FILENAME! > NUL
ECHO XCOPY /S /I /X /Q %DIST% !ZIP_DIR!
XCOPY /S /I /X /Q %DIST% !ZIP_DIR!
ECHO %ZIP7% a -r !ZIP_FILENAME! !ZIP_DIR! ^> NUL
%ZIP7% a -r !ZIP_FILENAME! !ZIP_DIR! > NUL
dir !ZIP_FILENAME!
)

if "%DO_INSTALLER%"=="1" (
ECHO ***************************************************************
ECHO ****** Creating the installer using InnoSetup:
COPY /Y win32\xpra.iss xpra.iss > NUL
ECHO %INNOSETUP% xpra.iss ^> win32\innosetup.log
%INNOSETUP% xpra.iss > win32\innosetup.log
if %errorlevel% NEQ 0 (
ECHO "InnoSetup error"
GOTO ERROR
)

ECHO ***************************************************************
ECHO ****** Finished - running the new installer
SET INSTALLER_FILENAME=Xpra%EXTRA_VERSION%%BUILD_TYPE%_Setup_%FULL_VERSION%.exe
MOVE /Y Output\Xpra_Setup.exe !INSTALLER_FILENAME!
RMDIR Output
dir !INSTALLER_FILENAME!
if "%DO_NOTRUN%"=="1" (
ECHO ****** Not Running Installer
) else (
!INSTALLER_FILENAME! %ARGS%
)
)
GOTO END

:ERROR
pause
:END
PAUSE
ENDLOCAL
EXIT /b 1

:END
ENDLOCAL
SET ERRORLEVEL=0
128 changes: 128 additions & 0 deletions src/win32/BUILD_INSTALLER_PACKAGE.BAT
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
SET ARGS=%*
set DIR=%CD%

SETLOCAL EnableExtensions EnableDelayedExpansion

REM set some defaults if unspecified:
if "%DO_INSTALLER%"=="" (
SET DO_INSTALLER=1
)
if "%RUN_INSTALLER%"=="" (
SET RUN_INSTALLER=1
)
if "%DO_ZIP%"=="" (
SET DO_ZIP=1
)
if "%DIST%"=="" (
SET DIST="dist"
)

ECHO DO_INSTALLER=%DO_INSTALLER%
ECHO RUN_INSTALLER=%RUN_INSTALLER%
ECHO DO_ZIP=%DO_ZIP%
ECHO DIST=%DIST%

SET INNOSETUP="%ProgramFiles%\Inno Setup 5\ISCC.exe"
IF EXIST "%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe" (
SET INNOSETUP="%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe"
)
SET TORTOISESVN="%ProgramFiles%\TortoiseSVN"
IF EXIST "%ProgramFiles(x86)%\TortoiseSVN" (
SET TORTOISESVN="%ProgramFiles(x86)%\TortoiseSVN"
)
SET ZIP7="%ProgramFiles%\7-Zip\7z.exe"
IF EXIST "%ProgramFiles(x86)%\7-Zip\7z.exe" (
SET ZIP7="%ProgramFiles(x86)%\7-Zip\7z.exe"
)

SET PYTHON_EXE=%PYTHON%\python.exe
SET SVNVERSION_EXE=svnversion
SET EXTRA_VERSION=

FOR /F "delims=" %%i IN ('%PYTHON_EXE% -c "import sys;print(sys.version_info.major)"') DO set PYTHON_MAJOR_VERSION=%%i
FOR /F "delims=" %%i IN ('%PYTHON_EXE% -c "import sys;print(sys.version_info.minor)"') DO set PYTHON_MINOR_VERSION=%%i
ECHO Found Python version %PYTHON_MAJOR_VERSION%.%PYTHON_MINOR_VERSION%

SET VERSION=ERROR
FOR /F "delims=" %%i IN ('%PYTHON_EXE% -c "from xpra import __version__;print(__version__)"') DO set VERSION=%%i
ECHO Packaging Xpra Version %VERSION%
SET SVNVERSION=ERROR
FOR /F "delims=" %%i IN ('%SVNVERSION_EXE% -n ..') DO set SVNVERSION=%%i
ECHO Found svnversion %SVNVERSION%
SET REVISION=
FOR /F "tokens=2 delims=:" %%G IN ("%SVNVERSION%") DO set REVISION=%%G
IF [%REVISION%]==[] set REVISION=%SVNVERSION%
SET FULL_VERSION=%VERSION%-r%REVISION%
ECHO Full version %FULL_VERSION%


REM Use a custom script to move the PyOpenGL bits back into the library.zip
REM (ugly, but hacking py2exe is worse?)
REM This directory may not exist when doing a Python3 build against newer gobject bindings..
IF EXIST "%DIST%\OpenGL" (
ECHO ****** Moving OpenGL into library.zip
ECHO %PYTHON_EXE% win32\move_to_zip.py %DIST%\library.zip %DIST% OpenGL
%PYTHON_EXE% win32\move_to_zip.py %DIST%\library.zip %DIST% OpenGL
)

ECHO ****** Generating HTML Manual Page
REM "Add mingw to the path unconditionally so we can find groff"
SET PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;%PATH%
groff.exe -mandoc -Thtml < man\xpra.1 > %DIST%\manual.html

ECHO ****** Adding TortoisePlink
REM "These are the versions currently used by TortoisePlink.exe: VC 2012 redist.."
COPY /B /Y /V "C:\WINDOWS\system32\msvcr110.dll" %DIST%\ > NUL
COPY /B /Y /V "C:\WINDOWS\system32\msvcp110.dll" %DIST%\ > NUL
COPY /B /Y /V %TORTOISESVN%\bin\TortoisePlink.exe %DIST%\Plink.exe > NUL
COPY /B /Y /V %TORTOISESVN%\Putty-LICENSE.txt %DIST%\ > NUL


if "%DO_ZIP%"=="1" (
ECHO ***************************************************************
ECHO ****** Creating ZIP file
SET ZIP_DIR=Xpra%EXTRA_VERSION%%BUILD_TYPE%_%FULL_VERSION%
SET ZIP_FILENAME=!ZIP_DIR!.zip
ECHO RD /S /Q !ZIP_DIR! ^> NUL
RD /S /Q !ZIP_DIR! > NUL
ECHO DEL !ZIP_FILENAME! ^> NUL
DEL !ZIP_FILENAME! > NUL
ECHO XCOPY /S /I /X /Q %DIST% !ZIP_DIR!
XCOPY /S /I /X /Q %DIST% !ZIP_DIR!
ECHO %ZIP7% a -r !ZIP_FILENAME! !ZIP_DIR! ^> NUL
%ZIP7% a -r !ZIP_FILENAME! !ZIP_DIR! > NUL
dir !ZIP_FILENAME!
)

if "%DO_INSTALLER%"=="1" (
ECHO ***************************************************************
ECHO ****** Creating the installer using InnoSetup:
SET INSTALLER_FILENAME=Xpra%EXTRA_VERSION%%BUILD_TYPE%_Setup_%FULL_VERSION%.exe
SET INNOSETUP_LOG=win32\innosetup.log
DEL /Q Xpra_Setup.exe !INSTALLER_FILENAME! !INNOSETUP_LOG! 2> NUL
COPY /Y win32\xpra.iss xpra.iss > NUL
ECHO %INNOSETUP% xpra.iss ^> !INNOSETUP_LOG!
%INNOSETUP% xpra.iss > !INNOSETUP_LOG!
if %ERRORLEVEL% NEQ 0 (
ECHO InnoSetup error, see !INNOSETUP_LOG!
GOTO ERROR
)

ECHO ***************************************************************
ECHO ****** Finished - running the new installer
MOVE /Y Output\Xpra_Setup.exe !INSTALLER_FILENAME!
RMDIR Output
dir !INSTALLER_FILENAME!
if "%RUN_INSTALLER%"=="1" (
!INSTALLER_FILENAME! %ARGS%
) else (
ECHO ****** Not Running Installer
)
)
GOTO END

:ERROR
pause
:END

ENDLOCAL
Loading

0 comments on commit f36c5bc

Please sign in to comment.