gitlab-ci: Add a job for meson on windows
authorDylan Baker <dylan@pnwbakers.com>
Wed, 23 Oct 2019 21:36:19 +0000 (14:36 -0700)
committerDylan Baker <dylan@pnwbakers.com>
Fri, 25 Oct 2019 22:47:32 +0000 (22:47 +0000)
This adds a new CI job that runs on windows with MSVC. It currently
builds softpipe and osmesa, and runs the related unit tests. It does
rely on meson's wraps for zlib, but I've set up caching of the wrap
dependencies so hopefully that wont be a problem.

I really wanted to user powershell for this, but there just isn't an
easy way to do that, it's much easier to use batch scripts, so thats
what I used.

The leading `/` for .gitlab-ci/lava... must be removed because windows
doesn't understand it, and when it reads the file the job ends in error.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
.gitlab-ci.yml
.gitlab-ci/meson-build.bat [new file with mode: 0644]

index 5e58f8144099a3826f35374f456ef7bfca3d1c49..af6324cad72e6603bd2b7361f02164c191664344 100644 (file)
@@ -29,7 +29,7 @@ include:
     file: '/templates/debian.yml'
 
 include:
-  - local: '/.gitlab-ci/lava-gitlab-ci.yml'
+  - local: '.gitlab-ci/lava-gitlab-ci.yml'
 
 stages:
   - container
@@ -142,6 +142,15 @@ debian-10:arm64:
     - export CCACHE_DIR="$PWD/ccache"
     - ccache --show-stats
 
+.build-windows:
+  extends: .build-common
+  tags:
+    - mesa-windows
+  cache:
+    key: ${CI_JOB_NAME}
+    paths:
+      - subprojects/packagecache
+
 .meson-build:
   extends:
     - .build-linux
@@ -269,6 +278,15 @@ meson-clang:
     CC: "ccache clang-8"
     CXX: "ccache clang++-8"
 
+meson-windows:
+  extends:
+    - .build-windows
+  before_script:
+    - $ENV:ARCH = "x86"
+    - $ENV:VERSION = "2019\Community"
+  script:
+    - cmd /C .gitlab-ci\meson-build.bat
+
 scons-swr:
   extends: .scons-build
   variables:
diff --git a/.gitlab-ci/meson-build.bat b/.gitlab-ci/meson-build.bat
new file mode 100644 (file)
index 0000000..5982a40
--- /dev/null
@@ -0,0 +1,13 @@
+call "C:\Program Files (x86)\Microsoft Visual Studio\%VERSION%\Common7\Tools\VsDevCmd.bat" -arch=%ARCH%
+
+del /Q /S _build
+meson _build ^
+        -Dbuild-tests=true ^
+        -Db_vscrt=mtd ^
+        -Dbuildtype=release ^
+        -Dllvm=false ^
+        -Dgallium-drivers=swrast ^
+        -Dosmesa=gallium
+meson configure _build
+ninja -C _build
+ninja -C _build test