1
0
mirror of https://github.com/foobnix/LibreraReader.git synced 2025-10-06 00:02:43 +02:00
Files
LibreraReader/Builder/link_to_mupdf_1.23.7.sh
2025-07-13 13:05:41 +03:00

171 lines
4.8 KiB
Bash
Executable File

#!/usr/bin/env bash
#. ~/.profile
# get the location of this script, we will checkout mupdf into the same directory
BUILD_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd $BUILD_DIR
VERSION_TAG="1.23.7"
MUPDF_FOLDER=mupdf-$VERSION_TAG
if [ "$1" == "fdroid" ]; then
MUPDF_FOLDER=$MUPDF_FOLDER-fdroid
fi
git clone --recursive git://git.ghostscript.com/mupdf.git --branch $VERSION_TAG $MUPDF_FOLDER
MUPDF_ROOT=$BUILD_DIR/$MUPDF_FOLDER
MUPDF_JAVA=$MUPDF_ROOT/platform/librera
mkdir -p $MUPDF_JAVA/jni
SRC=jni/~mupdf-$VERSION_TAG
DEST=$MUPDF_ROOT/source
LIBS=$BUILD_DIR/../app/src/main/jniLibs
echo "MUPDF :" $VERSION_TAG
echo "================== "
mkdir $SRC
mkdir $MUPDF_FOLDER
cd $MUPDF_FOLDER
echo "=================="
if [ "$1" == "clean" ]; then
git reset --hard && git clean -f -d
rm -rf generated
rm -rf build
make clean
fi
if [ ! -d "build/release" ]; then
make generate
make release
fi
cd ..
rm -rf $MUPDF_JAVA/jni
cp -Rp jni $MUPDF_JAVA/jni
mv $MUPDF_JAVA/jni/Android-$VERSION_TAG.mk $MUPDF_JAVA/jni/Android.mk
rm -r $LIBS
mkdir $LIBS
ln -s $MUPDF_JAVA/libs/armeabi-v7a $LIBS
ln -s $MUPDF_JAVA/libs/arm64-v8a $LIBS
ln -s $MUPDF_JAVA/libs/x86 $LIBS
ln -s $MUPDF_JAVA/libs/x86_64 $LIBS
if [ "$1" == "copy" ]; then
cp -rpv $DEST/html/css-apply.c $SRC/css-apply.c
cp -rpv $DEST/html/epub-doc.c $SRC/epub-doc.c
cp -rpv $DEST/html/html-layout.c $SRC/html-layout.c
cp -rpv $DEST/html/html-parse.c $SRC/html-parse.c
cp -rpv $DEST/cbz/mucbz.c $SRC/mucbz.c
cp -rpv $DEST/cbz/muimg.c $SRC/muimg.c
cp -rpv $DEST/fitz/load-webp.c $SRC/load-webp.c
cp -rpv $DEST/fitz/image.c $SRC/image.c
cp -rpv $DEST/fitz/unzip.c $SRC/unzip.c
cp -rpv $DEST/fitz/directory.c $SRC/directory.c
cp -rpv $DEST/fitz/xml.c $SRC/xml.c
cp -rpv $DEST/fitz/list-device.c $SRC/list-device.c
cp -rpv $DEST/fitz/image-imp.h $SRC/image-imp.h
cp -rpv $MUPDF_ROOT/include/mupdf/fitz/compressed-buffer.h $SRC/compressed-buffer.h
cp -rpv $MUPDF_ROOT/include/mupdf/fitz/context.h $SRC/context.h
else
cp -rpv $SRC/css-apply.c $DEST/html/css-apply.c
cp -rpv $SRC/epub-doc.c $DEST/html/epub-doc.c
cp -rpv $SRC/html-layout.c $DEST/html/html-layout.c
cp -rpv $SRC/html-parse.c $DEST/html/html-parse.c
cp -rpv $SRC/mucbz.c $DEST/cbz/mucbz.c
cp -rpv $SRC/muimg.c $DEST/cbz/muimg.c
cp -rpv $SRC/load-webp.c $DEST/fitz/load-webp.c
cp -rpv $SRC/image.c $DEST/fitz/image.c
cp -rpv $SRC/unzip.c $DEST/fitz/unzip.c
cp -rpv $SRC/directory.c $DEST/fitz/directory.c
cp -rpv $SRC/xml.c $DEST/fitz/xml.c
cp -rpv $SRC/list-device.c $DEST/fitz/list-device.c
cp -rpv $SRC/image-imp.h $DEST/fitz/image-imp.h
cp -rpv $SRC/compressed-buffer.h $MUPDF_ROOT/include/mupdf/fitz/compressed-buffer.h
cp -rpv $SRC/context.h $MUPDF_ROOT/include/mupdf/fitz/context.h
cd $MUPDF_JAVA
NDK_VERSION="28.2.13676358"
FDRIOD_NDK_VERSION="21.4.7075529"
if [ "$(uname)" == "Darwin" ]; then
FDRIOD_NDK_VERSION=$NDK_VERSION
fi
PATH1=/Users/ivanivanenko/Library/Android/sdk/ndk
PATH2=/home/dev/Android/Sdk/ndk
if [ ! -d "$PATH1/$NDK_VERSION" ]; then
echo "-- NDK ERROR --"
echo "$PATH1/$NDK_VERSION NDK NOT FOUND"
echo "----"
fi
if [ "$1" == "clean_ndk" ]; then
rm -rf $MUPDF_JAVA/obj
if [ "$2" == "fdroid" ]; then
$PATH1/$FDRIOD_NDK_VERSION/ndk-build clean
$PATH2/$FDRIOD_NDK_VERSION/ndk-build clean
else
$PATH1/$NDK_VERSION/ndk-build clean
$PATH2/$NDK_VERSION/ndk-build clean
fi
fi
if [ "$1" == "fdroid" ]; then
for NDK in "$PATH1/$FDRIOD_NDK_VERSION/ndk-build" "$PATH2/$FDRIOD_NDK_VERSION/ndk-build";
do
if [ -f "$NDK" ]; then
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=armeabi-v7a APP_PLATFORM=android-16 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=arm64-v8a APP_PLATFORM=android-16 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=x86 APP_PLATFORM=android-16 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=x86_64 APP_PLATFORM=android-16
echo "=================="
echo "NDK:" $NDK
echo "APP_PLATFORM=android-16"
fi
done
else
for NDK in "$PATH1/$NDK_VERSION/ndk-build" "$PATH2/$NDK_VERSION/ndk-build";
do
if [ -f "$NDK" ]; then
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=armeabi-v7a APP_PLATFORM=android-24 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=arm64-v8a APP_PLATFORM=android-24 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=x86 APP_PLATFORM=android-24 &
$NDK NDK_APPLICATION_MK=jni/Application.mk APP_ABI=x86_64 APP_PLATFORM=android-24
echo "=================="
echo "NDK:" $NDK
echo "APP_PLATFORM=android-24"
fi
done
fi
echo "=================="
echo "MUPDF:"$MUPDF_JAVA
echo "JNI:"$LIBS
echo "=================="
fi