appveyor.yml msys2/build.sh msys2/install.sh

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Mar 4 09:00:53 UTC 2025


 appveyor.yml     |   17 +++++++++++++++++
 msys2/build.sh   |    6 ++++++
 msys2/install.sh |   10 ++++++++++
 3 files changed, 33 insertions(+)

New commits:
commit f095b40ee7a31b10b7a4347007bbfbed8edca62c
Author: Akihiko Odaki <akihiko.odaki at daynix.com>
Date:   Sat Mar 1 17:25:11 2025 +0900

    CI: Build with MSYS2 on AppVeyor
    
    MSYS2 is an alternative build environment.
    
    MSYS2 has the following advantage compared to Microsoft Visual C++
    that is already employed on AppVeyor:
    - MSYS2 can pack MSI using autotools
    
    MSYS2 has the following disadvantages compared to Microsoft Visual C++:
    - MSYS2 cannot run tests because the autotools scripts currently require
      Wine.
    - MSYS2 no longer supports UCRT on the 32-bit platform.
    
    MSYS2 has the following advantages compared to Fedora that is already
    employed on GitLab CI:
    - The build completely fails on Fedora because libpng tries to link
      the __intrinsic_setjmpex function, which is not available.
    - MSYS2 can employ UCRT instead of MSVCRT. For details of UCRT and
      MSVCRT, see: https://www.msys2.org/docs/environments/#msvcrt-vs-ucrt
      Fedora
    
    MSYS2 has the following disadvantage compared to Fedora:
    - MSYS2 cannot run tests.
    
    Signed-off-by: Akihiko Odaki <akihiko.odaki at daynix.com>

diff --git a/appveyor.yml b/appveyor.yml
index 8fbd5ff..4668d9d 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,6 +5,8 @@ image: Visual Studio 2019
 cache: c:\Tools\vcpkg\installed\
 
 environment:
+  BASH: C:\msys64\usr\bin\bash
+  CHERE_INVOKING: yes
   VCPKG_ROOT: c:\Tools\vcpkg
 
 install:
@@ -13,6 +15,7 @@ install:
 - mkdir build64
 
 - choco install --timeout 600 -y imagemagick
+- '%BASH% -l msys2\install.sh'
 - refreshenv
 
 - cd %VCPKG_ROOT%
@@ -20,6 +23,14 @@ install:
 
 build_script:
 - set CTEST_OUTPUT_ON_FAILURE=1
+- cd %APPVEYOR_BUILD_FOLDER%
+- '%BASH% -lc "autoreconf -i"'
+
+- set MSYSTEM=MINGW32
+- '%BASH% -l msys2\build.sh buildmingw32'
+
+- set MSYSTEM=UCRT64
+- '%BASH% -l msys2\build.sh builducrt64'
 
 - cd %APPVEYOR_BUILD_FOLDER%\build64
 - cmake -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake -A x64 -DVCPKG_TARGET_TRIPLET=x64-windows-static ..
@@ -43,6 +54,12 @@ after_build:
 - 7z a vdagent-win-x86.zip Release\*
 
 artifacts:
+- path: buildmingw32/spice-vdagent-x86-*.msi
+  name: VdAgentWin-mingw32
+
+- path: builducrt64/spice-vdagent-x64-*.msi
+  name: VdAgentWin-ucrt64
+
 - path: build64/vdagent-win-x64.zip
   name: VdAgentWin-x64
 
diff --git a/msys2/build.sh b/msys2/build.sh
new file mode 100644
index 0000000..04f0ddf
--- /dev/null
+++ b/msys2/build.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+mkdir $1
+cd $1
+../configure
+make -j$(nproc) msi
diff --git a/msys2/install.sh b/msys2/install.sh
new file mode 100644
index 0000000..23dd8c1
--- /dev/null
+++ b/msys2/install.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+a=()
+for e in i686 ucrt-x86_64; do
+    for p in libpng msitools toolchain zlib; do
+        a+=(mingw-w64-$e-$p)
+    done
+done
+
+exec pacman --noconfirm -S autotools ${a[@]}


More information about the Spice-commits mailing list