mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 16:25:57 +00:00
desktop: video and audio players (#3052)
* desktop: video and audio players * making player working without preinstalled VLC * mac support * don't use vlc lib when not needed * updated jna version * changes in script * video player lazy loading * mac script changes * updated build gradle for preserving atrributes of file while copying * apply the same file stats on libs to make VLC checker happy * updated script * changes --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
6de0ed4766
commit
2d7655281f
@@ -23,3 +23,4 @@ rm -rf apps/multiplatform/desktop/build/cmake
|
||||
mkdir -p apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
cp -r $BUILD_DIR/build/deps apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
cp $BUILD_DIR/build/libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
scripts/desktop/prepare-vlc-linux.sh
|
||||
|
||||
@@ -95,3 +95,4 @@ rm -rf apps/multiplatform/desktop/build/cmake
|
||||
mkdir -p apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
cp -r $BUILD_DIR/build/deps apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
cp $BUILD_DIR/build/libHSsimplex-chat-*-inplace-ghc*.$LIB_EXT apps/multiplatform/common/src/commonMain/cpp/desktop/libs/$OS-$ARCH/
|
||||
scripts/desktop/prepare-vlc-mac.sh
|
||||
|
||||
74
scripts/desktop/prepare-vlc-linux.sh
Executable file
74
scripts/desktop/prepare-vlc-linux.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
function readlink() {
|
||||
echo "$(cd "$(dirname "$1")"; pwd -P)"
|
||||
}
|
||||
root_dir="$(dirname "$(dirname "$(readlink "$0")")")"
|
||||
vlc_dir=$root_dir/apps/multiplatform/common/src/commonMain/cpp/desktop/libs/linux-x86_64/deps/vlc
|
||||
|
||||
mkdir $vlc_dir || exit 0
|
||||
|
||||
|
||||
cd /tmp
|
||||
mkdir tmp 2>/dev/null || true
|
||||
cd tmp
|
||||
curl https://github.com/cmatomic/VLCplayer-AppImage/releases/download/3.0.11.1/VLC_media_player-3.0.11.1-x86_64.AppImage -L -o appimage
|
||||
chmod +x appimage
|
||||
./appimage --appimage-extract
|
||||
cp -r squashfs-root/usr/lib/* $vlc_dir
|
||||
cd ../
|
||||
rm -rf tmp
|
||||
exit 0
|
||||
|
||||
|
||||
# This is currently unneeded
|
||||
cd /tmp
|
||||
(
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
curl http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/libvlc5_3.0.9.2-1_amd64.deb -o libvlc
|
||||
ar p libvlc data.tar.xz > data.tar.xz
|
||||
tar -xvf data.tar.xz
|
||||
mv usr/lib/x86_64-linux-gnu/libvlc.so{.5,}
|
||||
cp usr/lib/x86_64-linux-gnu/libvlc.so* $vlc_dir
|
||||
cd ../
|
||||
rm -rf tmp
|
||||
)
|
||||
|
||||
(
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
curl http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/libvlccore9_3.0.9.2-1_amd64.deb -o libvlccore
|
||||
ar p libvlccore data.tar.xz > data.tar.xz
|
||||
tar -xvf data.tar.xz
|
||||
cp usr/lib/x86_64-linux-gnu/libvlccore.so* $vlc_dir
|
||||
cd ../
|
||||
rm -rf tmp
|
||||
)
|
||||
|
||||
(
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
curl http://mirrors.edge.kernel.org/ubuntu/pool/universe/v/vlc/vlc-plugin-base_3.0.9.2-1_amd64.deb -o plugins
|
||||
ar p plugins data.tar.xz > data.tar.xz
|
||||
tar -xvf data.tar.xz
|
||||
find usr/lib/x86_64-linux-gnu/vlc/plugins/ -name "lib*.so*" -exec patchelf --set-rpath '$ORIGIN/../../' {} \;
|
||||
cp -r usr/lib/x86_64-linux-gnu/vlc/{libvlc*,plugins} $vlc_dir
|
||||
cd ../
|
||||
rm -rf tmp
|
||||
)
|
||||
|
||||
(
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
curl http://archive.ubuntu.com/ubuntu/pool/main/libi/libidn/libidn11_1.33-2.2ubuntu2_amd64.deb -o idn
|
||||
ar p idn data.tar.xz > data.tar.xz
|
||||
tar -xvf data.tar.xz
|
||||
cp lib/x86_64-linux-gnu/lib* $vlc_dir
|
||||
cd ../
|
||||
rm -rf tmp
|
||||
)
|
||||
|
||||
find $vlc_dir -maxdepth 1 -name "lib*.so*" -exec patchelf --set-rpath '$ORIGIN' {} \;
|
||||
40
scripts/desktop/prepare-vlc-mac.sh
Executable file
40
scripts/desktop/prepare-vlc-mac.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
ARCH="${1:-`uname -a | rev | cut -d' ' -f1 | rev`}"
|
||||
if [ "$ARCH" == "arm64" ]; then
|
||||
ARCH=aarch64
|
||||
vlc_arch=arm64
|
||||
else
|
||||
vlc_arch=intel64
|
||||
fi
|
||||
vlc_version=3.0.19
|
||||
|
||||
function readlink() {
|
||||
echo "$(cd "$(dirname "$1")"; pwd -P)"
|
||||
}
|
||||
|
||||
root_dir="$(dirname "$(dirname "$(readlink "$0")")")"
|
||||
vlc_dir=$root_dir/apps/multiplatform/common/src/commonMain/cpp/desktop/libs/mac-$ARCH/deps/vlc
|
||||
#rm -rf $vlc_dir
|
||||
mkdir -p $vlc_dir/vlc || exit 0
|
||||
|
||||
cd /tmp
|
||||
mkdir tmp 2>/dev/null || true
|
||||
cd tmp
|
||||
curl https://github.com/simplex-chat/vlc/releases/download/v$vlc_version/vlc-macos-$ARCH.zip -L -o vlc
|
||||
unzip -oqq vlc
|
||||
install_name_tool -add_rpath "@loader_path/VLC.app/Contents/MacOS/lib" vlc-cache-gen
|
||||
cd VLC.app/Contents/MacOS/lib
|
||||
for lib in $(ls *.dylib); do install_name_tool -add_rpath "@loader_path" $lib 2> /dev/null || true; done
|
||||
cd ../plugins
|
||||
for lib in $(ls *.dylib); do
|
||||
install_name_tool -add_rpath "@loader_path/../../" $lib 2> /dev/null || true
|
||||
done
|
||||
cd ..
|
||||
../../../vlc-cache-gen plugins
|
||||
cp lib/* $vlc_dir/
|
||||
cp -r -p plugins/ $vlc_dir/vlc/plugins
|
||||
cd ../../../../
|
||||
rm -rf tmp
|
||||
Reference in New Issue
Block a user