appveyor: Add support for meson as well as scons on windows
[mesa.git] / scripts / appveyor_msvc.bat
1 goto %1
2
3 :install
4 rem Check pip
5 call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
6 if "%buildsystem%" == "scons" (
7 python --version
8 python -m pip --version
9 rem Install Mako
10 python -m pip install Mako==1.0.7
11 rem Install pywin32 extensions, needed by SCons
12 python -m pip install pypiwin32
13 rem Install python wheels, necessary to install SCons via pip
14 python -m pip install wheel
15 rem Install SCons
16 python -m pip install scons==3.0.1
17 call scons --version
18 ) else (
19 python --version
20 python -m pip install Mako==1.0.7 meson
21 meson --version
22
23 rem Install pkg-config, which meson requires even on windows
24 cinst -y pkgconfiglite
25 )
26
27 rem Install flex/bison
28 set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
29 if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
30 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
31 set Path=%CD%\winflexbison;%Path%
32 win_flex --version
33 win_bison --version
34 rem Download and extract LLVM
35 if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
36 7z x -y "%LLVM_ARCHIVE%" > nul
37 if "%buildsystem%" == "scons" (
38 mkdir llvm\bin
39 set LLVM=%CD%\llvm
40 )
41 goto :eof
42
43 :build_script
44 if "%buildsystem%" == "scons" (
45 call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
46 ) else (
47 rem We use default-library as static to affect any wraps (such as expat and zlib)
48 rem it would be better if we could set subprojects buildtype independently,
49 rem but I haven't written that patch yet :)
50 call meson builddir --backend=vs2017 --default-library=static -Dbuild-tests=true -Db_vscrt=mtd --buildtype=release -Dllvm=false
51 pushd builddir
52 call msbuild mesa.sln /m
53 popd
54 )
55 goto :eof
56
57 :test_script
58 if "%buildsystem%" == "scons" (
59 call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
60 ) else (
61 call meson test -C builddir
62 )
63 goto :eof