mirror of https://github.com/GNOME/gimp.git
build, gitlab-ci: add a script to cross-build GIMP with Gitlab CI.
It looks like Arch does not have mingw64 cross-compilers in core package repository. It does have some package in the user repository (AUR), but I assume that such a repository cannot be deemed as safe. Anyway I still tried, but apparently these AUR packages have to be built and when I tried, I got this error: > ERROR: Running makepkg as root is not allowed as it can cause > permanent, catastrophic damage to your system. Anyway it's all a big mess. Then I tried to move the cross-CI to Debian testing, which is anyway our base compatibility system. Unfortunately I encountered like what looked like some glibc++ macro problem on some packages (most likely because the pre-built packages I use are Fedora ones which likely uses a cross-compiler differently built from the Debian one). So in the end, for simplicity, I use a Fedora image, then I am sure to get a good match between the system cross-compiler and the pre-built dependencies.
This commit is contained in:
parent
d3cfae2795
commit
e17efb7a07
|
@ -13,6 +13,8 @@ variables:
|
|||
cache:
|
||||
paths:
|
||||
- _pacman_cache
|
||||
- dnf_cache
|
||||
- .cache/crossroad/
|
||||
|
||||
.babl-base:
|
||||
stage: babl
|
||||
|
@ -217,3 +219,58 @@ build-git-meson:
|
|||
# dependencies:
|
||||
# - babl-min
|
||||
# - gegl-min
|
||||
|
||||
.gimp-x86_64-w64-mingw32-base:
|
||||
image: fedora:30
|
||||
stage: gimp
|
||||
artifacts:
|
||||
paths:
|
||||
- "${INSTALL_DIR}"
|
||||
before_script:
|
||||
- dnf install --assumeyes --setopt=cachedir=`pwd`/dnf_cache --verbose
|
||||
automake
|
||||
autoconf
|
||||
meson
|
||||
cmake
|
||||
gettext
|
||||
git
|
||||
gcc
|
||||
gcc-c++
|
||||
gperf
|
||||
intltool
|
||||
libtool
|
||||
libxslt
|
||||
make
|
||||
python2
|
||||
mingw64-gcc
|
||||
mingw64-gcc-c++
|
||||
mingw64-binutils
|
||||
cpio rpm
|
||||
python3-docutils
|
||||
python3-pip
|
||||
python3-setuptools
|
||||
shared-mime-info
|
||||
which
|
||||
libmount-devel
|
||||
gdk-pixbuf2
|
||||
gdk-pixbuf2-devel
|
||||
glib2-devel
|
||||
#- pip3 install wheel
|
||||
#- pip3 install crossroad
|
||||
- git clone git://git.tuxfamily.org/gitroot/crossroad/crossroad.git
|
||||
- cd crossroad
|
||||
- ./setup.py install
|
||||
- cd ..
|
||||
|
||||
build-git-x86_64-w64-mingw32-meson:
|
||||
extends: .gimp-x86_64-w64-mingw32-base
|
||||
script:
|
||||
- export SHELL
|
||||
- crossroad w64 gimp --run="build/windows/crossbuild-gitlab-ci.sh"
|
||||
artifacts:
|
||||
name: "app-tests-logs-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||
when: on_failure
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- _deps/
|
||||
- _build/
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
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 && \
|
||||
ninja -C _build install || exit 1
|
||||
cd ..
|
||||
|
||||
# GEGL
|
||||
|
||||
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
|
||||
|
||||
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 ../configure && make install || exit 1
|
||||
cd ../..
|
||||
|
||||
# libmypaint
|
||||
|
||||
git clone --depth 1 --branch libmypaint-v1 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
|
||||
which glib-compile-resources
|
||||
rm -fr $CROSSROAD_PREFIX/bin/glib-compile-resources*
|
||||
cd ..
|
||||
|
||||
# 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
|
||||
cd ..
|
||||
|
||||
# GIMP
|
||||
|
||||
crossroad install atk gtk3 libtiff xz-libs librsvg2 poppler-glib dbus-glib && \
|
||||
cd .. && mkdir _build && cd _build && \
|
||||
crossroad meson .. -Dwmf=disabled -Dgtk-doc=false -Dpython=always -Dlua=always -Djavascript=always && ninja install
|
Loading…
Reference in New Issue