appveyor: Add support for building llvmpipe with meson
[mesa.git] / scripts / appveyor_msvc.bat
index 6a85e830ec8167733faf686f3d437b95b9d68bf7..0f0e1e17aafb4cc0927d89d12f799b7965d08967 100644 (file)
@@ -1,20 +1,28 @@
 goto %1
 
 :install
 goto %1
 
 :install
-rem Check git config
-git config core.autocrlf
 rem Check pip
 rem Check pip
-python --version
-python -m pip --version
-rem Install Mako
-python -m pip install Mako==1.0.7
-rem Install pywin32 extensions, needed by SCons
-python -m pip install pypiwin32
-rem Install python wheels, necessary to install SCons via pip
-python -m pip install wheel
-rem Install SCons
-python -m pip install scons==3.0.1
-call scons --version
+if "%buildsystem%" == "scons" (
+    python --version
+    python -m pip --version
+    rem Install Mako
+    python -m pip install Mako==1.0.7
+    rem Install pywin32 extensions, needed by SCons
+    python -m pip install pypiwin32
+    rem Install python wheels, necessary to install SCons via pip
+    python -m pip install wheel
+    rem Install SCons
+    python -m pip install scons==3.0.1
+    call scons --version
+) else (
+    python --version
+    python -m pip install Mako==1.0.7 meson
+    meson --version
+
+    rem Install pkg-config, which meson requires even on windows
+    cinst -y pkgconfiglite
+)
+
 rem Install flex/bison
 set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
 if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
 rem Install flex/bison
 set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
 if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
@@ -25,14 +33,34 @@ win_bison --version
 rem Download and extract LLVM
 if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
 7z x -y "%LLVM_ARCHIVE%" > nul
 rem Download and extract LLVM
 if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
 7z x -y "%LLVM_ARCHIVE%" > nul
-mkdir llvm\bin
-set LLVM=%CD%\llvm
+if "%buildsystem%" == "scons" (
+    mkdir llvm\bin
+    set LLVM=%CD%\llvm
+) else (
+    move llvm subprojects\
+    copy .appveyor\llvm-wrap.meson subprojects\llvm\meson.build
+)
 goto :eof
 
 :build_script
 goto :eof
 
 :build_script
-call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
+if "%buildsystem%" == "scons" (
+    call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
+) else (
+    call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=x86
+    rem We use default-library as static to affect any wraps (such as expat and zlib)
+    rem it would be better if we could set subprojects buildtype independently,
+    rem but I haven't written that patch yet :)
+    call meson builddir --backend=vs2017 --default-library=static -Dbuild-tests=true -Db_vscrt=mtd --buildtype=release -Dllvm=true -Dgallium-drivers=swrast
+    pushd builddir
+    call msbuild mesa.sln /m
+    popd
+)
 goto :eof
 
 goto :eof
 
-:after_build
-call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
+:test_script
+if "%buildsystem%" == "scons" (
+    call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
+) else (
+    call meson test -C builddir
+)
 goto :eof
 goto :eof