diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ea882c9b70..ff1920fda3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,8 +62,8 @@ workflow: # Universal variables (works in all POSIX OSes and archs) before_script: - export PATH="$GIMP_PREFIX/bin:$PATH" - - gcc -print-multi-os-directory | grep . && LIB_DIR=$(gcc -print-multi-os-directory | sed 's/\.\.\///g') || LIB_DIR="lib" - - gcc -print-multiarch | grep . && LIB_SUBDIR=$(echo $(gcc -print-multiarch)'/') + - 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)'/') - export PKG_CONFIG_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" - export LD_LIBRARY_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" - export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}" diff --git a/build/linux/appimage/bundle-gimp-appimage.sh b/build/linux/appimage/bundle-gimp-appimage.sh index d54643de9d..9787c6fe6f 100644 --- a/build/linux/appimage/bundle-gimp-appimage.sh +++ b/build/linux/appimage/bundle-gimp-appimage.sh @@ -28,10 +28,13 @@ elif [[ "$2" == "AppDir" ]]; then OPT_PREFIX="${GIMP_DISTRIB}" fi -## This script is distro-agnostic too. -## TODO: take this code from .gitlab-ci.yml -gcc -print-multi-os-directory | grep . && LIB_DIR=$(gcc -print-multi-os-directory | sed 's/\.\.\///g') || LIB_DIR="lib" -gcc -print-multiarch | grep . && LIB_SUBDIR=$(echo $(gcc -print-multiarch)'/') +## This script is distro-agnostic too. We take universal variables from .gitlab-ci.yml +OLD_IFS=$IFS +IFS=$'\n' VAR_ARRAY=($(cat .gitlab-ci.yml | sed -n '/export PATH=/,/GI_TYPELIB_PATH}\"/p' | sed 's/ - //')) +IFS=$OLD_IFS +for VAR in "${VAR_ARRAY[@]}"; do + eval "$VAR" || continue +done #(MOSTLY) AGNOSTIC FUNCTIONS diff --git a/build/windows/gitlab-ci/1_build-deps-msys2.sh b/build/windows/gitlab-ci/1_build-deps-msys2.sh index 3d1a1064fc..831496ac3c 100644 --- a/build/windows/gitlab-ci/1_build-deps-msys2.sh +++ b/build/windows/gitlab-ci/1_build-deps-msys2.sh @@ -86,15 +86,13 @@ clone_or_pull gegl # Build babl and GEGL export GIMP_PREFIX="`realpath ./_install`${ARTIFACTS_SUFFIX}" -# Universal variables -export PATH="$GIMP_PREFIX/bin:$PATH" -gcc -print-multi-os-directory | grep . && LIB_DIR=$(gcc -print-multi-os-directory | sed 's/\.\.\///g') || LIB_DIR="lib" -gcc -print-multiarch | grep . && LIB_SUBDIR=$(echo $(gcc -print-multiarch)'/') -export PKG_CONFIG_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" -export LD_LIBRARY_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}" -export GI_TYPELIB_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -# End of universal variables +## Universal variables from .gitlab-ci.yml +OLD_IFS=$IFS +IFS=$'\n' VAR_ARRAY=($(cat ${GIMP_DIR}.gitlab-ci.yml | sed -n '/export PATH=/,/GI_TYPELIB_PATH}\"/p' | sed 's/ - //')) +IFS=$OLD_IFS +for VAR in "${VAR_ARRAY[@]}"; do + eval "$VAR" || continue +done configure_or_build () { diff --git a/build/windows/gitlab-ci/2_build-gimp-msys2.sh b/build/windows/gitlab-ci/2_build-gimp-msys2.sh index eebb8ffd83..5e7d6852ef 100644 --- a/build/windows/gitlab-ci/2_build-gimp-msys2.sh +++ b/build/windows/gitlab-ci/2_build-gimp-msys2.sh @@ -49,16 +49,13 @@ wget -O "${MSYS2_PREFIX}/include/qoi.h" https://raw.githubusercontent.com/phobos # Build GIMP export GIMP_PREFIX="`realpath ~/_install`${ARTIFACTS_SUFFIX}" -# Universal variables -# FIX ME: We can't set them modularly like we install deps modularly -export PATH="$GIMP_PREFIX/bin:$PATH" -gcc -print-multi-os-directory | grep . && LIB_DIR=$(gcc -print-multi-os-directory | sed 's/\.\.\///g') || LIB_DIR="lib" -gcc -print-multiarch | grep . && LIB_SUBDIR=$(echo $(gcc -print-multiarch)'/') -export PKG_CONFIG_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" -export LD_LIBRARY_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" -export XDG_DATA_DIRS="${GIMP_PREFIX}/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}" -export GI_TYPELIB_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" -# End of universal variables +## Universal variables from .gitlab-ci.yml +OLD_IFS=$IFS +IFS=$'\n' VAR_ARRAY=($(cat .gitlab-ci.yml | sed -n '/export PATH=/,/GI_TYPELIB_PATH}\"/p' | sed 's/ - //')) +IFS=$OLD_IFS +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}"