summaryrefslogtreecommitdiffstats
path: root/scripts/appveyor_msvc.bat
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2019-01-23 14:21:26 -0800
committerDylan Baker <[email protected]>2019-10-10 16:33:05 -0700
commitf066c9607852a9d587e6fb08f74fd0578426eb10 (patch)
tree06ce632d023b6b9cca360b809e80dc4577875d7d /scripts/appveyor_msvc.bat
parent44c5e634a5cd568306d42777af6c660fbbb5773e (diff)
appveyor: Add support for meson as well as scons on windows
This job uses the vs2017 backend of meson (msbuild) as opposed to the ninja backend used on MacOS and Linux. v7: - rebase on master - remove llvm (we'll add that back later) - remove cygwin (we'll add that back later too) v6: - rebase on master, including the addition of cygwin - consolidate 3 appveyor patches into this one patch v5 - use the new b_vscrt option instead of manually specifying the crt v4: - rebase on python3 generators - cache meson wraps - Build x86 instead of x86_64, since that's what the pre-built LLVM is - update to vs2017 from vs2015 - set the default-library to static - use the new vscrt override - add the /m switch to msbuild to make the build somewhat faster Acked-by: Kristian H. Kristensen <[email protected]>
Diffstat (limited to 'scripts/appveyor_msvc.bat')
-rw-r--r--scripts/appveyor_msvc.bat63
1 files changed, 63 insertions, 0 deletions
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