mirror of https://github.com/GNOME/gimp.git
gitlab-ci, build/windows: Make Packaging scripts compatible with CI-Cross job
The CI crossbuild job now use the same main script (and the same sub-scripts of linking and debug generation) of the native CI for packaging. These unified scripts greatly facilitates maintenance. The crossbuild deps script is now more consistent in relation to the native one. As this is polished, the cross one is now polished too. A crossroad gimp build script was created with a more clear code. Also, finally make the script for packaging only, removing build step stuff that shoudn't be here (glib-schemas generation) since this causes disparity with the Local native build; and adding some packaging decisions that shoudn't be in the installer scripts (eg. specific folders of ghostscript, glib; no share/themes), which also facillitates INNO (and future MSIX) maintenance.
This commit is contained in:
parent
8b9aa1e7ca
commit
af79bbe028
194
.gitlab-ci.yml
194
.gitlab-ci.yml
|
@ -395,14 +395,17 @@ deps-win-x64-cross:
|
|||
# adds a local/ folder to the install prefix of setup.py. This environment
|
||||
# variable overrides this behavior.
|
||||
DEB_PYTHON_INSTALL_LAYOUT: "deb"
|
||||
APT_CACHE: "${CI_PROJECT_DIR}/apt-cache"
|
||||
cache:
|
||||
paths:
|
||||
- .cache/crossroad/
|
||||
- apt-cache
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get install -y --no-install-recommends wine wine64
|
||||
|
||||
- mkdir -p "$APT_CACHE"
|
||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
||||
wine
|
||||
wine64
|
||||
- git clone --depth=${GIT_DEPTH} https://gitlab.freedesktop.org/crossroad/crossroad.git
|
||||
- cd crossroad
|
||||
- ./setup.py install --prefix=`pwd`/../.local
|
||||
|
@ -416,7 +419,8 @@ deps-win-x64-cross:
|
|||
expire_in: 2 hours
|
||||
paths:
|
||||
- .local/
|
||||
- _deps/
|
||||
- _deps/_babl/_build-x64/
|
||||
- _deps/_gegl/_build-x64/
|
||||
needs: ["image-win-x64-cross"]
|
||||
|
||||
gimp-win-x64-cross:
|
||||
|
@ -440,20 +444,15 @@ gimp-win-x64-cross:
|
|||
- apt-cache
|
||||
script:
|
||||
- export PATH="`pwd`/.local/bin:$PATH"
|
||||
- mkdir _build && cd _build
|
||||
- echo 'crossroad meson setup ..
|
||||
-Dgi-docgen=disabled && ninja && ninja install &&
|
||||
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
|
||||
' |
|
||||
crossroad w64 gimp --run="-"
|
||||
- crossroad w64 gimp --run="build/windows/gitlab-ci/2_build-gimp-crossroad.sh"
|
||||
needs: ["deps-win-x64-cross"]
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
|
||||
when: always
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- _build/
|
||||
- gimp-prefix/
|
||||
- _build-x64/
|
||||
- _install-x64/
|
||||
|
||||
packaging-win-x64-nightly:
|
||||
rules:
|
||||
|
@ -465,73 +464,27 @@ packaging-win-x64-nightly:
|
|||
dependencies:
|
||||
- gimp-win-x64-cross
|
||||
variables:
|
||||
GIMP_PREFIX: "gimp-prefix"
|
||||
GIMP_DISTRIB: "gimp-w64"
|
||||
BUILD_TYPE: "CI_CROSS"
|
||||
CROSSROAD_PLATFORM: "w64"
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
|
||||
when: always
|
||||
expire_in: 2 days
|
||||
paths:
|
||||
- gimp-w64
|
||||
script:
|
||||
- gimp-x64
|
||||
- done-dll.list
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get install -y --no-install-recommends
|
||||
python3 binutils-mingw-w64-x86-64 file
|
||||
binutils
|
||||
binutils-mingw-w64-x86-64
|
||||
file
|
||||
libglib2.0-bin
|
||||
|
||||
# Package ressources.
|
||||
- mkdir -p ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/etc ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/include ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/share ${GIMP_DISTRIB}
|
||||
|
||||
# Package executables.
|
||||
- mkdir ${GIMP_DISTRIB}/bin
|
||||
- cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
|
||||
|
||||
# Add a wrapper at tree root, less messy than having to look for the
|
||||
# binary inside bin/, in the middle of all the DLLs.
|
||||
- echo "bin\gimp-2.99.exe" > ${GIMP_DISTRIB}/gimp.cmd
|
||||
|
||||
# Package library data and modules.
|
||||
- mkdir ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gimp ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gio ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gdk-pixbuf-2.0 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gegl-0.4 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/babl-0.1 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/girepository-1.0 ${GIMP_DISTRIB}/lib/
|
||||
|
||||
# Remove files for older GIMP
|
||||
- rm -fr ${GIMP_DISTRIB}/lib/gimp/2.0/
|
||||
|
||||
# Generate share/glib-2.0/schemas/gschemas.compiled
|
||||
- glib-compile-schemas --targetdir=${GIMP_DISTRIB}/share/glib-2.0/schemas ${GIMP_DISTRIB}/share/glib-2.0/schemas
|
||||
|
||||
# Package needed DLLs only
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list
|
||||
|
||||
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win64-nightly-dll.list;
|
||||
done
|
||||
python3
|
||||
script:
|
||||
- bash -x build/windows/gitlab-ci/3_package-gimp-uni_base.sh
|
||||
- cd gimp-x64
|
||||
- bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh
|
||||
needs: ["gimp-win-x64-cross"]
|
||||
|
||||
## WINDOWS 32-bit CI (cross-build crossroad) ##
|
||||
|
@ -551,6 +504,10 @@ deps-win-x86-cross:
|
|||
- .cache/crossroad/
|
||||
- apt-cache
|
||||
before_script:
|
||||
- apt-get update
|
||||
- mkdir -p "$APT_CACHE"
|
||||
- apt-get install -y --no-install-recommends -o dir::cache::archives="$APT_CACHE"
|
||||
wine
|
||||
- git clone --depth=${GIT_DEPTH} https://gitlab.freedesktop.org/crossroad/crossroad.git
|
||||
- cd crossroad
|
||||
- ./setup.py install --prefix=`pwd`/../.local
|
||||
|
@ -564,7 +521,8 @@ deps-win-x86-cross:
|
|||
expire_in: 2 hours
|
||||
paths:
|
||||
- .local/
|
||||
- _deps/
|
||||
- _deps/_babl/_build-x86/
|
||||
- _deps/_gegl/_build-x86/
|
||||
needs: ["image-win-x86-cross"]
|
||||
|
||||
gimp-win-x86-cross:
|
||||
|
@ -575,6 +533,7 @@ gimp-win-x86-cross:
|
|||
image: $CI_REGISTRY_IMAGE:build-win32-latest
|
||||
dependencies:
|
||||
- deps-win-x86-cross
|
||||
- deps-win-x64-cross
|
||||
variables:
|
||||
XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache/"
|
||||
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
||||
|
@ -584,20 +543,15 @@ gimp-win-x86-cross:
|
|||
- apt-cache
|
||||
script:
|
||||
- export PATH="`pwd`/.local/bin:$PATH"
|
||||
- mkdir _build && cd _build
|
||||
- echo 'crossroad meson setup ..
|
||||
-Dwmf=disabled -Dmng=disabled -Dgi_docgen=false && ninja && ninja install &&
|
||||
cp -fr $CROSSROAD_PREFIX/ ../gimp-prefix/
|
||||
' |
|
||||
crossroad w32 gimp --run="-"
|
||||
needs: ["deps-win-x86-cross"]
|
||||
- crossroad w32 gimp --run="build/windows/gitlab-ci/2_build-gimp-crossroad.sh"
|
||||
needs: ["deps-win-x86-cross", "deps-win-x64-cross"]
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
|
||||
when: always
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- _build/
|
||||
- gimp-prefix/
|
||||
- _build-x86/
|
||||
- _install-x86/
|
||||
|
||||
packaging-win-x86-nightly:
|
||||
rules:
|
||||
|
@ -606,80 +560,30 @@ packaging-win-x86-nightly:
|
|||
stage: packaging
|
||||
dependencies:
|
||||
- gimp-win-x86-cross
|
||||
- deps-win-x64-cross
|
||||
variables:
|
||||
GIMP_PREFIX: "gimp-prefix"
|
||||
GIMP_DISTRIB: "gimp-w32"
|
||||
BUILD_TYPE: "CI_CROSS"
|
||||
CROSSROAD_PLATFORM: "w32"
|
||||
XDG_DATA_HOME: "$CI_PROJECT_DIR/.local/share/"
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}"
|
||||
when: always
|
||||
expire_in: 2 days
|
||||
paths:
|
||||
- gimp-w32
|
||||
script:
|
||||
- gimp-x86
|
||||
- done-dll.list
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get install -y --no-install-recommends
|
||||
python3 binutils-mingw-w64-i686 file
|
||||
binutils
|
||||
binutils-mingw-w64-i686
|
||||
file
|
||||
libglib2.0-bin
|
||||
|
||||
# Package ressources.
|
||||
- mkdir -p ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/etc ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/include ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/ssl ${GIMP_DISTRIB}
|
||||
- cp -fr ${GIMP_PREFIX}/share ${GIMP_DISTRIB}
|
||||
|
||||
# Package executables.
|
||||
- mkdir ${GIMP_DISTRIB}/bin
|
||||
- cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
|
||||
|
||||
# Add a wrapper at tree root, less messy than having to look for the
|
||||
# binary inside bin/, in the middle of all the DLLs.
|
||||
- echo "bin\gimp-2.99.exe" > ${GIMP_DISTRIB}/gimp.cmd
|
||||
|
||||
# Package library data and modules.
|
||||
- mkdir ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gimp ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gio ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gdk-pixbuf-2.0 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/gegl-0.4 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/babl-0.1 ${GIMP_DISTRIB}/lib/
|
||||
- cp -fr ${GIMP_PREFIX}/lib/girepository-1.0 ${GIMP_DISTRIB}/lib/
|
||||
|
||||
# I fail to install wine32 inside the Gitlab runner. So instead, I
|
||||
# just reuse the loaders.cache generated in the deps-win64 job as
|
||||
# they should be the same (text format).
|
||||
- cp ${XDG_DATA_HOME}/crossroad/roads/w64/gimp/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
||||
|
||||
# Generate share/glib-2.0/schemas/gschemas.compiled
|
||||
- glib-compile-schemas --targetdir=${GIMP_DISTRIB}/share/glib-2.0/schemas ${GIMP_DISTRIB}/share/glib-2.0/schemas
|
||||
|
||||
# Package needed DLLs only.
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
|
||||
- python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list
|
||||
|
||||
- for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
- for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list win32-nightly-dll.list;
|
||||
done
|
||||
needs: ["gimp-win-x86-cross", "deps-win-x64-cross"]
|
||||
python3
|
||||
script:
|
||||
- bash -x build/windows/gitlab-ci/3_package-gimp-uni_base.sh
|
||||
- cd gimp-x86
|
||||
- bash -x ../build/windows/gitlab-ci/3_package-gimp-uni_sym.sh
|
||||
needs: ["gimp-win-x86-cross"]
|
||||
|
||||
|
||||
## WINDOWS Aarch64 CI (native MSYS2) ##
|
||||
|
@ -1052,7 +956,7 @@ cppcheck:
|
|||
- apt-get install -y cppcheck
|
||||
script:
|
||||
- cppcheck -q -j8 --enable=all --force --output-file=cppcheck.xml --xml --xml-version=2
|
||||
-i _build -i _deps -i gimp-prefix -i .local -i .cache .
|
||||
-i _build-x64 -i _build-x86 -i _deps -i _install-x64 -i _install-x86 -i .local -i .cache .
|
||||
- mkdir report
|
||||
- cppcheck-htmlreport --source-dir=. --title=gimp --file=cppcheck.xml --report-dir=report
|
||||
artifacts:
|
||||
|
|
|
@ -1,21 +1,35 @@
|
|||
if [[ "x$CROSSROAD_PLATFORM" = "xw64" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-x64"
|
||||
else # [[ "x$CROSSROAD_PLATFORM" = "xw32" ]];
|
||||
export ARTIFACTS_SUFFIX="-x86"
|
||||
fi
|
||||
|
||||
|
||||
# Install the required (pre-built) packages for babl and GEGL
|
||||
crossroad source msys2
|
||||
crossroad install cairo \
|
||||
graphviz \
|
||||
json-glib \
|
||||
lcms2
|
||||
|
||||
# Clone babl and GEGL (follow master branch)
|
||||
mkdir _deps && cd _deps
|
||||
git clone --depth 1 https://gitlab.gnome.org/GNOME/babl.git _babl
|
||||
git clone --depth 1 https://gitlab.gnome.org/GNOME/gegl.git _gegl
|
||||
|
||||
# babl
|
||||
# Build babl and GEGL
|
||||
mkdir _babl/_build${ARTIFACTS_SUFFIX}/ && cd _babl/_build${ARTIFACTS_SUFFIX}/
|
||||
crossroad meson setup .. -Denable-gir=false \
|
||||
-Dlibdir=lib
|
||||
ninja && ninja install
|
||||
|
||||
crossroad install lcms2 && \
|
||||
git clone --depth 1 https://gitlab.gnome.org/GNOME/babl.git && cd babl && \
|
||||
crossroad meson setup _build/ -Denable-gir=false -Dlibdir=lib && \
|
||||
ninja -C _build install || exit 1
|
||||
cd ..
|
||||
mkdir ../../_gegl/_build${ARTIFACTS_SUFFIX}/ && cd ../../_gegl/_build${ARTIFACTS_SUFFIX}/
|
||||
crossroad meson setup .. -Dintrospection=false \
|
||||
-Dlibdir=lib \
|
||||
-Dsdl2=disabled
|
||||
ninja && ninja install
|
||||
cd ../../
|
||||
|
||||
# GEGL
|
||||
|
||||
crossroad install cairo graphviz json-glib && \
|
||||
git clone --depth 1 https://gitlab.gnome.org/GNOME/gegl.git && cd gegl && \
|
||||
crossroad meson setup _build/ -Dintrospection=false -Dsdl2=disabled -Dlibdir=lib && \
|
||||
ninja -C _build install || exit 1
|
||||
cd ..
|
||||
|
||||
# Install the required (pre-built) packages for GIMP
|
||||
export DEPS_PATH="../build/windows/gitlab-ci/all-deps-uni.txt"
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
if [[ "x$CROSSROAD_PLATFORM" = "xw64" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-x64"
|
||||
export MESON_OPTIONS=""
|
||||
else # [[ "x$CROSSROAD_PLATFORM" = "xw32" ]];
|
||||
export ARTIFACTS_SUFFIX="-x86"
|
||||
export MESON_OPTIONS="-Dwmf=disabled -Dmng=disabled"
|
||||
fi
|
||||
|
||||
|
||||
# Build GIMP
|
||||
mkdir _build${ARTIFACTS_SUFFIX} && cd _build${ARTIFACTS_SUFFIX}
|
||||
crossroad meson setup .. -Dgi-docgen=disabled \
|
||||
-Djavascript=disabled $MESON_OPTIONS
|
||||
ninja && ninja install
|
||||
cd ..
|
||||
|
||||
# Copy the required packages and (part of) GIMP from the deps artifact
|
||||
cp -fr $CROSSROAD_PREFIX/ _install${ARTIFACTS_SUFFIX}/
|
|
@ -1,89 +1,100 @@
|
|||
#!/bin/bash
|
||||
# $MINGW_PACKAGE_PREFIX is defined by MSYS2.
|
||||
# $MSYSTEM_CARCH and $MINGW_PACKAGE_PREFIX are defined by MSYS2.
|
||||
# https://github.com/msys2/MSYS2-packages/blob/master/filesystem/msystem
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$MSYSTEM" == "MINGW32" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-w32"
|
||||
export MSYS_PREFIX="/c/msys64/mingw32/"
|
||||
export PATH="/mingw32/bin:$PATH"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-w32`
|
||||
elif [[ "$MSYSTEM" == "MINGW64" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-w64"
|
||||
export MSYS_PREFIX="/c/msys64/mingw64/"
|
||||
export PATH="/mingw64/bin:$PATH"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-w64`
|
||||
else # [[ "$MSYSTEM" == "CLANGARM64" ]];
|
||||
export ARTIFACTS_SUFFIX="-arm64"
|
||||
export MSYS_PREFIX="/c/msys64/clangarm64/"
|
||||
export PATH="/clangarm64/bin:$PATH"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-arm64`
|
||||
if [[ "$MSYSTEM_CARCH" == "aarch64" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-a64"
|
||||
export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-a64`
|
||||
elif [[ "$CROSSROAD_PLATFORM" == "w64" ]] || [[ "$MSYSTEM_CARCH" == "x86_64" ]]; then
|
||||
export ARTIFACTS_SUFFIX="-x64"
|
||||
export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-x64`
|
||||
else # [[ "$CROSSROAD_PLATFORM" == "w32" ]] || [[ "$MSYSTEM_CARCH" == "i686" ]];
|
||||
export ARTIFACTS_SUFFIX="-x86"
|
||||
export MSYS_PREFIX="c:/msys64${MSYSTEM_PREFIX}"
|
||||
export GIMP_DISTRIB=`realpath ./gimp-x86`
|
||||
fi
|
||||
|
||||
# Update everything
|
||||
|
||||
if [[ "$BUILD_TYPE" != "CI_CROSS" ]]; then
|
||||
# Install the required (pre-built) packages again
|
||||
pacman --noconfirm -Suy
|
||||
|
||||
# Install the required (pre-built) packages again
|
||||
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
|
||||
fi
|
||||
|
||||
|
||||
# Package deps and GIMP files
|
||||
export GIMP_PREFIX="`realpath ./_install`${ARTIFACTS_SUFFIX}"
|
||||
export PATH="$GIMP_PREFIX/bin:$PATH"
|
||||
if [[ "$BUILD_TYPE" == "CI_CROSS" ]]; then
|
||||
export MSYS_PREFIX="$GIMP_PREFIX"
|
||||
fi
|
||||
|
||||
# Package ressources.
|
||||
## Copy a previously built wrapper at tree root, less messy than
|
||||
## having to look inside bin/, in the middle of all the DLLs.
|
||||
## This utility also configure the interpreters.
|
||||
## Then, copy a built README that make clear the utility of .cmd.
|
||||
mkdir -p ${GIMP_DISTRIB}
|
||||
cp -fr ${GIMP_PREFIX}/etc ${GIMP_DISTRIB}
|
||||
cp -fr ${GIMP_PREFIX}/include ${GIMP_DISTRIB}
|
||||
#cp -fr ${GIMP_PREFIX}/ssl ${GIMP_DISTRIB}
|
||||
cp -fr ${GIMP_PREFIX}/share ${GIMP_DISTRIB}
|
||||
cp -fr ${GIMP_PREFIX}/*.cmd ${GIMP_DISTRIB}/
|
||||
cp -fr ${GIMP_PREFIX}/*.txt ${GIMP_DISTRIB}/
|
||||
|
||||
# Package executables.
|
||||
mkdir ${GIMP_DISTRIB}/bin
|
||||
cp -fr ${GIMP_PREFIX}/bin/gimp*.exe ${GIMP_DISTRIB}/bin/
|
||||
|
||||
# With the native Windows build, it's directly in bin/
|
||||
#mkdir ${GIMP_DISTRIB}/libexec
|
||||
#cp -fr ${GIMP_PREFIX}/libexec/gimp*.exe ${GIMP_DISTRIB}/libexec/
|
||||
## Modules.
|
||||
mkdir ${GIMP_DISTRIB}/etc
|
||||
cp -fr ${MSYS_PREFIX}/etc/fonts/ ${GIMP_DISTRIB}/etc/
|
||||
cp -fr ${GIMP_PREFIX}/etc/gimp/ ${GIMP_DISTRIB}/etc/
|
||||
cp -fr ${MSYS_PREFIX}/etc/gtk-*/ ${GIMP_DISTRIB}/etc/
|
||||
|
||||
# Add a wrapper at tree root, less messy than having to look for the
|
||||
# binary inside bin/, in the middle of all the DLLs.
|
||||
echo "bin\gimp-2.99.exe" > ${GIMP_DISTRIB}/gimp.cmd
|
||||
|
||||
# Package library data and modules.
|
||||
cp -fr ${MSYS_PREFIX}/etc/fonts ${GIMP_DISTRIB}/etc/
|
||||
cp -fr ${MSYS_PREFIX}/etc/gtk-3.0 ${GIMP_DISTRIB}/etc/
|
||||
## Headers.
|
||||
mkdir ${GIMP_DISTRIB}/include
|
||||
cp -fr ${GIMP_PREFIX}/include/babl-*/ ${GIMP_DISTRIB}/include/
|
||||
cp -fr ${GIMP_PREFIX}/include/gegl-*/ ${GIMP_DISTRIB}/include/
|
||||
cp -fr ${GIMP_PREFIX}/include/gimp-*/ ${GIMP_DISTRIB}/include/
|
||||
|
||||
mkdir ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/gimp ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/gegl-0.4 ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/babl-0.1 ${GIMP_DISTRIB}/lib/
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/lib/girepository-1.0 ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/girepository-1.0/* ${GIMP_DISTRIB}/lib/girepository-1.0/
|
||||
## Library data.
|
||||
mkdir ${GIMP_DISTRIB}/lib
|
||||
cp -fr ${GIMP_PREFIX}/lib/babl-*/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${MSYS_PREFIX}/lib/gdk-pixbuf-*/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/gegl-*/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/gimp/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${MSYS_PREFIX}/lib/gio/ ${GIMP_DISTRIB}/lib/
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/lib/gio ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${MSYS_PREFIX}/lib/gdk-pixbuf-2.0 ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${MSYS_PREFIX}/lib/gtk-3.0 ${GIMP_DISTRIB}/lib/
|
||||
aList=$(find ${GIMP_DISTRIB}/lib/ -iname '*.a') && aArray=($aList)
|
||||
for a in "${aArray[@]}"; do
|
||||
rm $a
|
||||
done
|
||||
rm ${GIMP_DISTRIB}/lib/gegl-*/*.json
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/lib/python3.11 ${GIMP_DISTRIB}/lib/
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/share/ghostscript ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/glib-2.0 ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/libthai ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/libwmf ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/mypaint-data ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/poppler ${GIMP_DISTRIB}/share/
|
||||
## Resources.
|
||||
mkdir ${GIMP_DISTRIB}/share
|
||||
cp -fr ${MSYS_PREFIX}/share/ghostscript/ ${GIMP_DISTRIB}/share/
|
||||
rm -r ${GIMP_DISTRIB}/share/ghostscript/*/doc
|
||||
cp -fr ${GIMP_PREFIX}/share/gimp/ ${GIMP_DISTRIB}/share/
|
||||
export GLIB_PATH=`echo ${MSYS_PREFIX}/share/glib-*/schemas`
|
||||
GLIB_PATH=$(sed "s|${MSYS_PREFIX}/||g" <<< $GLIB_PATH)
|
||||
mkdir -p ${GIMP_DISTRIB}/${GLIB_PATH}
|
||||
cp -fr ${MSYS_PREFIX}/share/glib-*/schemas/ ${GIMP_DISTRIB}/share/glib-*/
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/share/lua/ ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/lib/lua/ ${GIMP_DISTRIB}/lib/
|
||||
### Adwaita can be used as the base icon set.
|
||||
mkdir -p ${GIMP_DISTRIB}/share/icons
|
||||
cp -fr ${MSYS_PREFIX}/share/icons/Adwaita/ ${GIMP_DISTRIB}/share/icons/
|
||||
cp -fr ${GIMP_PREFIX}/share/icons/hicolor/ ${GIMP_DISTRIB}/share/icons/
|
||||
|
||||
# XXX Are these themes really needed?
|
||||
cp -fr ${MSYS_PREFIX}/share/themes ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/libthai/ ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/libwmf/ ${GIMP_DISTRIB}/share/
|
||||
|
||||
# Only copy from langs supported in GIMP.
|
||||
### Only copy from langs supported in GIMP.
|
||||
cp -fr ${GIMP_PREFIX}/share/locale/ ${GIMP_DISTRIB}/share/
|
||||
for dir in ${GIMP_DISTRIB}/share/locale/*/; do
|
||||
lang=`basename "$dir"`;
|
||||
# TODO: ideally we could be a bit more accurate and copy only the
|
||||
|
@ -95,93 +106,70 @@ for dir in ${GIMP_DISTRIB}/share/locale/*/; do
|
|||
fi
|
||||
done;
|
||||
|
||||
# Only one iso-codes file is useful.
|
||||
mkdir -p ${GIMP_DISTRIB}/share/man/man1
|
||||
mkdir -p ${GIMP_DISTRIB}/share/man/man5
|
||||
cp -fr ${GIMP_PREFIX}/share/man/man1/gimp* ${GIMP_DISTRIB}/share/man/man1/
|
||||
cp -fr ${GIMP_PREFIX}/share/man/man5/gimp* ${GIMP_DISTRIB}/share/man/man5/
|
||||
mkdir ${GIMP_DISTRIB}/share/metainfo
|
||||
cp -fr ${GIMP_PREFIX}/share/metainfo/org.gimp*.xml ${GIMP_DISTRIB}/share/metainfo/
|
||||
cp -fr ${MSYS_PREFIX}/share/mypaint-data/ ${GIMP_DISTRIB}/share/
|
||||
cp -fr ${MSYS_PREFIX}/share/poppler/ ${GIMP_DISTRIB}/share/
|
||||
|
||||
### Only one iso-codes file is useful.
|
||||
mkdir -p ${GIMP_DISTRIB}/share/xml/iso-codes
|
||||
cp -fr ${MSYS_PREFIX}/share/xml/iso-codes/iso_639.xml ${GIMP_DISTRIB}/share/xml/iso-codes/
|
||||
|
||||
# Adwaita can be used as the base icon set.
|
||||
cp -fr ${MSYS_PREFIX}/share/icons/Adwaita ${GIMP_DISTRIB}/share/icons/
|
||||
|
||||
# Gdbus is needed to avoid warnings in CMD.
|
||||
cp -fr ${MSYS_PREFIX}/bin/gdbus.exe ${GIMP_DISTRIB}/bin
|
||||
## Executables and DLLs.
|
||||
|
||||
# XXX Why are these for exactly?
|
||||
cp -fr ${MSYS_PREFIX}/bin/gspawn*.exe ${GIMP_DISTRIB}/bin/
|
||||
|
||||
# We save the list of already copied DLLs to keep a state between dll_link runs.
|
||||
### We save the list of already copied DLLs to keep a state between 3_package-gimp-uni_dep runs.
|
||||
rm -f done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gspawn-win*-helper.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX} ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gspawn-win*-helper-console.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
### Minimal executables for the 'bin' folder
|
||||
mkdir ${GIMP_DISTRIB}/bin
|
||||
binArray=("${MSYS_PREFIX}/bin/bzip2.exe"
|
||||
"${MSYS_PREFIX}/bin/dot.exe"
|
||||
"${MSYS_PREFIX}/bin/gdbus.exe"
|
||||
"${MSYS_PREFIX}/bin/gdk-pixbuf-query-loaders.exe"
|
||||
"${GIMP_PREFIX}/bin/gimp*.exe"
|
||||
"${MSYS_PREFIX}/bin/gspawn*.exe")
|
||||
for exe in "${binArray[@]}"; do
|
||||
cp -fr $exe ${GIMP_DISTRIB}/bin/
|
||||
done
|
||||
|
||||
# XXX Does not look like it's needed anymore. Check?
|
||||
cp -fr ${MSYS_PREFIX}/bin/gdk-pixbuf-query-loaders.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gdk-pixbuf-query-loaders.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
## Optional executables, .DLLs and resources for GObject Introspection support
|
||||
if [[ "$BUILD_TYPE" != "CI_CROSS" ]]; then
|
||||
cp -fr ${MSYS_PREFIX}/bin/libgirepository-*.dll ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/3_package-gimp-uni_dep.py ${GIMP_DISTRIB}/bin/libgirepository-*.dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
cp -fr ${MSYS_PREFIX}/lib/girepository-*/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${GIMP_PREFIX}/lib/girepository-*/* ${GIMP_DISTRIB}/lib/girepository-*/
|
||||
cp -fr ${GIMP_PREFIX}/share/gir-*/ ${GIMP_DISTRIB}/share/
|
||||
|
||||
# XXX Why is bzip2.exe needed?
|
||||
cp -fr ${MSYS_PREFIX}/bin/bzip2.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/bzip2.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
# Executables for supported interpreters.
|
||||
cp -fr ${MSYS_PREFIX}/bin/pythonw.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/pythonw.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
cp -fr ${MSYS_PREFIX}/bin/python3w.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/python3w.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
cp -fr ${MSYS_PREFIX}/bin/python3.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/python3.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
if [[ "$MSYSTEM" == "CLANGARM64" ]]; then
|
||||
cp -fr ${MSYS_PREFIX}/bin/lua5.1.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/lua5.1.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
else
|
||||
cp -fr ${MSYS_PREFIX}/bin/luajit.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/luajit.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
cp -fr ${MSYS_PREFIX}/lib/lua/ ${GIMP_DISTRIB}/lib/
|
||||
cp -fr ${MSYS_PREFIX}/share/lua/ ${GIMP_DISTRIB}/share/
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/bin/python*.exe ${GIMP_DISTRIB}/bin/
|
||||
cp -fr ${MSYS_PREFIX}/lib/python*/ ${GIMP_DISTRIB}/lib/
|
||||
|
||||
cp -fr ${GIMP_PREFIX}/share/vala/ ${GIMP_DISTRIB}/share/
|
||||
else
|
||||
# Just to ensure there is no introspected files that will output annoying warnings
|
||||
# This is needed because meson.build files can have flaws
|
||||
goiList=$(find ${GIMP_DISTRIB} \( -iname '*.lua' -or -iname '*.py' -or -iname '*.scm' -or -iname '*.vala' \)) && goiArray=($goiList)
|
||||
for goi in "${goiArray[@]}"; do
|
||||
rm $goi
|
||||
done
|
||||
fi
|
||||
|
||||
# Executable for "gegl:introspect" from graphviz package.
|
||||
cp -fr ${MSYS_PREFIX}/bin/dot.exe ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/dot.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
# Generate share/glib-2.0/schemas/gschemas.compiled
|
||||
glib-compile-schemas --targetdir=${GIMP_DISTRIB}/share/glib-2.0/schemas ${GIMP_DISTRIB}/share/glib-2.0/schemas
|
||||
|
||||
# Package needed DLLs only
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-2.99.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-console-2.99.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-debug-resume.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-debug-tool-2.99.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimp-test-clipboard-2.99.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/gimptool-2.99.exe ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
for dll in ${GIMP_DISTRIB}/lib/babl-0.1/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
for dll in ${GIMP_DISTRIB}/lib/gegl-0.4/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
for dll in ${GIMP_DISTRIB}/lib/gio/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
for dll in ${GIMP_DISTRIB}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/modules/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
for dll in ${GIMP_DISTRIB}/lib/gimp/2.99/plug-ins/*/*.exe; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
### Needed DLLs for the executables in the 'bin' folder
|
||||
binList=$(find ${GIMP_DISTRIB}/bin/ -iname '*.exe') && binArray=($binList)
|
||||
for bin in "${binArray[@]}"; do
|
||||
python3 build/windows/gitlab-ci/3_package-gimp-uni_dep.py $bin ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
||||
|
||||
# Libraries for GObject Introspection.
|
||||
|
||||
cp -fr ${MSYS_PREFIX}/bin/libgirepository-1.0-1.dll ${GIMP_DISTRIB}/bin/
|
||||
python3 build/windows/gitlab-ci/dll_link.py ${GIMP_DISTRIB}/bin/libgirepository-1.0-1.dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list
|
||||
|
||||
for dll in ${GIMP_DISTRIB}/lib/python3.11/site-packages/*/*.dll; do
|
||||
python3 build/windows/gitlab-ci/dll_link.py $dll ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
### Needed DLLs for the executables and DLLs in the 'lib' sub-folders
|
||||
libList=$(find ${GIMP_DISTRIB}/lib/ \( -iname '*.dll' -or -iname '*.exe' \)) && libArray=($libList)
|
||||
for lib in "${libArray[@]}"; do
|
||||
python3 build/windows/gitlab-ci/3_package-gimp-uni_dep.py $lib ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
|
||||
done
|
|
@ -7,23 +7,20 @@ else
|
|||
export OBJCOPY_OPTIONS="-v"
|
||||
fi
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy ${OBJCOPY_OPTIONS} --only-keep-debug '{}' '{}'.debug \;
|
||||
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy ${OBJCOPY_OPTIONS} --add-gnu-debuglink='{}'.debug '{}' --strip-unneeded \;
|
||||
find . -iname '*.debug' -exec "$0" {} +
|
||||
else
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
FP="$1"
|
||||
NAME="${FP##*/}"
|
||||
DIR="${FP%/*}"
|
||||
echo "$FP -> $DIR/.debug"
|
||||
if [ ! -d "$DIR/.debug" ]
|
||||
then
|
||||
|
||||
# Generate .debug
|
||||
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy ${OBJCOPY_OPTIONS} --only-keep-debug '{}' '{}'.debug \;
|
||||
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy ${OBJCOPY_OPTIONS} --add-gnu-debuglink='{}'.debug '{}' --strip-unneeded \;
|
||||
|
||||
# Copy .debug to .debug folder
|
||||
dbgList=$(find . -iname '*.debug') && dbgArray=($dbgList)
|
||||
for dbg in "${dbgArray[@]}"; do
|
||||
FP="$dbg" 0> /dev/null
|
||||
NAME="${FP##*/}" 0> /dev/null
|
||||
DIR="${FP%/*}" 0> /dev/null
|
||||
echo "$FP -> $DIR/.debug" 0> /dev/null
|
||||
if [ ! -d "$DIR/.debug" ]; then
|
||||
mkdir "$DIR/.debug"
|
||||
fi
|
||||
mv "$FP" "$DIR/.debug"
|
||||
shift
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue