build/windows: Extend unified list to Deps scripts

The list contains, in addition to the GIMP deps, all babl and GEGL deps.
So, let's use it.
Also, nothing new under the sun. We already use a unique list on the
Windows build instruction page (for stable branch) and do the same to
Debian image job.
This commit is contained in:
Bruno Lopes 2024-01-27 13:42:04 -03:00
parent c4f5bae14a
commit 5f164ef913
5 changed files with 91 additions and 83 deletions

View file

@ -1,16 +1,22 @@
if [[ "x$CROSSROAD_PLATFORM" = "xw64" ]]; then
export ARTIFACTS_SUFFIX="-x64"
export ARTIFACTS_SUFFIX="-x64"
else # [[ "x$CROSSROAD_PLATFORM" = "xw32" ]];
export ARTIFACTS_SUFFIX="-x86"
export ARTIFACTS_SUFFIX="-x86"
fi
# Install the required (pre-built) packages for babl and GEGL
# Install the required (pre-built) packages for babl, GEGL and GIMP
crossroad source msys2
crossroad install cairo \
graphviz \
json-glib \
lcms2
export DEPS_PATH="build/windows/gitlab-ci/all-deps-uni.txt"
sed -i "s/DEPS_ARCH_//g" $DEPS_PATH
export GIMP_DEPS=`cat $DEPS_PATH`
crossroad install $GIMP_DEPS
if [ $? -ne 0 ]; then
echo "Installation of pre-built dependencies failed.";
exit 1;
fi
# Clone babl and GEGL (follow master branch)
mkdir _deps && cd _deps
@ -31,39 +37,28 @@ ninja && ninja install
cd ../../
# Install the required (pre-built) packages for GIMP
export DEPS_PATH="../build/windows/gitlab-ci/all-deps-uni.txt"
sed -i "s/DEPS_ARCH_//g" $DEPS_PATH
export GIMP_DEPS=`cat $DEPS_PATH`
crossroad install libmng $GIMP_DEPS
if [ $? -ne 0 ]; then
echo "Installation of pre-built dependencies failed.";
exit 1;
fi
# Build (part of) GIMP
if [ "x$CROSSROAD_PLATFORM" = "xw64" ]; then
## Generator of the gio 'giomodule.cache' to fix error about
## libgiognutls.dll that prevents generating loaders.cache
gio=''
gio+="libgiognomeproxy.dll: gio-proxy-resolver\n"
gio+="libgiognutls.dll: gio-tls-backend\n"
gio+="libgiolibproxy.dll: gio-proxy-resolver\n"
gio+="libgioopenssl.dll: gio-tls-backend\n"
printf "%b" "$gio" > ${CROSSROAD_PREFIX}/lib/gio/modules/giomodule.cache
## Generator of the gio 'giomodule.cache' to fix error about
## libgiognutls.dll that prevents generating loaders.cache
gio=''
gio+="libgiognomeproxy.dll: gio-proxy-resolver\n"
gio+="libgiognutls.dll: gio-tls-backend\n"
gio+="libgiolibproxy.dll: gio-proxy-resolver\n"
gio+="libgioopenssl.dll: gio-tls-backend\n"
printf "%b" "$gio" > ${CROSSROAD_PREFIX}/lib/gio/modules/giomodule.cache
## NOT WORKING: Fallback generator of the pixbuf 'loaders.cache' for GUI image support
export GDK_PATH=`echo ${CROSSROAD_PREFIX}/lib/gdk-pixbuf-*/*/`
GDK_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GDK_PATH)
wine ${CROSSROAD_PREFIX}/bin/gdk-pixbuf-query-loaders.exe ${CROSSROAD_PREFIX}/${GDK_PATH}loaders/*.dll > ${CROSSROAD_PREFIX}/${GDK_PATH}loaders.cache
sed -i "s&$CROSSROAD_PREFIX/&&" ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
sed -i '/.dll\"/s*/*\\\\*g' ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
## NOT WORKING: Fallback generator of the pixbuf 'loaders.cache' for GUI image support
export GDK_PATH=`echo ${CROSSROAD_PREFIX}/lib/gdk-pixbuf-*/*/`
GDK_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GDK_PATH)
wine ${CROSSROAD_PREFIX}/bin/gdk-pixbuf-query-loaders.exe ${CROSSROAD_PREFIX}/${GDK_PATH}loaders/*.dll > ${CROSSROAD_PREFIX}/${GDK_PATH}loaders.cache
sed -i "s&$CROSSROAD_PREFIX/&&" ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
sed -i '/.dll\"/s*/*\\\\*g' ${CROSSROAD_PREFIX}/${GDK_PATH}/loaders.cache
## Generator of the glib 'gschemas.compiled'
export GLIB_PATH=`echo ${CROSSROAD_PREFIX}/share/glib-*/schemas/`
GLIB_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GLIB_PATH)
wine glib-compile-schemas --targetdir=${CROSSROAD_PREFIX}/${GLIB_PATH} ${CROSSROAD_PREFIX}/${GLIB_PATH}
## Generator of the glib 'gschemas.compiled'
export GLIB_PATH=`echo ${CROSSROAD_PREFIX}/share/glib-*/schemas/`
GLIB_PATH=$(sed "s|${CROSSROAD_PREFIX}/||g" <<< $GLIB_PATH)
wine glib-compile-schemas --targetdir=${CROSSROAD_PREFIX}/${GLIB_PATH} ${CROSSROAD_PREFIX}/${GLIB_PATH}
fi
## XXX Functional fix to the problem of non-configured interpreters

