macgstcopy: Check for both .dylib and .so extensions for plugins

Require at least coreelements to be found in plugins directory
This commit is contained in:
Jonas Kvinge 2023-09-26 17:04:20 +02:00
parent 2c0541fb79
commit 6b8a816ce6
1 changed files with 82 additions and 69 deletions

View File

@ -23,6 +23,26 @@ if [ "${GST_PLUGIN_PATH}" = "" ]; then
exit 1 exit 1
fi fi
if ! [ -e "${GIO_EXTRA_MODULES}/libgiognutls.so" ] && ! [ -e "${GIO_EXTRA_MODULES}/libgioopenssl.so" ]; then
echo "Error: Missing ${GIO_EXTRA_MODULES}/libgiognutls.so or ${GIO_EXTRA_MODULES}/libgioopenssl.so."
exit 1
fi
if ! [ -e "${GST_PLUGIN_SCANNER}" ]; then
echo "Error: Missing ${GST_PLUGIN_SCANNER}"
exit 1
fi
if ! [ -d "${GST_PLUGIN_PATH}" ]; then
echo "Error: GStreamer plugins path ${GST_PLUGIN_PATH} does not exist."
exit 1
fi
if ! [ -e "${GST_PLUGIN_PATH}/libgstcoreelements.so" ] && ! [ -e "${GST_PLUGIN_PATH}/libgstcoreelements.dylib" ]; then
echo "Error: Missing libgstcoreelements.{so,dylib} in GStreamer plugins path ${GST_PLUGIN_PATH}."
exit 1
fi
mkdir -p "${bundledir}/Contents/PlugIns/gio-modules" || exit 1 mkdir -p "${bundledir}/Contents/PlugIns/gio-modules" || exit 1
mkdir -p "${bundledir}/Contents/PlugIns/gstreamer" || exit 1 mkdir -p "${bundledir}/Contents/PlugIns/gstreamer" || exit 1
@ -38,82 +58,75 @@ else
echo "Warning: Missing ${GIO_EXTRA_MODULES}/libgioopenssl.so" echo "Warning: Missing ${GIO_EXTRA_MODULES}/libgioopenssl.so"
fi fi
if ! [ -e "${GST_PLUGIN_SCANNER}" ]; then
echo "Error: Missing ${GST_PLUGIN_SCANNER}"
exit 1
fi
cp -v -f "${GST_PLUGIN_SCANNER}" "${bundledir}/Contents/PlugIns/" || exit 1 cp -v -f "${GST_PLUGIN_SCANNER}" "${bundledir}/Contents/PlugIns/" || exit 1
if ! [ -d "${GST_PLUGIN_PATH}" ]; then
echo "Error: GStreamer plugins path ${GST_PLUGIN_PATH} does not exist."
exit 1
fi
gst_plugins=" gst_plugins="
libgstaes.dylib libgstaes
libgstaiff.dylib libgstaiff
libgstapetag.dylib libgstapetag
libgstapp.dylib libgstapp
libgstasf.dylib libgstasf
libgstasfmux.dylib libgstasfmux
libgstaudioconvert.dylib libgstaudioconvert
libgstaudiofx.dylib libgstaudiofx
libgstaudiomixer.dylib libgstaudiomixer
libgstaudioparsers.dylib libgstaudioparsers
libgstaudiorate.dylib libgstaudiorate
libgstaudioresample.dylib libgstaudioresample
libgstaudiotestsrc.dylib libgstaudiotestsrc
libgstautodetect.dylib libgstautodetect
libgstbs2b.dylib libgstbs2b
libgstcdio.dylib libgstcdio
libgstcoreelements.dylib libgstcoreelements
libgstdash.dylib libgstdash
libgstequalizer.dylib libgstequalizer
libgstfaac.dylib libgstfaac
libgstfaad.dylib libgstfaad
libgstfdkaac.dylib libgstfdkaac
libgstflac.dylib libgstflac
libgstgio.dylib libgstgio
libgsthls.dylib libgsthls
libgsticydemux.dylib libgsticydemux
libgstid3demux.dylib libgstid3demux
libgstid3tag.dylib libgstid3tag
libgstisomp4.dylib libgstisomp4
libgstlame.dylib libgstlame
libgstlibav.dylib libgstlibav
libgstmpg123.dylib libgstmpg123
libgstmusepack.dylib libgstmusepack
libgstogg.dylib libgstogg
libgstopenmpt.dylib libgstopenmpt
libgstopus.dylib libgstopus
libgstopusparse.dylib libgstopusparse
libgstosxaudio.dylib libgstosxaudio
libgstpbtypes.dylib libgstpbtypes
libgstplayback.dylib libgstplayback
libgstreplaygain.dylib libgstreplaygain
libgstrtp.dylib libgstrtp
libgstrtsp.dylib libgstrtsp
libgstsoup.dylib libgstsoup
libgstspectrum.dylib libgstspectrum
libgstspeex.dylib libgstspeex
libgsttaglib.dylib libgsttaglib
libgsttcp.dylib libgsttcp
libgsttwolame.dylib libgsttwolame
libgsttypefindfunctions.dylib libgsttypefindfunctions
libgstudp.dylib libgstudp
libgstvolume.dylib libgstvolume
libgstvorbis.dylib libgstvorbis
libgstwavenc.dylib libgstwavenc
libgstwavpack.dylib libgstwavpack
libgstwavparse.dylib libgstwavparse
libgstxingmux.dylib libgstxingmux
" "
gst_plugins=$(echo "$gst_plugins" | tr '\n' ' ' | sed -e 's/^ //g' | sed -e 's/ / /g') gst_plugins=$(echo "$gst_plugins" | tr '\n' ' ' | sed -e 's/^ //g' | sed -e 's/ / /g')
for gst_plugin in $gst_plugins; do for gst_plugin in $gst_plugins; do
if [ -e "${GST_PLUGIN_PATH}/${gst_plugin}" ]; then if [ -e "${GST_PLUGIN_PATH}/${gst_plugin}.dylib" ]; then
cp -v -f "${GST_PLUGIN_PATH}/${gst_plugin}" "${bundledir}/Contents/PlugIns/gstreamer/" || exit 1 cp -v -f "${GST_PLUGIN_PATH}/${gst_plugin}.dylib" "${bundledir}/Contents/PlugIns/gstreamer/" || exit 1
elif [ -e "${GST_PLUGIN_PATH}/${gst_plugin}.so" ]; then
cp -v -f "${GST_PLUGIN_PATH}/${gst_plugin}.so" "${bundledir}/Contents/PlugIns/gstreamer/" || exit 1
else else
echo "Warning: Missing gstreamer plugin ${gst_plugin}" echo "Warning: Missing gstreamer plugin ${gst_plugin}."
fi fi
done done