build: Simplify all the arch stuff

The ARTIFACTS_SUFFIX is being dropped on building scripts because:

1) This will make possible to further simplify Installer scripts in other commit

2) There is no script that uses multi-arch _build/_install at same time on CI
   However, there are two use cases: to build Debian and flatpak; and, on Win,
   to build on CLANGARM64 and CLANG64 (?). But probably they are pretty niche.
   I suppose that people who build on Debian (or other dev-oriented distro)
   willn't want to mantain deps in two sys prefixes (pkg and GNOME runtime)
   + two gimp prefixes (out of sandbox and sandbox) due to huge storage use.
   Why someone would want to build with emulation on Win ARM64 I don't know.
   Anyway, people that know how to do this stuff probably can change the .sh.

3) When building locally, the contributor doesn't need to know the arch at all.
   Indeed, without this suffix, the scripts are inline with gimp-web-devel and
   prevent some first-sight confusion when reading them that I've seen on IRC.

4) These arch suffixes can be understood as '_install-*' being distributable
   which is not true. So, without this suffix we could make more clear
   what is a package (when GitLab fix the glob bug in 'expose_as' someday).

---

Despite .gitlab-ci.yml not being a script, it needed to be touched too
because cross scripts depends on Debian jobs due to gimp-data MR.
This commit is contained in:
Bruno 2024-07-19 19:54:58 -03:00
parent 25734cb579
commit e01973b911
11 changed files with 105 additions and 141 deletions

View file