View file

@ -5,40 +5,40 @@
set -e
if [[ "$MSYSTEM_CARCH" == "aarch64" ]]; then
export ARTIFACTS_SUFFIX="-a64"
export ARTIFACTS_SUFFIX="-a64"
elif [[ "$MSYSTEM_CARCH" == "x86_64" ]]; then
export ARTIFACTS_SUFFIX="-x64"
export ARTIFACTS_SUFFIX="-x64"
else # [[ "$MSYSTEM_CARCH" == "i686" ]];
export ARTIFACTS_SUFFIX="-x86"
export ARTIFACTS_SUFFIX="-x86"
fi
if [[ "$BUILD_TYPE" != "CI_NATIVE" ]]; then
# Make the script callable from every directory
cd ~
# Make the script callable from every directory
if [[ "$0" != "build/windows/gitlab-ci/1_build-deps-msys2.sh" ]]; then
GIMP_EXTDIR="$0"
GIMP_EXTDIR=$(sed 's|build/windows/gitlab-ci/1_build-deps-msys2.sh||g' <<< $GIMP_EXTDIR)
GIMP_DIR="$GIMP_EXTDIR"
else
GIMP_GITDIR="$(pwd)"
GIMP_GITDIR=$(sed 's|build/windows/gitlab-ci||g' <<< $GIMP_GITDIR)
GIMP_GITDIR=$(sed 's|build/windows||g' <<< $GIMP_GITDIR)
GIMP_GITDIR=$(sed 's|build||g' <<< $GIMP_GITDIR)
GIMP_DIR="$GIMP_GITDIR"
fi
cd $GIMP_DIR
pacman --noconfirm -Suy
pacman --noconfirm -Suy
fi
# Install the required (pre-built) packages for babl and GEGL
pacman --noconfirm -S --needed \
base-devel \
${MINGW_PACKAGE_PREFIX}-toolchain \
${MINGW_PACKAGE_PREFIX}-meson \
\
${MINGW_PACKAGE_PREFIX}-cairo \
${MINGW_PACKAGE_PREFIX}-crt-git \
${MINGW_PACKAGE_PREFIX}-glib-networking \
${MINGW_PACKAGE_PREFIX}-gobject-introspection \
${MINGW_PACKAGE_PREFIX}-json-glib \
${MINGW_PACKAGE_PREFIX}-lcms2 \
${MINGW_PACKAGE_PREFIX}-lensfun \
${MINGW_PACKAGE_PREFIX}-libspiro \
${MINGW_PACKAGE_PREFIX}-maxflow \
${MINGW_PACKAGE_PREFIX}-openexr \
${MINGW_PACKAGE_PREFIX}-pango \
${MINGW_PACKAGE_PREFIX}-suitesparse \
${MINGW_PACKAGE_PREFIX}-vala
export DEPS_PATH="build/windows/gitlab-ci/all-deps-uni.txt"
sed -i "s/DEPS_ARCH_/${MINGW_PACKAGE_PREFIX}-/g" $DEPS_PATH
export GIMP_DEPS=`cat $DEPS_PATH`
pacman --noconfirm -S --needed git \
base-devel \
${MINGW_PACKAGE_PREFIX}-toolchain \
$GIMP_DEPS
# Clone babl and GEGL (follow master branch)
@ -51,11 +51,11 @@ export LD_LIBRARY_PATH="${GIMP_PREFIX}/lib:${LD_LIBRARY_PATH}"
export XDG_DATA_DIRS="${GIMP_PREFIX}/share:${MSYSTEM_PREFIX}/share/"
clone_or_pull() {
if [ ! -d "_${1}" ]; then
git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/${1}.git _${1}
else
cd _${1} && git pull && cd ..
fi
if [ ! -d "_${1}" ]; then
git clone --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/${1}.git _${1}
else
cd _${1} && git pull && cd ..
fi
}
clone_or_pull babl
@ -63,22 +63,30 @@ clone_or_pull gegl
# Build babl and GEGL
configure_or_build() {
configure_or_build()
{
if [ ! -f "_${1}/_build/build.ninja" ]; then
mkdir -p _${1}/_build${ARTIFACTS_SUFFIX} && cd _${1}/_build${ARTIFACTS_SUFFIX}
meson setup .. -Dprefix="${GIMP_PREFIX}" \
$2
ninja && ninja install
cd ../..
mkdir -p _${1}/_build${ARTIFACTS_SUFFIX} && cd _${1}/_build${ARTIFACTS_SUFFIX}
meson setup .. -Dprefix="${GIMP_PREFIX}" \
$2
ninja && ninja install
cd ../..
else
cd _${1}/_build${ARTIFACTS_SUFFIX}
ninja && ninja install
cd ../..
cd _${1}/_build${ARTIFACTS_SUFFIX}
ninja && ninja install
cd ../..
fi
}
}
configure_or_build babl "-Dwith-docs=false"
configure_or_build gegl "-Ddocs=false \
-Dcairo=enabled -Dumfpack=enabled \
-Dopenexr=enabled -Dworkshop=true"
if [[ "$BUILD_TYPE" != "CI_NATIVE" ]]; then
mv _babl ~
mv _gegl ~
mv "${GIMP_PREFIX}" ~
fi

