[mythtv] Android build

David Engel david at istwok.net
Wed Apr 28 02:10:34 UTC 2021


On Wed, Apr 28, 2021 at 11:18:16AM +1000, Mark Spieth wrote:
> On 28/04/2021 10:54 am, John P Poet wrote:
> > 
> > 
> > On Tue, Apr 27, 2021 at 5:40 PM Mark Spieth <mark at digivation.com.au
> > <mailto:mark at digivation.com.au>> wrote:
> > 
> >     On 28/04/2021 6:52 am, John P Poet wrote:
> > >     Are the instructions @
> > >     https://github.com/MythTV/packaging/blob/master/android/Readme.md
> > >     <https://github.com/MythTV/packaging/blob/master/android/Readme.md>
> > >     up to date? I am trying to build latest master on a Fedora 34
> > >     machine.
> > > 
> > >     First error I got was that
> > >     Android/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-clang
> > >     did not exist. To fix that I soft linked the version specific file:
> > >     $ ln -s aarch64-linux-android29-clang aarch64-linux-android-clang
> > > 
> > >     Then `make SDK=29 MODE=arm64 libs` produces:
> > 
> >     I have not used the command line variables in a long time. SDK=29
> >     should not be necessary.
> > 
> >     In fact the SDK=XX mode may be broken. Not sure.
> > 
> >     Not sure about the override. shouldnt need to use the SDK=29 it
> >     should be the default. see setenv.sh.
> > 
> >     The NDK is still on 28. The layout changed and caused problems
> >     when I tried it.
> > 
> >     I have recently been trying QT5.15.2 but had some problems but
> >     there are a couple of fixes to the setenv script for detecting
> >     tool paths which I will attach for you to test. This is still on
> >     QT 5.14.1 but is sort of ready to go for qt 5.15.2 when I figure
> >     out the issue (some API change I think).
> > 
> >     Then all I do is run 'make libs' and then 'make' or 'make
> >     distclean everything'
> > 
> >     my buildrc will show you which NDK's Ive been trying. use android
> >     studio to install ndks with the correct version.
> > 
> >     Sorry Ive been lazy and havent commited some of these updates yet.
> >     Not happy yet with them and I dont want to break things.
> > 
> >     See how you go. But it does work for me.
> > 
> >     Mark
> > 
> > 
> > Hi Mark,
> > 
> > That got me a lot further. Unfortunately it is now failing trying to
> > build Qt 5.14.1 using build tools 29.0.3. Should I be using a different
> > version?
> > 
> > Preparing build tree...
> > Creating qmake...
> > .....................................In file included from /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/qfloat16.h:1,
> >                  from /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/../../src/corelib/global/qendian.h:44,
> >                  from /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/qendian.h:1,
> >                  from /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/src/corelib/codecs/qutfcodec.cpp:43:
> > /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:295:7:
> > error: ‘numeric_limits’ is not a class template
> >   295 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public
> > numeric_limits<float>
> >       |       ^~~~~~~~~~~~~~
> > /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:295:77:
> > error: expected template-name before ‘<’ token
> >   295 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public
> > numeric_limits<float>
> >       |                         ^
> > /home/john/src/Myth/Android/packaging/android/libs64/qt-everywhere-src-5.14.1/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:295:77:
> > error: expected ‘{’ before ‘<’ token
> > ...
> > 
> > Thanks,
> > 
> > John
> 
> This sounds like an unsupported ndk version, compiler too new. I had trouble
> with ndk 22.1.7171670 with similar results. The c++ headers are a bit
> different I think but havent chased it down.
> 
> install one of the 21 ones. ~/Android/Sdk/ndk is where they live and you can
> see what is installed.
> 
> I have 21.0.6113669 and 21.4.7075529 installed. both work for me.

I haven't rebuilt my libs in ages.  In that past, that part has tended
to be fragile and best left alone for Mark to fix! :) It looks like I
last did that a little over a year ago with ndk 21.0.6113669.

David
-- 
David Engel
david at istwok.net


More information about the mythtv-dev mailing list