build: use msys2 packages as source for the Windows CI.

This is a new feature I implemented in the crossroad cross-compilation
tool. Msys2 repository has more packages and they are more up-to-date
compared to Fedora and Suse cross-built packages (the 2 other available
sources for pre-built Windows packages).
This allows to simplify a lot the dependency preparation for the Windows
CI, and speed things up.
This commit is contained in:
Jehan 2020-04-16 15:19:36 +02:00
parent b948ff932d
commit 8398c83c23
2 changed files with 10 additions and 85 deletions

View File

@ -213,7 +213,7 @@ deps-win64:
glib2-devel
#- pip3 install wheel
#- pip3 install crossroad
- git clone git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..
@ -270,7 +270,7 @@ gimp-win64:
- export PATH="`pwd`/.local/bin:$PATH"
- mkdir _build && cd _build
- echo 'crossroad meson ..
-Dwmf=disabled -Dgtk-doc=false
-Dgtk-doc=false
-Dpython=always -Dlua=always
-Djavascript=always && ninja install &&
cp ../build/windows/crossbuild-gitlab-ci/gimp-wrapper.cmd $CROSSROAD_PREFIX/bin/ &&
@ -329,7 +329,7 @@ deps-win32:
glib2-devel
#- pip3 install wheel
#- pip3 install crossroad
- git clone git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- git clone --depth=${GIT_DEPTH} git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
- cd crossroad
- ./setup.py install --prefix=`pwd`/../.local
- cd ..

View File

@ -1,100 +1,25 @@
crossroad source msys2
mkdir _deps && cd _deps
# babl
crossroad install lcms2 && \
git clone --depth 1 https://gitlab.gnome.org/GNOME/babl.git && cd babl && \
crossroad meson _build/ -Denable-gir=false -Dwith-lcms=false && \
crossroad meson _build/ -Denable-gir=false && \
ninja -C _build install || exit 1
cd ..
# GEGL
crossroad install cairo json-glib && \
crossroad install json-glib && \
git clone --depth 1 https://gitlab.gnome.org/GNOME/gegl.git && cd gegl && \
crossroad meson _build/ -Dintrospection=false -Dsdl2=disabled && \
ninja -C _build install || exit 1
cd ..
# gexiv2
crossroad install exiv2 && \
git clone --depth 1 https://gitlab.gnome.org/GNOME/gexiv2.git && cd gexiv2 && \
crossroad meson _build/ -Dintrospection=false -Dvapi=false && \
ninja -C _build install || exit 1
cd ..
# appstream-glib
crossroad install libsoup libarchive gdk-pixbuf && \
git clone --depth 1 https://github.com/hughsie/appstream-glib.git && cd appstream-glib && \
crossroad meson _build/ -Dintrospection=false -Drpm=false -Dbuilder=false \
-Dstemmer=false -Dman=false -Ddep11=false && \
ninja -C _build install || exit 1
cd ..
# json-c
# XXX: warnings promotion to errors disabled because of some
# -Wstrict-prototypes warnings happening on Mingw-w64.
# The DISABLE_WERROR option can be removed once json-c removes this
# warning for Windows: https://github.com/json-c/json-c/pull/581
# Or when patches are published for all Mingw-w64 headers. See ML patch
# and followup emails: https://sourceforge.net/p/mingw-w64/mailman/message/36981783/
git clone --depth 1 https://github.com/json-c/json-c.git && \
mkdir json-c/_build && cd json-c/_build && \
CFLAGS="-Wno-expansion-to-defined" crossroad cmake -DDISABLE_WERROR=ON .. && make install || exit 1
cd ../..
# libmypaint
git clone --depth 1 --branch libmypaint-v1.5.x https://github.com/mypaint/libmypaint.git && \
mkdir libmypaint/_build && cd libmypaint/_build && \
crossroad ../configure --enable-introspection=no && make install || exit 1
cd ../..
# mypaint-brushes
git clone --depth 1 --branch v1.3.x https://github.com/mypaint/mypaint-brushes.git
mkdir mypaint-brushes/_build && cd mypaint-brushes/_build
crossroad ../configure && make install || exit 1
cd ../..
# poppler-data
git clone --depth 1 https://anongit.freedesktop.org/git/poppler/poppler-data.git && \
mkdir poppler-data/_build && cd poppler-data/_build && \
crossroad cmake .. && make install || exit 1
cd ../..
# Glib (available in crossroad but bumped Pango needs higher version)
git clone --depth 1 https://gitlab.gnome.org/GNOME/glib.git && cd glib && \
crossroad meson _build && ninja -C _build install || exit 1
crossroad mask glib
cd ..
# Fix a bug in Mingw-w64 headers when building with strict
# C90-compliance.
# See my commit fb232993 in mingw-w64-mingw-w64 repository.
sed -i 's%^//\(.*\)$%/*\1 */%' $CROSSROAD_PREFIX/include/stdlib.h
# Pango (available in crossroad but too old)
crossroad install harfbuzz && \
git clone --depth 1 https://gitlab.gnome.org/GNOME/pango.git && cd pango && \
crossroad meson _build -Dintrospection=false && \
ninja -C _build install || exit 1
crossroad mask pango
cd ..
# DrMingw
git clone --depth 1 https://github.com/jrfonseca/drmingw.git && \
mkdir drmingw/_build && cd drmingw/_build && \
crossroad cmake .. -DPYTHON_EXECUTABLE=`which python3` && make install || exit 1
cd ../..
# preparing GIMP
crossroad install atk gtk3 libtiff xz-libs librsvg2 poppler-glib dbus-glib
crossroad install gexiv2 appstream-glib json-c \
libmypaint mypaint-brushes \
poppler-data poppler glib2 \
libwmf drmingw