diff --git a/osx/makebundle.sh b/osx/makebundle.sh index 239a31a7..7b775713 100755 --- a/osx/makebundle.sh +++ b/osx/makebundle.sh @@ -98,6 +98,19 @@ else perl -0pi -e 's|(/immodules/)\*\.dylib|$1*.so|g; s|(/printbackends/)\*\.dylib|$1*.so|g; s|(/loaders/)\*\.dylib|$1*.so|g' "$BUNDLE_DEF" fi +# Some staged builds omit GTK runtime module directories entirely +# (for example stripped-down CI artifacts). Remove bundle entries for +# missing globs so gtk-mac-bundler does not abort. +if ! find "$BUNDLE_PREFIX/lib/gtk-3.0" -type f -path "*/immodules/*.${GTK_MODULE_EXT}" -print -quit 2>/dev/null | grep -q .; then + perl -0pi -e 's|\n\s*\s*\$\{prefix\}/lib/\$\{gtkdir\}/\$\{pkg:\$\{gtk\}:gtk_binary_version\}/immodules/\*\.(?:so|dylib)\s*\n|\n|g' "$BUNDLE_DEF" +fi +if ! find "$BUNDLE_PREFIX/lib/gtk-3.0" -type f -path "*/printbackends/*.${GTK_MODULE_EXT}" -print -quit 2>/dev/null | grep -q .; then + perl -0pi -e 's|\n\s*\s*\$\{prefix\}/lib/\$\{gtkdir\}/\$\{pkg:\$\{gtk\}:gtk_binary_version\}/printbackends/\*\.(?:so|dylib)\s*\n|\n|g' "$BUNDLE_DEF" +fi +if ! find "$BUNDLE_PREFIX/lib/gdk-pixbuf-2.0" -type f -path "*/loaders/*.${GTK_MODULE_EXT}" -print -quit 2>/dev/null | grep -q .; then + perl -0pi -e 's|\n\s*\s*\$\{prefix\}/lib/gdk-pixbuf-2\.0/\$\{pkg:gdk-pixbuf-2\.0:gdk_pixbuf_binary_version\}/loaders/\*\.(?:so|dylib)\s*\n|\n|g' "$BUNDLE_DEF" +fi + # Keep Info.plist generation deterministic by always rendering from template # using a single, explicit version source.