View file

@ -43,7 +43,9 @@ fi
export DEPS_PATH="build/windows/gitlab-ci/all-deps-uni.txt"
sed -i "s/DEPS_ARCH_/${MINGW_PACKAGE_PREFIX}-/g" $DEPS_PATH
export GIMP_DEPS=`cat $DEPS_PATH`
pacman --noconfirm -S --needed base-devel $GIMP_DEPS
pacman --noconfirm -S --needed base-devel \
${MINGW_PACKAGE_PREFIX}-toolchain \
$GIMP_DEPS
# Install QOI header manually
# mingw32 package of qoi was removed from MSYS2, we have download it by ourselves

View file

@ -28,7 +28,9 @@ if [[ "$BUILD_TYPE" != "CI_CROSS" ]]; then
export DEPS_PATH="build/windows/gitlab-ci/all-deps-uni.txt"
sed -i "s/DEPS_ARCH_/${MINGW_PACKAGE_PREFIX}-/g" $DEPS_PATH
export GIMP_DEPS=`cat $DEPS_PATH`
pacman --noconfirm -S --needed base-devel $GIMP_DEPS
pacman --noconfirm -S --needed base-devel \
${MINGW_PACKAGE_PREFIX}-toolchain \
$GIMP_DEPS
fi

View file

@ -28,6 +28,7 @@ DEPS_ARCH_libheif
DEPS_ARCH_libiff
DEPS_ARCH_libilbm
DEPS_ARCH_libjxl
DEPS_ARCH_libmng
DEPS_ARCH_libmypaint
DEPS_ARCH_libspiro
DEPS_ARCH_libwebp