Ticket #13377: libass.patch

File libass.patch, 13.2 KB (added by mspieth, 5 years ago)

Initial build patch for libass support

  • android/makelibs.sh

    diff --git a/android/makelibs.sh b/android/makelibs.sh
    index d3d0ef5..8cf56ed 100755
    a b while : ; do 
    5959                        ;;
    6060                ass)
    6161                        shift
    62                         #BUILD_FONTCONFIG=1
     62                        BUILD_FONTCONFIG=1
    6363                        BUILD_FRIBIDI=1
    6464                        BUILD_ASS=1
    6565                        ;;
    while : ; do 
    145145                        BUILD_VORBIS=1
    146146                        BUILD_OGG=1
    147147                        BUILD_FRIBIDI=1
    148                         #BUILD_FONTCONFIG=1
     148                        BUILD_FONTCONFIG=1
    149149                        BUILD_ASS=1
    150150                        BUILD_LIBXML2=1
    151151                        #BUILD_LIBXSLT=1
    while : ; do 
    212212        esac
    213213done
    214214
    215 QTMAJORVERSION=5.10
    216 QTVERSION=$QTMAJORVERSION.1
     215QTMAJORVERSION=5.11
     216QTVERSION=$QTMAJORVERSION.3
    217217export ANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL:-21}
    218218export ANDROID_SDK_PLATFORM=android-$ANDROID_NATIVE_API_LEVEL
    219219export ANDROID_NDK_PLATFORM=android-$ANDROID_NATIVE_API_LEVEL
    MISSINGHEADERS=" 
    286286                "
    287287
    288288copy_missing_sys_headers() {
     289        mkdir -p $INSTALLROOT/include/arpa
     290        cat <<-END > $INSTALLROOT/include/arpa/inet.h
     291        #include_next <arpa/inet.h>
     292        #include <linux/in6.h>
     293        END
    289294        if [ "$TOOLCHAIN_SUFFIX" != "old" ]; then
    290295                mkdir -p $INSTALLROOT/include/sys || true
    291296                for header in $MISSINGHEADERS ; do
    STRIP=${CROSSPATH2}strip \ 
    534539        CFLAGS="--sysroot=$SYSROOT $ANDROID_API_DEF" \
    535540        CPP=${CROSSPATH2}cpp \
    536541        CPPFLAGS=$CFLAGS \
    537         ./configure --build=x86_64 --host=$BUILD_HOST --prefix=$INSTALLROOT --with-sysroot=$SYSROOT --enable-shared=no --enable-static=yes &&
     542        ./configure --build=x86_64 --host=$BUILD_HOST --prefix=$INSTALLROOT --with-sysroot=$SYSROOT --enable-shared=yes --enable-static=yes &&
    538543        make $MAKEDEFS install-lib
    539544        ERR=$?
    540545PATH=$OPATH
    CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \ 
    10061011        --without-crypto \
    10071012        --disable-libmount \
    10081013        --with-pcre=no \
    1009         --disable-shared \
     1014        --enable-shared \
    10101015        --enable-static &&
    10111016        make -j$NCPUS &&
    10121017        make install
    CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \ 
    11181123        --disable-curses \
    11191124        --disable-csharp \
    11201125        --disable-nls \
    1121         --disable-shared \
     1126        --enable-shared \
    11221127        --enable-static \
    11231128        &&
    11241129        make -j$NCPUS &&
    setup_lib https://github.com/freedesktop/fontconfig/archive/$FONTCONFIG_VERSION. 
    11861191pushd $FONTCONFIG
    11871192OPATH=$PATH
    11881193
     1194{ patch -p1 -Nt || true; } <<'END'
     1195diff --git a/src/fcobjs.c b/src/fcobjs.c
     1196index 16ff31c..d8bf79d 100644
     1197--- a/src/fcobjs.c
     1198+++ b/src/fcobjs.c
     1199@@ -25,10 +25,10 @@
     1200 #include "fcint.h"
     1201 
     1202 static unsigned int
     1203-FcObjectTypeHash (register const char *str, register unsigned int len);
     1204+FcObjectTypeHash (register const char *str, register size_t len);
     1205 
     1206 static const struct FcObjectTypeInfo *
     1207-FcObjectTypeLookup (register const char *str, register unsigned int len);
     1208+FcObjectTypeLookup (register const char *str, register size_t len);
     1209 
     1210 #include "fcobjshash.h"
     1211 
     1212END
    11891213if [ $CLEAN == 1 ]; then
     1214        # move generated fcblanks.h aside before clean
     1215        # do unicode.org does not have to be spammed
     1216        # as it looks like it has a DOS filter
     1217        mv fc-blanks/fcblanks.h{,.1} || true
    11901218        make distclean || true
     1219        mv fc-blanks/fcblanks.h{.1,} || true
    11911220fi
    11921221
    11931222#local CPUOPT=
    fi 
    12001229PKG_CONFIG_PATH=$PKG_CONFIG_LIBDIR/pkgconfig \
    12011230CFLAGS="-isysroot $SYSROOT $CPUOPT $ANDROID_API_DEF" \
    12021231CXXFLAGS="-isysroot $SYSROOT $CPUOPT $ANDROID_API_DEF" \
    1203 LDFLAGS="-L$INSTALLROOT/lib" \
     1232LDFLAGS="-L$INSTALLROOT/lib -Wl,-rpath-link=$SYSROOT/usr/lib -Wl,-rpath-link=$INSTALLROOT/lib" \
    12041233RANLIB=${CROSSPATH2}ranlib \
    12051234OBJDUMP=${CROSSPATH2}objdump \
    12061235AR=${CROSSPATH2}ar \
    CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \ 
    12131242        --host=$MY_ANDROID_NDK_TOOLS_PREFIX \
    12141243        --prefix=$INSTALLROOT \
    12151244        --with-sysroot=$SYSROOT \
     1245        --with-gnu-ld=yes \
     1246        --disable-docs \
    12161247        --disable-dependency-tracking \
    12171248        --enable-libxml2 \
    1218         --disable-shared \
     1249        --enable-shared \
    12191250        --enable-static &&
    12201251        make -j$NCPUS &&
    12211252        make install
    CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \ 
    12671298        --without-crypto \
    12681299        --disable-libmount \
    12691300        --with-pcre=no \
    1270         --disable-shared \
     1301        --enable-shared \
    12711302        --enable-static &&
    12721303        make -j$NCPUS &&
    12731304        make install
    CPP="$CROSSPATH/$MY_ANDROID_NDK_TOOLS_PREFIX-cpp" \ 
    13141345        --build=x86_64-linux-gnu \
    13151346        --host=$MY_ANDROID_NDK_TOOLS_PREFIX \
    13161347        --prefix=$INSTALLROOT \
    1317         --with-sysroot=$SYSROOT \
    13181348        --disable-dependency-tracking \
    13191349        --disable-require-system-font-provider \
    1320         --disable-shared \
     1350        --enable-shared \
    13211351        --enable-static &&
    13221352        make -j$NCPUS &&
    13231353        make install
    13241354        ERR=$?
    13251355
     1356        #--with-sysroot=$SYSROOT \
     1357
    13261358PATH=$OPATH
    13271359unset OPATH
    13281360popd
    touch config/icucross.inc 
    14441476        --disable-tools \
    14451477        --disable-tests \
    14461478        --disable-samples \
    1447         --disable-shared \
     1479        --enable-shared \
    14481480        --enable-static
    14491481ERR=$?
    14501482
    else 
    16761708        rm qtwebkit || true
    16771709fi
    16781710
    1679 if [ ${QTMAJORVERSION%.*} -ge 6 -o ${QTMAJORVERSION#*.} -gt 9 ]; then
     1711if [ ${QTVERSION} == "5.11.3" -o ${QTVERSION} == "5.12.0" ]; then
     1712echo  5.11.3 patch is different enough to warrant its own section
     1713{ patch -p1 -Nt --no-backup-if-mismatch -r - || true; } <<'END'
     1714diff --git a/qtbase/mkspecs/common/android-base-head.conf b/qtbase/mkspecs/common/android-base-head.conf
     1715index 9be6111..ebd3982 100644
     1716--- a/qtbase/mkspecs/common/android-base-head.conf
     1717+++ b/qtbase/mkspecs/common/android-base-head.conf
     1718@@ -49,8 +49,9 @@ else: ANDROID_ARCHITECTURE = arm
     1719 
     1720 !equals(NDK_TOOLCHAIN_VERSION, 4.4.3): ANDROID_CXXSTL_SUFFIX = -$$NDK_TOOLCHAIN_VERSION
     1721 
     1722+NDK_TOOLCHAIN_PATH = $$(ANDROID_NDK_TOOLCHAIN_PATH)
     1723 NDK_TOOLCHAIN = $$NDK_TOOLCHAIN_PREFIX-$$NDK_TOOLCHAIN_VERSION
     1724-NDK_TOOLCHAIN_PATH = $$NDK_ROOT/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$NDK_HOST
     1725+isEmpty(NDK_TOOLCHAIN_PATH): NDK_TOOLCHAIN_PATH = $$NDK_ROOT/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$NDK_HOST
     1726 
     1727 
     1728 ANDROID_SDK_ROOT = $$(ANDROID_SDK_ROOT)
     1729@@ -68,7 +69,8 @@ isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) {
     1730 CONFIG += $$ANDROID_PLATFORM
     1731 QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
     1732 
     1733-ANDROID_PLATFORM_ROOT_PATH  = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
     1734+ANDROID_PLATFORM_ROOT_PATH = $$(ANDROID_NDK_PLATFORM_ROOT_PATH)
     1735+isEmpty(ANDROID_PLATFORM_ROOT_PATH): ANDROID_PLATFORM_ROOT_PATH  = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
     1736 ANDROID_PLATFORM_PATH  = $$ANDROID_PLATFORM_ROOT_PATH/usr
     1737 
     1738 equals(ANDROID_TARGET_ARCH, x86_64)|equals(ANDROID_TARGET_ARCH, mips64): \
     1739diff --git a/qtbase/mkspecs/features/android/android.prf b/qtbase/mkspecs/features/android/android.prf
     1740index 1dc8f87..e796f4a 100644
     1741--- a/qtbase/mkspecs/features/android/android.prf
     1742+++ b/qtbase/mkspecs/features/android/android.prf
     1743@@ -4,11 +4,21 @@ contains(TEMPLATE, ".*app") {
     1744         QMAKE_LFLAGS += -Wl,-soname,$$shell_quote($$TARGET)
     1745 
     1746         android_install {
     1747-            target.path=/libs/$$ANDROID_TARGET_ARCH/
     1748+            ANDROID_INSTALL_LIBS = $$(ANDROID_INSTALL_LIBS)
     1749+            isEmpty(ANDROID_INSTALL_LIBS) {
     1750+                target.path=/libs/$$ANDROID_TARGET_ARCH/
     1751+            } else {
     1752+                target.path=$$ANDROID_INSTALL_LIBS/
     1753+            }
     1754             INSTALLS *= target
     1755         }
     1756     }
     1757 } else: contains(TEMPLATE, "lib"):!static:!QTDIR_build:android_install {
     1758-    target.path = /libs/$$ANDROID_TARGET_ARCH/
     1759+    ANDROID_INSTALL_LIBS = $$(ANDROID_INSTALL_LIBS)
     1760+    isEmpty(ANDROID_INSTALL_LIBS) {
     1761+        target.path=/libs/$$ANDROID_TARGET_ARCH/
     1762+    } else {
     1763+        target.path=$$ANDROID_INSTALL_LIBS/
     1764+    }
     1765     INSTALLS *= target
     1766 }
     1767diff --git a/qtbase/src/android/templates/build.gradle b/qtbase/src/android/templates/build.gradle
     1768index 3a3e0cd..f98eed7 100644
     1769--- a/qtbase/src/android/templates/build.gradle
     1770+++ b/qtbase/src/android/templates/build.gradle
     1771@@ -41,9 +41,12 @@ android {
     1772     sourceSets {
     1773         main {
     1774             manifest.srcFile 'AndroidManifest.xml'
     1775-            java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
     1776-            aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
     1777-            res.srcDirs = [qt5AndroidDir + '/res', 'res']
     1778+            //java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
     1779+            java.srcDirs = ['src', 'java']
     1780+            //aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
     1781+            aidl.srcDirs = ['src', 'aidl']
     1782+            //res.srcDirs = [qt5AndroidDir + '/res', 'res']
     1783+            res.srcDirs = ['res']
     1784             resources.srcDirs = ['src']
     1785             renderscript.srcDirs = ['src']
     1786             assets.srcDirs = ['assets']
     1787diff --git a/qtbase/src/tools/androiddeployqt/main.cpp b/qtbase/src/tools/androiddeployqt/main.cpp
     1788index 918bc0f..d6bbf8a 100644
     1789--- a/qtbase/src/tools/androiddeployqt/main.cpp
     1790+++ b/qtbase/src/tools/androiddeployqt/main.cpp
     1791@@ -984,8 +984,8 @@ bool copyAndroidTemplate(const Options &options)
     1792     if (!copyAndroidTemplate(options, QLatin1String("/src/android/templates")))
     1793         return false;
     1794 
     1795-    if (options.gradle)
     1796-        return true;
     1797+    //if (options.gradle)
     1798+    //    return true;
     1799 
     1800     return copyAndroidTemplate(options, QLatin1String("/src/android/java"));
     1801 }
     1802diff --git a/qtbase/src/3rdparty/forkfd/forkfd.c b/qtbase/src/3rdparty/forkfd/forkfd.c
     1803index 7f02ee9..74de1a7 100644
     1804--- a/qtbase/src/3rdparty/forkfd/forkfd.c
     1805+++ b/qtbase/src/3rdparty/forkfd/forkfd.c
     1806@@ -45,8 +45,10 @@
     1807 #include <time.h>
     1808 #include <unistd.h>
     1809 
     1810-#ifdef __linux__
     1811-#  define HAVE_WAIT4    1
     1812+#if defined(__linux__)
     1813+#  if __ANDROID_API__ > 19
     1814+#    define HAVE_WAIT4    1
     1815+#  endif
     1816 #  if defined(__BIONIC__) || (defined(__GLIBC__) && (__GLIBC__ << 8) + __GLIBC_MINOR__ >= 0x208 && \
     1817        (!defined(__UCLIBC__) || ((__UCLIBC_MAJOR__ << 16) + (__UCLIBC_MINOR__ << 8) + __UCLIBC_SUBLEVEL__ > 0x90201)))
     1818 #    include <sys/eventfd.h>
     1819END
     1820elif [ ${QTMAJORVERSION%.*} -ge 6 -o ${QTMAJORVERSION#*.} -gt 9 ]; then
    16801821# 5.10 patch is different enough to warrant its own section
    16811822{ patch -p1 -Nt --no-backup-if-mismatch -r - || true; } <<'END'
    16821823diff --git a/qtbase/mkspecs/common/android-base-head.conf b/qtbase/mkspecs/common/android-base-head.conf
    if [ $QTVERSION_WK != $QTVERSION ]; then 
    19812122        echo "include/QtWebKitWidgets/qtwebkitwidgetsversion.h"
    19822123        sed -i 's/\(#define QTWEBKITWIDGETS_VERSION_STR "\)[^"]*\("\)/\1'"$QTVERSION\2/; s/\(#define QTWEBKITWIDGETS_VERSION 0x\).*$/\1$QTWK_MACHVER/;" include/QtWebKitWidgets/qtwebkitwidgetsversion.h
    19832124        echo ".qmake.conf"
    1984         sed -i 's/\(#define MODULE_VERSION "\).*$/\1'"$QTVERSION/;" .qmake.conf
     2125        #MODULE_VERSION = 5.9.1
     2126        sed -i 's/\(MODULE_VERSION = \).*$/\1'"$QTVERSION/;" .qmake.conf
    19852127fi
    19862128
    19872129popd
    build_qt5() { 
    21652307        make -j$NCPUS $THINGS_TO_MAKE || ERR=$?
    21662308        #make -j$NCPUS module-qtscript-install_subtargets
    21672309        #make -j$NCPUS module-qtandroidextras-install_subtargets
     2310        echo "Build Completed build_qt5 $ERR"
    21682311        [ $ERR == 0 ] && \
    21692312        make -j$NCPUS install \
    21702313        || ERR=$?
     2314        if [ $ERR -eq 2 ]; then
     2315                ERR=0
     2316        fi
    21712317        #make -j$NCPUS module-qtwebengine-install_subtargets
    21722318        true
    21732319        #make -C qtwebkit/Source -f Makefile.api INSTALL_ROOT="$INSTALLROOT" install &&
    build_qt5() { 
    21852331        PATH=$OPATH
    21862332        unset OPATH
    21872333        popd
     2334        echo "All Completed build_qt5 $ERR"
    21882335        return $ERR
    21892336}
    21902337
    build_webkit_59() { 
    22242371                || ERR=$?
    22252372        set +x
    22262373
     2374        #make -j$NCPUS module-qtwebkit-install_subtargets
    22272375        #make -j$NCPUS module-qtwebengine-install_subtargets
    22282376        true
    22292377        #make -C qtwebkit/Source -f Makefile.api INSTALL_ROOT="$INSTALLROOT" install &&
  • android/mythbuild.sh

    diff --git a/android/mythbuild.sh b/android/mythbuild.sh
    index c72314b..cce225e 100755
    a b export NCPUS=$(nproc) 
    1919
    2020[ -e make.inc ] && source make.inc
    2121
    22 export ANDROID_NATIVE_API_LEVEL=21
     22export ANDROID_NATIVE_API_LEVEL=23
    2323export ANDROID_TARGET_ARCH=armeabi-v7a
    2424export ANDROID_NDK_TOOLS_PREFIX=arm-linux-androideabi
    2525if [ "$USE_CRYSTAX" == 1 ]; then
    MYMYTHBUILDPATH=$MYMYTHBUILDBASEPATH/mythtv 
    158158
    159159export PKG_CONFIG_DIR=
    160160export PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig
     161#export PKG_CONFIG_PATH=$PKG_CONFIG_LIBDIR
    161162export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT
    162163export PKG_CONFIG_SYSROOT_DIR=
    163164
    function bundle_apk() { 
    274275        for i in $MYTHINSTALLROOT/lib/libmythpluginmyth{archive,netvision,news,browser,game,music,zoneminder}.so \
    275276                $MYTHINSTALLROOT/lib/libmyth{archivehelper,fillnetvision}.so \
    276277                $MYTHINSTALLROOT/lib/lib{ogg,vorbis,vorbisfile,vorbisenc,FLAC}.so \
     278                $QTBASE/lib/libQt5{OpenGL,WebKitWidgets,WebKit,Sensors,Positioning,MultimediaWidgets,Multimedia,PrintSupporti,Quick,Qml,WebChannel}.so \
    277279                ; do
    278280                if [ -e "$i" ]; then
    279281                        cp "$i" "$MYTHINSTALLROOT/libs/$ANDROID_TARGET_ARCH/"
    $MYTHTVSRC/configure \ 
    364366        --sysroot=$SYSROOT \
    365367        --extra-cflags="$CRYSTAX_CFLAGS -D__ANDROID_API__=$ANDROID_NATIVE_API_LEVEL -DANDROID -I$INSTALLROOT/include -I$QTBASE/include $IGNOREDEFINES $NEONFLAGS " \
    366368        --extra-cxxflags=" -D__ANDROID_API__=$ANDROID_NATIVE_API_LEVEL -DANDROID -I$INSTALLROOT/include -I$QTBASE/include $IGNOREDEFINES $NEONFLAGS " \
    367         --extra-ldflags="$CRYSTAX_LIBS" \
     369        --extra-ldflags="$CRYSTAX_LIBS -Wl,-rpath-link=$INSTALLROOT/lib -Wl,-rpath-link=$SYSROOT/usr/lib" \
    368370        --qmake=$QTBASE/bin/qmake \
    369371        --qmakespecs="android-g++ $EXTRASPECS" \
    370372        --disable-qtdbus \
    $MYTHTVSRC/configure \ 
    395397        #--disable-opengl-themepainter \
    396398        #--disable-qtwebkit \
    397399        #--arch=arm7a --cpu=$CPU \
     400        #--disable-libxml2 \
    398401
    399402fi
    400403