Files
jellyfin-ffmpeg/builder/scripts.d/50-libbluray.sh
T
2026-05-28 10:57:06 +08:00

65 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
SCRIPT_REPO="https://code.videolan.org/videolan/libbluray.git"
SCRIPT_COMMIT="4dfb9b0123b006ce5d66592dc8058f61e5c0cdc8"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libbluray
cd libbluray
if [[ $TARGET == mac* ]]; then
gsed -i 's/dec_init/libbluray_dec_init/g' src/libbluray/disc/*.c src/libbluray/disc/*.h
# stop the static library from exporting symbols when linked into a shared lib
gsed -i 's/-DBLURAY_API_EXPORT/-DBLURAY_API_EXPORT_DISABLED/g' src/meson.build
else
sed -i 's/dec_init/libbluray_dec_init/g' src/libbluray/disc/*.c src/libbluray/disc/*.h
# stop the static library from exporting symbols when linked into a shared lib
sed -i 's/-DBLURAY_API_EXPORT/-DBLURAY_API_EXPORT_DISABLED/g' src/meson.build
fi
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--buildtype=release
-Ddefault_library=static
-Denable_docs=false
-Denable_tools=false
-Denable_devtools=false
-Denable_examples=false
-Dbdj_jar=disabled
-Dfontconfig=enabled
-Dfreetype=enabled
-Dlibxml2=enabled
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
elif [[ $TARGET == mac* ]]; then
:
else
echo "Unknown target"
return -1
fi
meson setup "${myconf[@]}" ..
ninja -j$(nproc)
ninja install
}
ffbuild_configure() {
echo --enable-libbluray
}
ffbuild_unconfigure() {
echo --disable-libbluray
}