[gimp/wip/Jehan/gitlab-ci-win-32-bit: 2/4] gitlab-ci: add native Windows 32-bit build with MSYS2.




commit baa997a7094533b32ef3139ada084cc57e160a14
Author: Jehan <jehan girinstud io>
Date:   Sat May 8 15:05:35 2021 +0200

    gitlab-ci: add native Windows 32-bit build with MSYS2.
    
    Note: vala is disabled on the 32-bit build. Not sure why (because the
    meson logs for GObject Introspection build logs are just as empty as
    ever), but it won't generate the VAPI.

 .gitlab-ci.yml                              | 50 +++++++++++++++++++++++++++++
 build/windows/gitlab-ci/build-deps-msys2.sh | 12 +++++--
 build/windows/gitlab-ci/build-gimp-msys2.sh | 13 ++++++--
 3 files changed, 71 insertions(+), 4 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c087d4719a..dde74f710d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -237,11 +237,61 @@ gimp-win64-native:
     expire_in: 1 day
     paths:
     - _install
+    - _build
   cache:
     paths:
     - _ccache/
   needs: ["deps-win64-native"]
 
+## WINDOWS 32-bit CI (native MSYS2) ##
+
+deps-win32-native:
+  rules:
+    - if: '$CI_COMMIT_TAG == null && $CI_PIPELINE_SOURCE != "schedule"'
+  stage: dependencies
+  variables:
+    MSYSTEM: "MINGW32"
+    CHERE_INVOKING: "yes"
+  tags:
+    - win32-ps
+  cache:
+    paths:
+    - _install/
+  script:
+    - C:\msys64\usr\bin\pacman --noconfirm -Syyuu
+    - C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/build-deps-msys2.sh"
+  artifacts:
+    name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
+    when: always
+    expire_in: 2 hours
+    paths:
+      - _install
+  needs: []
+
+gimp-win32-native:
+  rules:
+    - if: '$CI_COMMIT_TAG == null && $CI_PIPELINE_SOURCE != "schedule"'
+  stage: gimp
+  variables:
+    MSYSTEM: "MINGW32"
+    CHERE_INVOKING: "yes"
+  tags:
+    - win32-ps
+  script:
+    - C:\msys64\usr\bin\pacman --noconfirm -Syyuu
+    - C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/build-gimp-msys2.sh"
+  artifacts:
+    name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}"
+    when: always
+    expire_in: 1 day
+    paths:
+    - _install
+    - _build
+  cache:
+    paths:
+    - _ccache/
+  needs: ["deps-win32-native"]
+
 ## WINDOWS 64-bit CI (cross-build crossroad) ##
 
 deps-win64:
diff --git a/build/windows/gitlab-ci/build-deps-msys2.sh b/build/windows/gitlab-ci/build-deps-msys2.sh
index 31d400a956..a7f667ae3b 100644
--- a/build/windows/gitlab-ci/build-deps-msys2.sh
+++ b/build/windows/gitlab-ci/build-deps-msys2.sh
@@ -4,8 +4,14 @@ set -e
 
 if [[ "$MSYSTEM" == "MINGW32" ]]; then
     export MSYS2_ARCH="i686"
+    # vapi build fails on 32-bit, with no error output. Let's just drop
+    # it for this architecture.
+    export BABL_OPTIONS="-Denable-vapi=false"
+    export GEGL_OPTIONS="-Dvapigen=disabled"
 else
     export MSYS2_ARCH="x86_64"
+    export BABL_OPTIONS=""
+    export GEGL_OPTIONS=""
 fi
 
 # Why do we even have to remove these manually? The whole thing is
@@ -59,7 +65,8 @@ git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
 
 mkdir _babl/_build
 cd _babl/_build
-meson -Dprefix="${GIMP_PREFIX}" -Dwith-docs=false ..
+meson -Dprefix="${GIMP_PREFIX}" -Dwith-docs=false \
+      ${BABL_OPTIONS} ..
 ninja
 ninja install
 
@@ -67,6 +74,7 @@ mkdir ../../_gegl/_build
 cd ../../_gegl/_build
 meson -Dprefix="${GIMP_PREFIX}" -Ddocs=false \
       -Dcairo=enabled -Dumfpack=enabled \
-      -Dopenexr=enabled -Dworkshop=true ..
+      -Dopenexr=enabled -Dworkshop=true \
+      ${GEGL_OPTIONS} ..
 ninja
 ninja install
diff --git a/build/windows/gitlab-ci/build-gimp-msys2.sh b/build/windows/gitlab-ci/build-gimp-msys2.sh
index 0ffb8a837c..050e046158 100644
--- a/build/windows/gitlab-ci/build-gimp-msys2.sh
+++ b/build/windows/gitlab-ci/build-gimp-msys2.sh
@@ -4,8 +4,14 @@ set -e
 
 if [[ "$MSYSTEM" == "MINGW32" ]]; then
     export MSYS2_ARCH="i686"
+    export ACLOCAL_FLAGS="-I/c/msys64/mingw32/share/aclocal"
+    export PATH="/c/msys64/mingw32/bin:$PATH"
+    export GIMP_OPTIONS="--with-vala=no --enable-vala=no"
 else
     export MSYS2_ARCH="x86_64"
+    export ACLOCAL_FLAGS="-I/c/msys64/mingw64/share/aclocal"
+    export PATH="/c/msys64/mingw64/bin:$PATH"
+    export GIMP_OPTIONS=""
 fi
 
 # Why do we even have to remove these manually? The whole thing is
@@ -79,7 +85,7 @@ export PATH="$GIMP_PREFIX/bin:$PATH"
 export PKG_CONFIG_PATH="${GIMP_PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH"
 export PKG_CONFIG_PATH="${GIMP_PREFIX}/share/pkgconfig:$PKG_CONFIG_PATH"
 export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib:${LD_LIBRARY_PATH}"
-export ACLOCAL_FLAGS="-I/c/msys64/mingw64/share/aclocal"
+export ACLOCAL_FLAGS="-I/c/msys64/mingw32/share/aclocal"
 export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/mingw64/share/"
 
 mkdir -p _ccache
@@ -90,9 +96,12 @@ export CC="ccache gcc"
 ccache --zero-stats
 ccache --show-stats
 
-./autogen.sh --prefix="${GIMP_PREFIX}"
+mkdir _build
+cd _build
+../autogen.sh --prefix="${GIMP_PREFIX}" ${GIMP_OPTIONS}
 make -j4
 make install
+cd ..
 
 ccache --show-stats
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]