rem Run from Qt command prompt with working directory set to root of repo setlocal enableDelayedExpansion @echo off set BUILD_CONFIG=%1 set ARCH=%2 if "%BUILD_CONFIG%" NEQ "debug" ( if "%BUILD_CONFIG%" NEQ "release" ( echo Invalid build configuration goto Error ) ) if "%ARCH%" NEQ "x86" ( if "%ARCH%" NEQ "x64" ( echo Invalid build architecture goto Error ) ) call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %ARCH% if !ERRORLEVEL! NEQ 0 goto Error set BUILD_ROOT=%cd%\build set SOURCE_ROOT=%cd% set BUILD_FOLDER=%BUILD_ROOT%\build-%ARCH%-%BUILD_CONFIG% set DEPLOY_FOLDER=%BUILD_ROOT%\deploy-%ARCH%-%BUILD_CONFIG% set INSTALLER_FOLDER=%BUILD_ROOT%\installer-%ARCH%-%BUILD_CONFIG% echo Cleaning output directories rmdir /s /q %DEPLOY_FOLDER% rmdir /s /q %BUILD_FOLDER% rmdir /s /q %INSTALLER_FOLDER% mkdir %BUILD_ROOT% mkdir %DEPLOY_FOLDER% mkdir %BUILD_FOLDER% mkdir %INSTALLER_FOLDER% echo Configuring the project pushd %BUILD_FOLDER% qmake %SOURCE_ROOT%\moonlight-qt.pro if !ERRORLEVEL! NEQ 0 goto Error popd echo Compiling Moonlight in %BUILD_CONFIG% configuration pushd %BUILD_FOLDER% nmake %BUILD_CONFIG% if !ERRORLEVEL! NEQ 0 goto Error popd echo Copying DLL dependencies copy %SOURCE_ROOT%\libs\windows\lib\%ARCH%\*.dll %DEPLOY_FOLDER% if !ERRORLEVEL! NEQ 0 goto Error echo Deploying Qt dependencies windeployqt.exe --dir %DEPLOY_FOLDER% --%BUILD_CONFIG% --qmldir %SOURCE_ROOT%\app\gui --no-angle --no-opengl-sw --no-compiler-runtime %BUILD_FOLDER%\app\%BUILD_CONFIG%\Moonlight.exe if !ERRORLEVEL! NEQ 0 goto Error echo Harvesting files for WiX heat dir %DEPLOY_FOLDER% -srd -sfrag -ag -sw5150 -cg MoonlightDependencies -var var.SourceDir -dr INSTALLFOLDER -out %BUILD_FOLDER%\Dependencies.wxs if !ERRORLEVEL! NEQ 0 goto Error echo Copying application binary to deployment directory copy %BUILD_FOLDER%\app\%BUILD_CONFIG%\Moonlight.exe %DEPLOY_FOLDER% if !ERRORLEVEL! NEQ 0 goto Error echo Building installer msbuild %SOURCE_ROOT%\wix\Moonlight.sln /p:Configuration=%BUILD_CONFIG% /p:Platform=%ARCH% if !ERRORLEVEL! NEQ 0 goto Error echo Build successful! exit /b 0 :Error echo Build failed! exit /b %ERRORLEVEL%