summaryrefslogtreecommitdiffstats
path: root/build/appveyor/build_mixxx.bat
diff options
context:
space:
mode:
Diffstat (limited to 'build/appveyor/build_mixxx.bat')
-rw-r--r--build/appveyor/build_mixxx.bat114
1 files changed, 76 insertions, 38 deletions
diff --git a/build/appveyor/build_mixxx.bat b/build/appveyor/build_mixxx.bat
index 69e8371bf9..a520c471bc 100644
--- a/build/appveyor/build_mixxx.bat
+++ b/build/appveyor/build_mixxx.bat
@@ -1,5 +1,5 @@
-@echo on
-SETLOCAL
+@echo off
+SETLOCAL ENABLEDELAYEDEXPANSION
REM ==================================
REM Path setup and initial checks
@@ -14,38 +14,36 @@ SET "PROGRAMFILES_PATH=%ProgramFiles(x86)%"
rem ====== Edit to suit your environment =========
SET VCVERSION=141
-SET "MSVC_PATH=%PROGRAMFILES_PATH%\Microsoft Visual Studio\2017\Community\VC"
+SET PARAM_VCVARSVER=14.1
SET "BUILDTOOLS_PATH=%PROGRAMFILES_PATH%\Microsoft Visual Studio\2017\BuildTools\VC"
SET BUILDTOOLS_SCRIPT=Auxiliary\Build\vcvarsall.bat
-IF EXIST "%MSVC_PATH%" (
-echo Building with Microsoft Visual Studio 2017 Community Edition.
-SET "BUILDTOOLS_PATH=%MSVC_PATH%"
-) ELSE (
IF EXIST "%BUILDTOOLS_PATH%" (
-echo Building with Microsoft Visual Studio 2017 Build Tools.
+echo Building with preconfigured path at: "%BUILDTOOLS_PATH%"
) ELSE (
+call :function_get_product
+IF ERRORLEVEL 1 (
echo.
-echo Could not find "%MSVC_PATH%" nor "%BUILDTOOLS_PATH%".
-echo Edit the build_environment.bat file and/or install the required software
+echo Could not find "%BUILDTOOLS_PATH%" and the detection of product didn't work
+echo Edit the %~nx0 file and/or install the required software
echo http://landinghub.visualstudio.com/visual-cpp-build-tools
echo https://www.microsoft.com/en-us/download/details.aspx?id=8279
exit /b 1
)
-REM END EXIST BUILDTOOLS
+REM END NO PRODUCT
)
-REM END EXIST MSVC_PATH
+REM END EXIST BUILDTOOLS_PATH
REM Check whether we have a 64-bit compiler available.
-REM TODO(rryan): Remove hard-coding of compiler version in this path?
-IF EXIST "%BUILDTOOLS_PATH%\Tools\MSVC\14.15.26726\bin\Hostx64\x64\cl.exe" (
-echo Using 64-bit compiler.
-SET COMPILER_X86=amd64_x86
-SET COMPILER_X64=amd64
-) ELSE (
+call :function_has_64bit
+IF ERRORLEVEL 1 (
echo Using 32-bit compiler.
SET COMPILER_X86=x86
SET COMPILER_X64=x86_amd64
+) ELSE (
+echo Using 64-bit compiler.
+SET COMPILER_X86=amd64_x86
+SET COMPILER_X64=amd64
)
REM ==================================
@@ -55,23 +53,42 @@ REM ^ is the escape character.
if "%3" == "" (
echo Missing parameters. Usage: ^(Note: keep same case and order^)
echo.
- echo build_mixxx.bat x64^|x86 debug^|release^|release-fastbuild ^<winlib-path^>
+ echo build_mixxx.bat x64^|x86 debug^|release^|release-fastbuild ^<winlib-path^> [skiptest] [skipinstaller]
+ echo.
+ echo skiptest means that we don't want to build and execute the mixxx-test.
+ echo skipinstaller means that we don't want to generate the installer after the build.
echo.
- echo Example: build_mixxx.bat x64 release c:\mixxx\environments\msvc15-static-x86-release
+ echo Example: build_mixxx.bat x64 release c:\mixxx\environments\2.3-j00013-x64-release-static-36f44bd2-minimal
exit /b 1
)
set MACHINE_X86="%1" == "x86"
if "%2" == "release" (
set CONFIG_RELEASE=1==1
+ set PARAM_OPTIMIZE=portable
)
if "%2" == "release-fastbuild" (
set CONFIG_RELEASE=1==1
+ set PARAM_OPTIMIZE=fastbuild
)
if "%2" == "debug" (
set CONFIG_RELEASE=0==1
+ set PARAM_OPTIMIZE=portable
+)
+if "%4" == "skiptest" (
+ set PARAM_TEST=0
+) else (
+ set PARAM_TEST=1
+)
+if "%4" == "skipinstaller" (
+ set PARAM_INSTALLER=
+) else (
+ if "%5" == "skipinstaller" (
+ set PARAM_INSTALLER=
+ ) else (
+ set PARAM_INSTALLER=makerelease
+ )
)
-
set WINLIB_DIR=%3
SET BIN_DIR=%WINLIB_DIR%\bin
@@ -96,39 +113,28 @@ exit /b 1
REM Everything prepared. Setup the compiler.
if %MACHINE_X86% (
-call "%BUILDTOOLS_PATH%\%BUILDTOOLS_SCRIPT%" %COMPILER_X86%
+call "%BUILDTOOLS_PATH%\%BUILDTOOLS_SCRIPT%" %COMPILER_X86% -vcvars_ver=%PARAM_VCVARSVER%
+set MACHINE_TYPE=x86
) else (
-call "%BUILDTOOLS_PATH%\%BUILDTOOLS_SCRIPT%" %COMPILER_X64%
+call "%BUILDTOOLS_PATH%\%BUILDTOOLS_SCRIPT%" %COMPILER_X64% -vcvars_ver=%PARAM_VCVARSVER%
+set MACHINE_TYPE=x86_64
)
-REM Now build Mixxx.
-
if %CONFIG_RELEASE% (
set BUILD_TYPE=release
) else (
set BUILD_TYPE=debug
)
-if %MACHINE_X86% (
-set MACHINE_TYPE=x86
-set DISTDIR=dist32
-) else (
-set MACHINE_TYPE=x86_64
-set DISTDIR=dist64
-)
-
-REM Clean up after old builds.
-REM del /q /f *.exe *.msi 2>NUL
-REM rmdir /s /q %DISTDIR%
-
rem /MP Use all CPU cores.
rem /FS force synchronous PDB writes (prevents PDB corruption with /MP)
rem /EHsc Do not handle SEH in try / except blocks.
set CXXFLAGS=/MP /FS /EHsc
set CFLAGS=/MP /FS /EHsc
+REM Now build Mixxx.
set PATH=%BIN_DIR%;%PATH%
-scons.py mixxx makerelease toolchain=msvs winlib=%WINLIB_DIR% build=%BUILD_TYPE% staticlibs=1 staticqt=1 debug_assertions_fatal=1 verbose=0 machine=%MACHINE_TYPE% qtdir=%QTDIR% hss1394=1 mediafoundation=1 opus=1 localecompare=1 optimize=fastbuild virtualize=0 test=1 qt_sqlite_plugin=0 build_number_in_title_bar=0 bundle_pdbs=0
+scons.py %SCONS_NUMBER_PROCESSORS% mixxx %PARAM_INSTALLER% toolchain=msvs winlib=%WINLIB_DIR% build=%BUILD_TYPE% staticlibs=1 staticqt=1 debug_assertions_fatal=1 verbose=0 machine=%MACHINE_TYPE% qtdir=%QTDIR% hss1394=1 mediafoundation=1 opus=1 localecompare=1 optimize=%PARAM_OPTIMIZE% virtualize=0 test=%PARAM_TEST% qt_sqlite_plugin=0 build_number_in_title_bar=0 bundle_pdbs=0
IF ERRORLEVEL 1 (
echo ==============================
@@ -144,3 +150,35 @@ exit /b 1
echo Mixxx built successfully
ENDLOCAL
)
+EXIT /b 0
+
+:function_get_product
+FOR %%Y IN (2019,2017) DO (
+ FOR %%P IN (Community,Professional,Enterprise) DO (
+ SET "LOCAL_VS_PATH=%PROGRAMFILES_PATH%\Microsoft Visual Studio\%%Y\%%P\VC"
+ IF EXIST "!LOCAL_VS_PATH!" (
+ SET "BUILDTOOLS_PATH=!LOCAL_VS_PATH!"
+ ECHO Using Visual Studio %%Y %%P at: !LOCAL_VS_PATH!
+ EXIT /B 0
+ )
+ )
+ REM FOR
+ SET "LOCAL_BT_PATH=%PROGRAMFILES_PATH%\Microsoft Visual Studio\%%Y\BuildTools\VC"
+ IF EXIST "!LOCAL_BT_PATH!" (
+ SET "BUILDTOOLS_PATH=!LOCAL_BT_PATH!"
+ ECHO Using BuildTools %%Y at: !LOCAL_BT_PATH!
+ EXIT /B 0
+ )
+ REM BT
+)
+REM FOR
+EXIT /B 1
+
+:function_has_64bit
+FOR /F %%G IN ('dir "%BUILDTOOLS_PATH%\Tools\MSVC\%PARAM_VCVARSVER%*" /b /ad-h /o-n') DO (
+ set "LOCAL_64_CL=%BUILDTOOLS_PATH%\Tools\MSVC\%%G\bin\Hostx64\x64\cl.exe"
+ if EXIST "!LOCAL_64_CL!" (
+ EXIT /B 0
+ )
+)
+EXIT /B 1