[0/3] support Android target in all build system

Message ID 20211216103846.718910-1-randy.li@synaptics.com
Headers show
Series support Android target in all build system | expand

Message

Hsia-Jun Li Dec. 16, 2021, 10:38 a.m. UTC
From: "Hsia-Jun(Randy) Li" <randy.li@synaptics.com>

Both meson and cmake would work fine, left those GNU autotools,
customer script projects.

The behaviour of meson would become that as the following for
the Android target:
lib/libfoo.so is the real binary library
lib/libfoo.so.x -> libfoo.so
lib/libfoo.so.x.y -> libfoo.so

But when you tell the autotools the target host is android,
it won't make any difference in its output library. I would
like to fix that but I am not good at m4 script.

Hsia-Jun(Randy) Li (3):
  cmake.bbclass: support android os
  classes/meson: support Android os
  [WIP]: openssl: fix Android target

 meta/classes/cmake.bbclass                         | 2 ++
 meta/classes/meson-routines.bbclass                | 2 ++
 meta/recipes-connectivity/openssl/openssl_3.0.0.bb | 4 ++++
 3 files changed, 8 insertions(+)

Comments

Richard Purdie Dec. 16, 2021, 2:56 p.m. UTC | #1
On Thu, 2021-12-16 at 18:38 +0800, Hsia-Jun Li wrote:
> From: "Hsia-Jun(Randy) Li" <randy.li@synaptics.com>
> 
> Both meson and cmake would work fine, left those GNU autotools,
> customer script projects.
> 
> The behaviour of meson would become that as the following for
> the Android target:
> lib/libfoo.so is the real binary library
> lib/libfoo.so.x -> libfoo.so
> lib/libfoo.so.x.y -> libfoo.so
> 
> But when you tell the autotools the target host is android,
> it won't make any difference in its output library. I would
> like to fix that but I am not good at m4 script.
> 
> Hsia-Jun(Randy) Li (3):
>   cmake.bbclass: support android os
>   classes/meson: support Android os
>   [WIP]: openssl: fix Android target

The first couple of patches look ok but I'd like to understand whether there is
real world usable output from the build after applying them? If not, I think we
should probably wait until we can see the bigger picture of what other changes
would be needed to make this work rather than making tweaks piecemeal.

Can you describe what level of functionality these patches give to a build?

Cheers,

Richard
Hsia-Jun Li Dec. 17, 2021, 2:44 a.m. UTC | #2
On 12/16/21 22:56, Richard Purdie wrote:
> CAUTION: Email originated externally, do not click links or open attachments unless you recognize the sender and know the content is safe.
> 
> 
> On Thu, 2021-12-16 at 18:38 +0800, Hsia-Jun Li wrote:
>> From: "Hsia-Jun(Randy) Li" <randy.li@synaptics.com>
>>
>> Both meson and cmake would work fine, left those GNU autotools,
>> customer script projects.
>>
>> The behaviour of meson would become that as the following for
>> the Android target:
>> lib/libfoo.so is the real binary library
>> lib/libfoo.so.x -> libfoo.so
>> lib/libfoo.so.x.y -> libfoo.so
>>
>> But when you tell the autotools the target host is android,
>> it won't make any difference in its output library. I would
>> like to fix that but I am not good at m4 script.
>>
>> Hsia-Jun(Randy) Li (3):
>>    cmake.bbclass: support android os
>>    classes/meson: support Android os
>>    [WIP]: openssl: fix Android target
> 
> The first couple of patches look ok but I'd like to understand whether there is
> real world usable output from the build after applying them? If not, I think we

https://github.com/hizukiayaka/meta-android-ndk
https://github.com/hizukiayaka/meta-android-ndk/blob/master/recipes-core/proxy-libintl/proxy-libintl_git.bb
Which provides the 'virtual/libintl' in Android, that would need meson.
> should probably wait until we can see the bigger picture of what other changes
> would be needed to make this work rather than making tweaks piecemeal.

The target is building a Gstreamer(media service) for Android VNDK(in 
/vendor partition).
Now, I still fight with glib-2.0 and python3, the dependency of python3 
need to be patched, some of them as I said they are using autotools, it 
would still product library links likes

ERROR: ncurses-6.3-r0 do_package: QA Issue: ncurses: Files/directories 
were installed but not shipped in any package:
   /usr/lib/libtic.so
   /usr/lib/libcurses.so
   /usr/lib/libpanel.so
   /usr/lib/libmenu.so
   /usr/lib/libform.so
   /usr/lib/libticw.so
   /usr/lib/libpanelw.so
   /usr/lib/libmenuw.so
   /usr/lib/libformw.so
   /usr/lib/libncurses.so
   /usr/lib/libncursesw.so
   /usr/lib/libtermcap.so
   /usr/lib/libtinfo.so


> 
> Can you describe what level of functionality these patches give to a build?
At lease we could have a few simple applications that would work in 
Android, likes the unit test from libpng.
> 
> Cheers,
> 
> Richard
>