changeset 546:fb9282b9ab92

Outline of revised Win build-and-package
author Chris Cannam
date Fri, 15 Feb 2019 10:55:23 +0000
parents bcc02affeb16
children ba0301b1910c
files deploy/win32/build.cmd deploy/win64/License.rtf deploy/win64/build-64.bat deploy/win64/build-and-package.bat
diffstat 4 files changed, 157 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/deploy/win32/build.cmd	Thu Feb 14 13:21:22 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-@ECHO OFF
-SET WIXPATH="C:\Program Files (x86)\WiX Toolset v3.9\bin"
-IF NOT EXIST %WIXPATH% (
-    SET WIXPATH="C:\Program Files\WiX Toolset v3.9\bin"
-)
-IF NOT EXIST %WIXPATH% (
-    ECHO "WiX not found, exiting"
-)
-IF EXIST %WIXPATH% (
-    DEL tony.msi
-    %WIXPATH%\candle.exe -v tony.wxs
-    %WIXPATH%\light.exe -b ..\.. -ext WixUIExtension -v tony.wixobj
-    PAUSE
-    DEL tony.wixobj
-    DEL tony.wixpdb
-)
Binary file deploy/win64/License.rtf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win64/build-64.bat	Fri Feb 15 10:55:23 2019 +0000
@@ -0,0 +1,59 @@
+rem  Run this from within the top-level Tony dir: deploy\win64\build-64.bat
+rem  To build from clean, delete the folder build_win64
+
+set STARTPWD=%CD%
+
+set QTDIR=C:\Qt\5.11.2\msvc2017_64
+if not exist %QTDIR% (
+@   echo Could not find 64-bit Qt
+@   exit /b 2
+)
+
+if not exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" (
+@   echo "Could not find MSVC vars batch file"
+@   exit /b 2
+)
+
+call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
+
+set ORIGINALPATH=%PATH%
+set PATH=%PATH%;C:\Program Files (x86)\SMLNJ\bin;%QTDIR%\bin
+
+cd %STARTPWD%
+
+call .\repoint install
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+mkdir build_win64
+cd build_win64
+
+qmake -spec win32-msvc -r -tp vc ..\tony.pro
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+msbuild tony.sln /t:Build /p:Configuration=Release
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+copy %QTDIR%\bin\Qt5Core.dll .\release
+copy %QTDIR%\bin\Qt5Gui.dll .\release
+copy %QTDIR%\bin\Qt5Widgets.dll .\release
+copy %QTDIR%\bin\Qt5Network.dll .\release
+copy %QTDIR%\bin\Qt5Xml.dll .\release
+copy %QTDIR%\bin\Qt5Svg.dll .\release
+copy %QTDIR%\bin\Qt5Test.dll .\release
+copy %QTDIR%\plugins\platforms\qminimal.dll .\release
+copy %QTDIR%\plugins\platforms\qwindows.dll .\release
+copy %QTDIR%\plugins\styles\qwindowsvistastyle.dll .\release
+copy ..\sv-dependency-builds\win64-msvc\lib\libsndfile-1.dll .\release
+
+rem some of these expect to be run from the project root
+cd ..
+build_win64\release\test-svcore-base
+if %errorlevel% neq 0 exit /b %errorlevel%
+build_win64\release\test-svcore-system
+if %errorlevel% neq 0 exit /b %errorlevel%
+build_win64\release\test-svcore-data-fileio
+if %errorlevel% neq 0 exit /b %errorlevel%
+build_win64\release\test-svcore-data-model
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+set PATH=%ORIGINALPATH%
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win64/build-and-package.bat	Fri Feb 15 10:55:23 2019 +0000
@@ -0,0 +1,98 @@
+rem  Run this from within the top-level Tony dir: deploy\win64\build-and-package.bat
+
+set STARTPWD=%CD%
+
+if not exist "C:\Program Files (x86)\SMLNJ\bin" (
+@   echo Could not find SML/NJ, required for Repoint
+@   exit /b 2
+)
+
+if not exist "C:\Program Files (x86)\WiX Toolset v3.11\bin" (
+@   echo Could not find WiX Toolset
+@   exit /b 2
+)
+
+set ORIGINALPATH=%PATH%
+set PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
+set NAME=Open Source Developer, Christopher Cannam
+
+set ARG=%1
+shift
+if "%ARG%" == "sign" (
+@   echo NOTE: sign option specified, will attempt to codesign exe and msi
+@   echo NOTE: starting by codesigning an unrelated executable, so we know
+@   echo NOTE: whether it'll work before doing the entire build
+copy sv-dependency-builds\win64-msvc\bin\capnp.exe signtest.exe
+signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 signtest.exe
+if errorlevel 1 exit /b %errorlevel%
+signtool verify /pa signtest.exe
+if errorlevel 1 exit /b %errorlevel%
+del signtest.exe
+@   echo NOTE: success
+) else (
+@   echo NOTE: sign option not specified, will not codesign anything
+)
+
+@echo ""
+@echo Rebuilding 32-bit
+
+cd %STARTPWD%
+del /q /s build_win32
+call .\deploy\win32\build-32.bat
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+if "%ARG%" == "sign" (
+@echo Signing 32-bit executables and libraries
+signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 build_win32\release\*.exe build_win32\release\*.dll
+)
+
+@echo Rebuilding 64-bit
+
+cd %STARTPWD%
+del /q /s build_win64
+call .\deploy\win64\build-64.bat
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+if "%ARG%" == "sign" (
+@echo Signing 64-bit executables and libraries
+signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 build_win32\release\*.exe build_win64\release\*.dll
+)
+
+set PATH=%PATH%;"C:\Program Files (x86)\WiX Toolset v3.11\bin"
+
+@echo Packaging 32-bit
+
+cd %STARTPWD%\build_win32
+del tony.msi
+candle -v ..\deploy\win32\tony.wxs
+light -b . -ext WixUIExtension -ext WixUtilExtension -v tony.wixobj
+if %errorlevel% neq 0 exit /b %errorlevel%
+del tony.wixobj
+del tony.wixpdb
+
+if "%ARG%" == "sign" (
+@echo Signing 32-bit package
+signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 tony.msi
+signtool verify /pa tony.msi
+)
+
+@echo Packaging 64-bit
+
+cd %STARTPWD%\build_win64
+del tony.msi
+candle -v ..\deploy\win64\tony.wxs
+light -b . -ext WixUIExtension -ext WixUtilExtension -v tony.wixobj
+if %errorlevel% neq 0 exit /b %errorlevel%
+del tony.wixobj
+del tony.wixpdb
+
+if "%ARG%" == "sign" (
+@echo Signing 64-bit package
+signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 tony.msi
+signtool verify /pa tony.msi
+)
+
+set PATH=%ORIGINALPATH%
+
+@echo Done
+