Android integration in KConfig framework

Aleix Pol aleixpol at kde.org
Mon Apr 28 23:21:02 UTC 2014


On Sun, Apr 27, 2014 at 7:38 PM, Aleix Pol <aleixpol at kde.org> wrote:

> On Sun, Apr 27, 2014 at 7:27 PM, JAZEIX Johnny <jazeix at gmail.com> wrote:
>
>>  Hi again,
>>
>> I downloaded cmake 3.0.0-rc4 but when I use cmake with
>> set(CMAKE_SYSTEM_NAME Android) I've got the output in attachment.
>> Where I installed cmake (/usr/local/share/cmake-3.0/Modules/Platform/), I
>> don't have any Android.cmake that could match.
>> I googled the problem but did not find a solution... Did you meet this ?
>>
>> We use the following cmake toolchain
>> https://git-next.kde.org/kde/gcompris/blob/cmake/platforms/android.cmake.
>>
>> Johnny
>>
>>
>> On 04/24/14 23:59, Aleix Pol wrote:
>>
>>  On Thu, Apr 24, 2014 at 10:55 PM, Aleix Pol <aleixpol at kde.org> wrote:
>>
>>>   On Thu, Apr 24, 2014 at 9:11 PM, JAZEIX Johnny <jazeix at gmail.com>wrote:
>>>
>>>>  Hi,
>>>>
>>>> I'm currently working on GCompris port (passing from Gtk to Qt5 qml/js)
>>>> and for storing persistent data, i'm using KConfig (from
>>>> https://projects.kde.org/projects/frameworks/kconfig/repository).
>>>>
>>>> It works fine on Desktop (tested on linux) and with a slight
>>>> modification (I attached a potential patch which fix my problem) it works
>>>> also on Android.
>>>>
>>>> I have a problem when compiling KConfig libraries because it appends
>>>> the soname at the end of library (meaning libGCompris.so will look for a
>>>> libKF5ConfigCore.so.5) and I deploy only libKF5ConfigCore.so (it looks like
>>>> Android does not support soname).
>>>>
>>>> About the patch, in the toolchain I specifiy to compile with, ANDROID
>>>> is defined. This way, It only creates a libKF5ConfigCore.so.
>>>>
>>>> If it is good for you, is it possible to integrate it on KConfig ?Or if
>>>> you have an other way to not have the soname, I take it :)
>>>>
>>>> Regards,
>>>>
>>>> Johnny
>>>>
>>>>  _______________________________________________
>>>> Kde-frameworks-devel mailing list
>>>> Kde-frameworks-devel at kde.org
>>>> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
>>>>
>>>>
>>>  You need to set the system name to Android (set(CMAKE_SYSTEM_NAME
>>> Android)), note you will need cmake 3.0 for that to work, this sets the
>>> cmake project to drop the soname for libraries.
>>>
>>>  FWIW, I've been working on improving the cmake situation on Android
>>> [1], maybe that can help you, although it's far from a usable state.
>>>
>>>  Aleix
>>>
>>>  [1]
>>> http://quickgit.kde.org/?p=scratch%2Fapol%2Fkalgebraandroid.git&a=blob&h=9bd96cc3463a0675fd67aeca6cb1a47460f1dd8d&hb=e75f946e87690db2c4b509baac9c1ff4e51bc130&f=AndroidToolchain.cmake
>>>
>>
>>  Adding JAZEIX, in case he's not subscribed.
>>
>>  Aleix
>>
>> Hi,
> I decided to stop using this toolchain file because it's full of semantics
> unrelated to android and overly too complex. I recall having seen a similar
> error, but it looks like something is wrong on your installation.
>
> Aleix
>

If you want, you can keep using the cmake you're already using and define
the Platform file yourself and add the following as contents:

include(Platform/Linux)
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "")
# RPath is useless on Android, because we can't determine the installation
# location ahead of time.
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")

Good luck!
Aleix
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140429/412357f7/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list