summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appveyor.yml40
-rw-r--r--scripts/appveyor_msvc.bat63
2 files changed, 73 insertions, 30 deletions
diff --git a/appveyor.yml b/appveyor.yml
index ccb84fd3403..6c1bd370044 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -49,41 +49,21 @@ init:
environment:
WINFLEXBISON_VERSION: 2.5.15
LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
+ matrix:
+ - compiler: msvc
+ buildsystem: scons
+ - compiler: msvc
+ buildsystem: meson
+ path: C:\Python37-x64;C:\Python37-x64\Scripts;%path%
install:
-# Check git config
-- git config core.autocrlf
-# Check pip
-- python --version
-- python -m pip --version
-# Install Mako
-- python -m pip install Mako==1.0.7
-# Install pywin32 extensions, needed by SCons
-- python -m pip install pypiwin32
-# Install python wheels, necessary to install SCons via pip
-- python -m pip install wheel
-# Install SCons
-- python -m pip install scons==3.0.1
-- scons --version
-# 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%"
-- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
-- set Path=%CD%\winflexbison;%Path%
-- win_flex --version
-- win_bison --version
-# 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
+- cmd: scripts\appveyor_msvc.bat install
build_script:
-- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
-
-after_build:
-- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
+- cmd: scripts\appveyor_msvc.bat build_script
+test_script:
+- cmd: scripts\appveyor_msvc.bat test_script
# It's possible to setup notification here, as described in
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
diff --git a/scripts/appveyor_msvc.bat b/scripts/appveyor_msvc.bat
new file mode 100644
index 00000000000..5e8bd451d7e
--- /dev/null
+++ b/scripts/appveyor_msvc.bat
@@ -0,0 +1,63 @@
+goto %1
+
+:install
+rem Check pip
+call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
+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%"
+7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
+set Path=%CD%\winflexbison;%Path%
+win_flex --version
+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
+if "%buildsystem%" == "scons" (
+ mkdir llvm\bin
+ set LLVM=%CD%\llvm
+)
+goto :eof
+
+:build_script
+if "%buildsystem%" == "scons" (
+ call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
+) else (
+ 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=false
+ pushd builddir
+ call msbuild mesa.sln /m
+ popd
+)
+goto :eof
+
+: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