@ -100,8 +100,7 @@ variables:
GIT_DEPTH: "1"
GIT_SUBMODULE_STRATEGY: recursive
# CI-wide Debian variables
ARTIFACTS_SUFFIX: "-x64"
GIMP_PREFIX: "${CI_PROJECT_DIR}/_install${ARTIFACTS_SUFFIX}"
GIMP_PREFIX: "${CI_PROJECT_DIR}/_install"
# Enable colorful output when supported (e.g. ninja, cppcheck)
CLICOLOR_FORCE: "1"
@ -261,21 +260,21 @@ deps-debian-x64:
- git clone $babl_branch --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/babl.git _babl
- git clone $gegl_branch --depth=${GIT_DEPTH} https://gitlab.gnome.org/GNOME/gegl.git _gegl
# Build babl and GEGL
- mkdir _babl/_build${ARTIFACTS_SUFFIX} && cd _babl/_build${ARTIFACTS_SUFFIX}
- mkdir _babl/_build && cd _babl/_build
- meson setup .. -Dprefix="${GIMP_PREFIX}"
- ninja
- ninja install
- ccache --show-stats
- mkdir ../../_gegl/_build${ARTIFACTS_SUFFIX} && cd ../../_gegl/_build${ARTIFACTS_SUFFIX}
- mkdir ../../_gegl/_build && cd ../../_gegl/_build
- meson setup .. -Dprefix="${GIMP_PREFIX}"
- ninja
- ninja install
- ccache --show-stats
artifacts:
paths:
- _install${ARTIFACTS_SUFFIX}/
- _babl/_build${ARTIFACTS_SUFFIX}/meson-logs/meson-log.txt
- _gegl/_build${ARTIFACTS_SUFFIX}/meson-logs/meson-log.txt
- _install/
- _babl/_build/meson-logs/meson-log.txt
- _gegl/_build/meson-logs/meson-log.txt
expire_in: 2 hours
gimp-debian-x64:
@ -287,7 +286,7 @@ gimp-debian-x64:
image: $CI_REGISTRY_IMAGE:build-debian-latest
script:
# Check building
- mkdir -p _build${ARTIFACTS_SUFFIX} && cd _build${ARTIFACTS_SUFFIX}
- mkdir -p _build && cd _build
- meson setup .. -Dprefix="${GIMP_PREFIX}"
-Dgi-docgen=enabled
-Dg-ir-doc=true
@ -312,8 +311,8 @@ gimp-debian-x64:
- cd gimp-data
- git apply -v ../build/linux/appimage/patches/0001-images-logo-Use-reverse-DNS-naming.patch
- cd ..
- meson configure _build${ARTIFACTS_SUFFIX} -Drelocatable-bundle=yes -Dvector-icons=true
- cd _build${ARTIFACTS_SUFFIX}
- meson configure _build -Drelocatable-bundle=yes -Dvector-icons=true
- cd _build
- ninja
- ninja install
- ccache --show-stats
@ -323,13 +322,13 @@ gimp-debian-x64:
expose_as: 'Linux appimage'
paths:
- build/linux/appimage/_Output/
- _install${ARTIFACTS_SUFFIX}/
- _build${ARTIFACTS_SUFFIX}/meson-logs/meson-log.txt
- _build${ARTIFACTS_SUFFIX}/meson-dist/
- _build${ARTIFACTS_SUFFIX}/config.h
- _build${ARTIFACTS_SUFFIX}/devel-docs/
- _install/
- _build/meson-logs/meson-log.txt
- _build/meson-dist/
- _build/config.h
- _build/devel-docs/
reports:
junit: "_build${ARTIFACTS_SUFFIX}/meson-logs/testlog.junit.xml"
junit: "_build/meson-logs/testlog.junit.xml"
expire_in: 2 days
.flatpak-x64:
@ -418,8 +417,8 @@ deps-win-x64-cross:
artifacts:
paths:
- .local/
- _babl/_build-x64-cross/meson-logs/meson-log.txt
- _gegl/_build-x64-cross/meson-logs/meson-log.txt
- _babl/_build-cross/meson-logs/meson-log.txt
- _gegl/_build-cross/meson-logs/meson-log.txt
expire_in: 2 hours
gimp-win-x64-cross:
@ -436,7 +435,7 @@ gimp-win-x64-cross:
expose_as: 'Windows zip'
paths:
- gimp-x64/
- _build-x64-cross/meson-logs/meson-log.txt
- _build-cross/meson-logs/meson-log.txt
- done-dll.list
expire_in: 2 days
@ -485,9 +484,9 @@ deps-win-a64:
- C:\msys64\usr\bin\bash -lc "bash build/windows/1_build-deps-msys2.sh"
artifacts:
paths:
- _install-a64/
- _babl/_build-a64/meson-logs/meson-log.txt
- _gegl/_build-a64/meson-logs/meson-log.txt
- _install/
- _babl/_build/meson-logs/meson-log.txt
- _gegl/_build/meson-logs/meson-log.txt
expire_in: 2 hours
gimp-win-a64:
@ -502,12 +501,12 @@ gimp-win-a64:
artifacts:
paths:
- gimp-a64/
- _build-a64/meson-logs/meson-log.txt
- _build/meson-logs/meson-log.txt
- done-dll.list
# Needed by dist-installer-weekly and dist-store-weekly
- _build-a64/config.h
- _build-a64/build/windows/installer/
- _build-a64/build/windows/store/
- _build/config.h
- _build/build/windows/installer/
- _build/build/windows/store/
expire_in: 2 days
## WINDOWS x86_64 CI (native MSYS2) ##
@ -535,7 +534,7 @@ deps-win-x64:
- C:\msys64\usr\bin\bash -lc "bash build/windows/1_build-deps-msys2.sh"
artifacts:
paths:
- _install-x64/
- _install/
expire_in: 2 hours
gimp-win-x64:
@ -579,7 +578,7 @@ deps-win-x86:
- C:\msys64\usr\bin\bash -lc "bash build/windows/1_build-deps-msys2.sh"
artifacts:
paths:
- _install-x86/
- _install/
expire_in: 2 hours
gimp-win-x86:
@ -621,8 +620,8 @@ file-plug-in-tests:
paths:
- _data
script:
- API_VER=$(grep GIMP_PKGCONFIG_VERSION _build${ARTIFACTS_SUFFIX}/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
- APP_VER=$(grep GIMP_APP_VERSION _build${ARTIFACTS_SUFFIX}/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
- API_VER=$(grep GIMP_PKGCONFIG_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
- APP_VER=$(grep GIMP_APP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
- pkg-config --variable=gimplibdir gimp-${API_VER} 2>/dev/null | grep . && PLUG_IN_DIR=$(echo $(pkg-config --variable=gimplibdir gimp-${API_VER})'/plug-ins/')
- export PYTHONPATH="${PLUG_IN_DIR}test-file-plug-ins"
- export GIMP_TESTS_CONFIG_FILE="${PLUG_IN_DIR}test-file-plug-ins/tests/batch-config.ini"
@ -675,7 +674,7 @@ cppcheck:
- apt-get update
- apt-get install -y cppcheck
- cppcheck -q -j8 --enable=all --force --output-file=cppcheck.xml --xml --xml-version=2
-i _build${ARTIFACTS_SUFFIX} -i _build-x64-cross -i _babl -i _gegl -i _install${ARTIFACTS_SUFFIX} -i .local -i .cache -i _ccache -i gimp-x64 .
-i _build -i _build-cross -i _babl -i _gegl -i _install -i .local -i .cache -i _ccache -i gimp-x64 .
- mkdir report
- cppcheck-htmlreport --source-dir=. --title=gimp --file=cppcheck.xml --report-dir=report
artifacts:
@ -696,7 +695,7 @@ sources-debian:
stage: distribution
cache: []
script:
- mv _build${ARTIFACTS_SUFFIX}/meson-dist/gimp-*.tar.xz .
- mv _build/meson-dist/gimp-*.tar.xz .
- FILENAME=`ls gimp-*.tar.xz` &&
sha256sum gimp-*.tar.xz > ${FILENAME}.SHA256SUMS &&
sha512sum gimp-*.tar.xz > ${FILENAME}.SHA512SUMS
@ -719,36 +718,36 @@ dev-docs:
script:
- apt-get update
- apt-get install -y xz-utils
- BABL_VER=$(grep BABL_VERSION _babl/_build${ARTIFACTS_SUFFIX}/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
BABL_API_VER=$(grep BABL_API_VERSION _babl/_build${ARTIFACTS_SUFFIX}/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
DIR_NAME=babl-api-docs-$BABL_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/babl-$BABL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
- BABL_VER=$(grep BABL_VERSION _babl/_build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
BABL_API_VER=$(grep BABL_API_VERSION _babl/_build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
DIR_NAME=babl-api-docs-$BABL_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/babl-$BABL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
- GEGL_MAJ_VER=$(grep GEGL_MAJOR_VERSION _gegl/_build${ARTIFACTS_SUFFIX}/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIN_VER=$(grep GEGL_MINOR_VERSION _gegl/_build${ARTIFACTS_SUFFIX}/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIC_VER=$(grep GEGL_MICRO_VERSION _gegl/_build${ARTIFACTS_SUFFIX}/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER.$GEGL_MIC_VER" &&
GEGL_API_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER" &&
DIR_NAME=gegl-api-docs-$GEGL_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/gegl-$GEGL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
- GEGL_MAJ_VER=$(grep GEGL_MAJOR_VERSION _gegl/_build/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIN_VER=$(grep GEGL_MINOR_VERSION _gegl/_build/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_MIC_VER=$(grep GEGL_MICRO_VERSION _gegl/_build/config.h |head -1 |sed 's/^[^0-9]*\([0-9]*\).*$/\1/') &&
GEGL_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER.$GEGL_MIC_VER" &&
GEGL_API_VER="$GEGL_MAJ_VER.$GEGL_MIN_VER" &&
DIR_NAME=gegl-api-docs-$GEGL_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/gegl-$GEGL_API_VER" $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
- GIMP_VER=$(grep GIMP_VERSION _build${ARTIFACTS_SUFFIX}/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
APP_VER=$(echo $GIMP_VER | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/') &&
DIR_NAME=gimp-api-docs-$GIMP_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/gimp-$APP_VER" $DIR_NAME/reference &&
mv _build${ARTIFACTS_SUFFIX}/devel-docs/g-ir-docs $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
- GIMP_VER=$(grep GIMP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') &&
APP_VER=$(echo $GIMP_VER | sed 's/\([0-9]\+\.[0-9]\+\)\..*/\1/') &&
DIR_NAME=gimp-api-docs-$GIMP_VER &&
mkdir $DIR_NAME &&
mv "${GIMP_PREFIX}/share/doc/gimp-$APP_VER" $DIR_NAME/reference &&
mv _build/devel-docs/g-ir-docs $DIR_NAME/ &&
TAR_NAME="$DIR_NAME.tar.xz" &&
tar --dereference -cJf ${TAR_NAME} $DIR_NAME &&
sha256sum $TAR_NAME > ${TAR_NAME}.SHA256SUMS &&
sha512sum $TAR_NAME > ${TAR_NAME}.SHA512SUMS
artifacts:
paths:

View file

@ -9,24 +9,15 @@ set -e
# AGNOSTIC VARIABLES (only touch them to make even more portable, without casuistry)
## This script is arch-agnostic. The packager can specify it when calling the script
if [ -z "$1" ]; then
export ARCH=$(uname -m)
else
export ARCH=$1
fi
INSTALL_ARTIF=$(echo _install*)
BUILD_ARTIF=$(echo _build*)
## This script is "filesystem-agnostic". The packager can quickly choose either
## putting everything in /usr or in AppDir(root) just specifying the 2nd parameter.
GIMP_DISTRIB="$CI_PROJECT_DIR/build/linux/appimage/AppDir"
if [ "$GITLAB_CI" ] || [ -z "$GIMP_PREFIX" ]; then
GIMP_PREFIX="$GIMP_DISTRIB/usr"
fi
if [ -z "$2" ] || [ "$2" = "usr" ]; then
if [ -z "$1" ] || [ "$1" = "usr" ]; then
OPT_PREFIX="${GIMP_PREFIX}"
elif [ "$2" = "AppDir" ]; then
elif [ "$1" = "AppDir" ]; then
OPT_PREFIX="${GIMP_DISTRIB}"
fi
@ -114,7 +105,7 @@ conf_app GTK_PATH "/usr" "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0"
conf_app GTK_IM_MODULE_FILE "/usr" "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/*.*.*"
## Core features
cp -r $INSTALL_ARTIF/* $OPT_PREFIX
cp -r _install/* $OPT_PREFIX
conf_app BABL_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}babl-*"
conf_app GEGL_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}gegl-*"
conf_app GIMP3_SYSCONFDIR "$OPT_PREFIX" "etc/gimp/*"
@ -182,7 +173,7 @@ elif [ "$2" = "AppDir" ]; then
sed -i "s|OPT_PREFIX_WILD||g" $GIMP_DISTRIB/AppRun
fi
GIMP_APP_VERSION=$(grep GIMP_APP_VERSION $BUILD_ARTIF/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
GIMP_APP_VERSION=$(grep GIMP_APP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
sed -i "s|GIMP_APP_VERSION|${GIMP_APP_VERSION}|" $GIMP_DISTRIB/AppRun
@ -203,7 +194,7 @@ fi
# MAKE APPIMAGE
"./$legacy_appimagetool" --appimage-extract-and-run $GIMP_DISTRIB # -u "zsync|https://download.gimp.org/gimp/v${GIMP_APP_VERSION}/GIMP-latest-${ARCH}.AppImage.zsync"
"./$legacy_appimagetool" --appimage-extract-and-run $GIMP_DISTRIB # -u "zsync|https://download.gimp.org/gimp/v${GIMP_APP_VERSION}/GIMP-latest-$(uname -m).AppImage.zsync"
mkdir build/linux/appimage/_Output
GIMP_VERSION=$(grep GIMP_VERSION $BUILD_ARTIF/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
mv GNU*.AppImage build/linux/appimage/_Output/GIMP-${GIMP_VERSION}-${ARCH}.AppImage
GIMP_VERSION=$(grep GIMP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
mv GNU*.AppImage build/linux/appimage/_Output/GIMP-${GIMP_VERSION}-$(uname -m).AppImage

View file

@ -1,14 +1,10 @@
#!/bin/sh
# Flatpak design mandates to build natively
ARCH=$(uname -m)
# Install part of the deps
if [ -z "$GITLAB_CI" ]; then
flatpak update -y
flatpak remote-add --if-not-exists --user --from gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install --user gnome-nightly org.gnome.Platform/$ARCH/master org.gnome.Sdk/$ARCH/master -y
flatpak install --user gnome-nightly org.gnome.Platform/$(uname -m)/master org.gnome.Sdk/$(uname -m)/master -y
fi
flatpak remote-add --if-not-exists --user --from flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.freedesktop.Sdk.Extension.llvm18 -y
@ -22,7 +18,7 @@ if [ -z "$GITLAB_CI" ] && [ "$1" != '--ci' ]; then
exit 1
fi
if [ -z "$GIMP_PREFIX" ]; then
export GIMP_PREFIX="$PWD/../_install-$ARCH"
export GIMP_PREFIX="$PWD/../_install"
fi
if [ ! -d "$GIMP_PREFIX" ]; then
mkdir -p "$GIMP_PREFIX"
@ -33,7 +29,7 @@ if [ -z "$GITLAB_CI" ] && [ "$1" != '--ci' ]; then
elif [ "$GITLAB_CI" ] || [ "$1" = '--ci' ]; then
export GIMP_PREFIX="$PWD/_install-$ARCH"
export GIMP_PREFIX="$PWD/_install"
# (The deps building is too long and no complete output would be collected,
# even from GitLab runner messages. So, let's silent and save logs as a file.)

View file

@ -1,9 +1,5 @@
#!/bin/sh
# Flatpak design mandates to build natively
ARCH=$(uname -m)
if [ -z "$GITLAB_CI" ] && [ "$1" != '--ci' ]; then
# Make the script work locally
if [ "$0" != 'build/linux/flatpak/2_build-gimp-flatpak.sh' ]; then
@ -12,25 +8,25 @@ if [ -z "$GITLAB_CI" ] && [ "$1" != '--ci' ]; then
fi
git submodule update --init
if [ -z "$GIMP_PREFIX" ]; then
export GIMP_PREFIX="$PWD/../_install-$ARCH"
export GIMP_PREFIX="$PWD/../_install"
fi
# Build GIMP only
if [ ! -f "_build-$ARCH/build.ninja" ]; then
mkdir -p _build-$ARCH && cd _build-$ARCH
if [ ! -f "_build/build.ninja" ]; then
mkdir -p _build && cd _build
flatpak-builder --run --ccache "$GIMP_PREFIX" ../build/linux/flatpak/org.gimp.GIMP-nightly.json meson setup .. -Dprefix=/app/ -Dlibdir=/app/lib/
if [ ! -f '.gitignore' ]; then
echo '*' > .gitignore
fi
else
cd _build-$ARCH
cd _build
fi
flatpak-builder --run --ccache "$GIMP_PREFIX" ../build/linux/flatpak/org.gimp.GIMP-nightly.json ninja
flatpak-builder --run "$GIMP_PREFIX" ../build/linux/flatpak/org.gimp.GIMP-nightly.json ninja install
elif [ "$GITLAB_CI" ] || [ "$1" = '--ci' ]; then
export GIMP_PREFIX="$PWD/_install-$ARCH"
export GIMP_PREFIX="$PWD/_install"
if [ "$1" != '--ci' ]; then
# Extract deps from previous job

View file

@ -55,7 +55,7 @@ export PATH="$PWD/.local/bin:$PATH"
export XDG_DATA_HOME="$PWD/.local/share"
crossroad w64 gimp --run="${GIMP_DIR}build/windows/1_build-deps-crossroad.sh"
else
export ARTIFACTS_SUFFIX="-x64-cross"
export ARTIFACTS_SUFFIX="-cross"
## Install the required (pre-built) packages for babl, GEGL and GIMP
crossroad source msys2

View file

@ -2,16 +2,6 @@
set -e
# $MSYSTEM_CARCH and $MINGW_PACKAGE_PREFIX are defined by MSYS2.
# https://github.com/msys2/MSYS2-packages/blob/master/filesystem/msystem
if [ "$MSYSTEM_CARCH" = "aarch64" ]; then
export ARTIFACTS_SUFFIX="-a64"
elif [ "$MSYSTEM_CARCH" = "x86_64" ]; then
export ARTIFACTS_SUFFIX="-x64"
else # [ "$MSYSTEM_CARCH" = "i686" ];
export ARTIFACTS_SUFFIX="-x86"
fi
if [ -z "$GITLAB_CI" ]; then
# Make the script work locally
if [ "$0" != "build/windows/1_build-deps-msys2.sh" ]; then
@ -87,9 +77,9 @@ clone_or_pull gegl
# Build babl and GEGL
# We need to create the condition this ugly way to not break CI
if [ "$GITLAB_CI" ]; then
export GIMP_PREFIX="$PWD/_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/_install"
elif [ -z "$GITLAB_CI" ] && [ -z "$GIMP_PREFIX" ]; then
export GIMP_PREFIX="$PWD/_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/_install"
fi
## Universal variables from .gitlab-ci.yml
IFS=$'\n' VAR_ARRAY=($(cat ${GIMP_DIR}.gitlab-ci.yml | sed -n '/export PATH=/,/GI_TYPELIB_PATH}\"/p' | sed 's/ - //'))
@ -101,10 +91,10 @@ done
configure_or_build ()
{
if [ ! -f "_${1}/_build/build.ninja" ]; then
mkdir -p _${1}/_build${ARTIFACTS_SUFFIX} && cd _${1}/_build${ARTIFACTS_SUFFIX}
mkdir -p _${1}/_build && cd _${1}/_build
meson setup .. -Dprefix="${GIMP_PREFIX}" $2
else
cd _${1}/_build${ARTIFACTS_SUFFIX}
cd _${1}/_build
fi
ninja
ninja install

View file

@ -18,25 +18,25 @@ fi
# FIXME: We need native/Linux gimp-console.
if [ ! -d '_build-x64' ]; then
echo -e '\033[31m(ERROR)\033[0m: Before running this script, first build GIMP natively in _build-x64'
if [ ! -d '_build' ]; then
echo -e '\033[31m(ERROR)\033[0m: Before running this script, first build GIMP natively in _build'
fi
if [ ! -d "${PARENT_DIR}_install-x64" ]; then
echo -e "\033[31m(ERROR)\033[0m: Before running this script, first install GIMP natively in ${PARENT_DIR}_install-x64"
if [ ! -d "${PARENT_DIR}_install" ]; then
echo -e "\033[31m(ERROR)\033[0m: Before running this script, first install GIMP natively in ${PARENT_DIR}_install"
fi
if [ ! -d '_build-x64' ] || [ ! -d "${PARENT_DIR}_install-x64" ]; then
if [ ! -d '_build' ] || [ ! -d "${PARENT_DIR}_install" ]; then
echo 'Patches are very welcome: https://gitlab.gnome.org/GNOME/gimp/-/issues/11544'
exit 1
fi
GIMP_APP_VERSION=$(grep GIMP_APP_VERSION _build-x64/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
GIMP_APP_VERSION=$(grep GIMP_APP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/')
mkdir -p $PWD/${PARENT_DIR}.local/bin
GIMP_CONSOLE_PATH=$PWD/${PARENT_DIR}.local/bin/gimp-console-$GIMP_APP_VERSION
gcc -print-multi-os-directory 2>/dev/null | grep ./ && LIB_DIR=$(gcc -print-multi-os-directory | sed 's/\.\.\///g') || LIB_DIR="lib"
gcc -print-multiarch 2>/dev/null | grep . && LIB_SUBDIR=$(echo $(gcc -print-multiarch)'/')
echo "#!/bin/sh" > $GIMP_CONSOLE_PATH
echo export LD_LIBRARY_PATH="$PWD/${PARENT_DIR}_install-x64/${LIB_DIR}/${LIB_SUBDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> $GIMP_CONSOLE_PATH
echo export GI_TYPELIB_PATH="$PWD/${PARENT_DIR}_install-x64/${LIB_DIR}/${LIB_SUBDIR}girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" >> $GIMP_CONSOLE_PATH
echo "$PWD/${PARENT_DIR}_install-x64/bin/gimp-console-$GIMP_APP_VERSION \"\$@\"" >> $GIMP_CONSOLE_PATH
echo export LD_LIBRARY_PATH="$PWD/${PARENT_DIR}_install/${LIB_DIR}/${LIB_SUBDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> $GIMP_CONSOLE_PATH
echo export GI_TYPELIB_PATH="$PWD/${PARENT_DIR}_install/${LIB_DIR}/${LIB_SUBDIR}girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" >> $GIMP_CONSOLE_PATH
echo "$PWD/${PARENT_DIR}_install/bin/gimp-console-$GIMP_APP_VERSION \"\$@\"" >> $GIMP_CONSOLE_PATH
chmod u+x $GIMP_CONSOLE_PATH
@ -45,7 +45,7 @@ export PATH="$PWD/${PARENT_DIR}.local/bin:$PWD/bin:$PATH"
export XDG_DATA_HOME="$PWD/${PARENT_DIR}.local/share"
crossroad w64 gimp --run="build/windows/2_build-gimp-crossroad.sh"
else
export ARTIFACTS_SUFFIX="-x64-cross"
export ARTIFACTS_SUFFIX="-cross"
## The required packages for GIMP are taken from the previous job

View file

@ -2,16 +2,6 @@
set -e
# $MSYSTEM_CARCH, $MSYSTEM_PREFIX and $MINGW_PACKAGE_PREFIX are defined by MSYS2.
# https://github.com/msys2/MSYS2-packages/blob/master/filesystem/msystem
if [ "$MSYSTEM_CARCH" = "aarch64" ]; then
export ARTIFACTS_SUFFIX="-a64"
elif [ "$MSYSTEM_CARCH" = "x86_64" ]; then
export ARTIFACTS_SUFFIX="-x64"
else # [ "$MSYSTEM_CARCH" = "i686" ];
export ARTIFACTS_SUFFIX="-x86"
fi
if [ -z "$GITLAB_CI" ]; then
# Make the script work locally
if [ "$0" != "build/windows/2_build-gimp-msys2.sh" ]; then
@ -34,9 +24,9 @@ fi
# Build GIMP
# We need to create the condition this ugly way to not break CI
if [ "$GITLAB_CI" ]; then
export GIMP_PREFIX="$PWD/_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/_install"
elif [ -z "$GITLAB_CI" ] && [ -z "$GIMP_PREFIX" ]; then
export GIMP_PREFIX="$PWD/../_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/../_install"
fi
## Universal variables from .gitlab-ci.yml
IFS=$'\n' VAR_ARRAY=($(cat .gitlab-ci.yml | sed -n '/export PATH=/,/GI_TYPELIB_PATH}\"/p' | sed 's/ - //'))
@ -45,8 +35,8 @@ for VAR in "${VAR_ARRAY[@]}"; do
eval "$VAR" || continue
done
if [ ! -f "_build${ARTIFACTS_SUFFIX}/build.ninja" ]; then
mkdir -p "_build${ARTIFACTS_SUFFIX}" && cd "_build${ARTIFACTS_SUFFIX}"
if [ ! -f "_build/build.ninja" ]; then
mkdir -p "_build" && cd "_build"
# We disable javascript as we are not able for the time being to add a
# javascript interpreter with GObject Introspection (GJS/spidermonkey
# and Seed/Webkit are the 2 contenders so far, but they are not
@ -61,7 +51,7 @@ if [ ! -f "_build${ARTIFACTS_SUFFIX}/build.ninja" ]; then
-Denable-default-bin=enabled \
-Dbuild-id=org.gimp.GIMP_official $MESON_OPTIONS
else
cd "_build${ARTIFACTS_SUFFIX}"
cd "_build"
fi
ninja
ninja install

View file

@ -2,8 +2,10 @@
set -e
# $MSYSTEM_CARCH and $MSYSTEM_PREFIX are defined by MSYS2.
# https://github.com/msys2/MSYS2-packages/blob/master/filesystem/msystem
# NOTE: The bundling scripts, different from building scripts, need to set
# the ARTIFACTS_SUFFIX, even locally: 1) to avoid confusion (bundle dirs are
# relocatable so can be copied to a machine with other arch); and 2) to our
# dist scripts fallback code be able to identify what they are distributing
if [ "$MSYSTEM_CARCH" = "aarch64" ]; then
export ARTIFACTS_SUFFIX="-a64"
elif [ "$CI_JOB_NAME" = "gimp-win-x64-cross" ] || [ "$MSYSTEM_CARCH" = "x86_64" ]; then
@ -26,13 +28,13 @@ fi
# Bundle deps and GIMP files
if [[ "$CI_JOB_NAME" =~ "cross" ]]; then
export GIMP_PREFIX="`realpath ./_install`${ARTIFACTS_SUFFIX}-cross"
export GIMP_PREFIX="`realpath ./_install-cross`"
export MSYS_PREFIX="$GIMP_PREFIX"
else
if [ "$GITLAB_CI" ]; then
export GIMP_PREFIX="$PWD/_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/_install"
elif [ -z "$GITLAB_CI" ] && [ -z "$GIMP_PREFIX" ]; then
export GIMP_PREFIX="$PWD/../_install${ARTIFACTS_SUFFIX}"
export GIMP_PREFIX="$PWD/../_install"
fi
export MSYS_PREFIX="$MSYSTEM_PREFIX"
fi

View file

@ -12,7 +12,7 @@ param ($GIMP_VERSION,
if ((-Not $GIMP_VERSION) -or (-Not $GIMP_APP_VERSION) -or (-Not $GIMP_API_VERSION))
{
$CONFIG_PATH = Resolve-Path -Path "_build-*\config.h" | Select-Object -ExpandProperty Path
$CONFIG_PATH = '_build\config.h'
}
if (-Not $GIMP_VERSION)
@ -133,7 +133,7 @@ fix_msg $INNOPATH\Languages
fix_msg $INNOPATH\Languages\Unofficial
$gen_path = Resolve-Path -Path "_build-*\build\windows\installer" | Select-Object -ExpandProperty Path
$gen_path = '_build\build\windows\installer'
if (Test-Path -Path $gen_path)
{
# Copy generated language files into the source directory

View file

@ -14,7 +14,7 @@ Set-Alias -Name 'signtool' -Value 'C:\Program Files (x86)\Windows Kits\10\bin\10
# Global variables
$config_path = Resolve-Path -Path "_build-*\config.h" | Select-Object -ExpandProperty Path
$config_path = '_build\config.h'
## Identity Name (internal) and Display Name (in the Store)
$gimp_unstable = Get-Content -Path "$config_path" | Select-String 'GIMP_UNSTABLE' |
@ -102,7 +102,7 @@ Configure-Arch "$arch_x64" 'x64'
# 2. CREATE ASSETS
## Copy pre-generated icons to each arch
$icons_path = Resolve-Path -Path "..\..\..\_build-*\build\windows\store\Assets"
$icons_path = '..\..\..\_build\build\windows\store\Assets'
if (Test-Path -Path "$icons_path")
{
foreach ($arch in $archsArray)