← Back to team overview

ubuntu-phone team mailing list archive

Re: Cross-compiling QML extensions, using CMake

 

We've wanted to polish this until we had the cross-compilation instructions
figured out, but since there are some out there that seem to work for some
people already, here's how you can manually package your apps + QML C++
extensions with click:

http://developer.ubuntu.com/resources/tutorials/getting-started/creating-click-packages-with-cpp-extensions/

Thanks to mzanetti for the original blog post, which we adapted as a
generic tutorial for app showdown participants.

Cheers,
David.



On Thu, Sep 12, 2013 at 9:17 PM, Dmitrijs Ledkovs <xnox@xxxxxxxxxx> wrote:

> On 12 September 2013 19:51, Roman Shchekin <mrqtros@xxxxxxxxx> wrote:
> > Whoohoo!
> > Thanks, Dmitrijs!
> > Without you, my participation would be in doubt :)
> >
> > Now I need to create Click package.
> > Can you advice me where I should place my plugin (I mean "YadPlugin"
> folder
> > with binary *.so and qmldir file inside) in primary (qmlproject) app?
> > I think that I should put it to root folder near to *.qmlproject file
> since
> > I am importing it via "import YadPlugin 1.0" in my *.qml files. Am I
> right?
> > :)
> >
>
> Not sure. I haven't packaged a click with a compiled extension yet.
> There was a recent blog post on ubuntu planet with a solution I
> believe. Maybe dholbach remembers?
>
> Regards,
>
> Dmitrijs.
>
>
> > Again big thanks!
> >
> >
> > 2013/9/12 Dmitrijs Ledkovs <xnox@xxxxxxxxxx>
> >>
> >> On 12 September 2013 18:16, Roman Shchekin <mrqtros@xxxxxxxxx> wrote:
> >> > Hello, Dmitrijs Ledkovs!
> >> >
> >> > There you can find plugin code:
> >> > https://code.launchpad.net/~mrqtros/+junk/yad-plugin
> >> > And there QML part: https://code.launchpad.net/~mrqtros/yad/trunk
> >> >
> >> > Please, help me to compile QML extension for armhf!
> >> > I'll owe you one =)
> >> >
> >> > Big big big thanks!
> >> >
> >>
> >> Just today dholbach published some wrapper scripts for native
> >> compilation of extensions, using qemu-armhf emulation
> >>
> >> $ bzr branch lp:~dholbach/+junk/extension-build
> >> $ cd extension-build
> >> $ ./setup
> >> $ bzr branch lp:~mrqtros/+junk/yad-plugin
> >> $ ./build-porject yad-plugin
> >>
> >> Which then generated
> >> yad-plugin/modules/YadPlugin/libYadPlugin.so
> >>
> >> I've pushed it to $ bzr branch lp:~xnox/+junk/yad-plugin for your
> >> convenience.
> >>
> >> Note this was not done by cross-compilation, but a native under qemu
> >> emulation.
> >>
> >> Regards,
> >>
> >> Dmitrijs.
> >>
> >>
> >>
> >> > Best regards,
> >> > Roman.
> >> >
> >> >
> >> >
> >> > 2013/9/12 Dmitrijs Ledkovs <xnox@xxxxxxxxxx>
> >> >>
> >> >> On 11 September 2013 20:01, Roman Shchekin <mrqtros@xxxxxxxxx>
> wrote:
> >> >> > Hi all
> >> >> >
> >> >> > So, can I compile my plugin for armhf arch via cmake? I need it for
> >> >> > showdown
> >> >> > :)
> >> >> >
> >> >> >
> >> >>
> >> >> Where is your source code? =)
> >> >>
> >> >> Regards,
> >> >>
> >> >> Dmitrijs.
> >> >>
> >> >>
> >> >>
> >> >> > 2013/9/11 Sergio Schvezov <sergio.schvezov@xxxxxxxxxxxxx>
> >> >> >>
> >> >> >> On Wed, Sep 11, 2013 at 8:22 AM, Dmitrijs Ledkovs <
> xnox@xxxxxxxxxx>
> >> >> >> wrote:
> >> >> >>>
> >> >> >>> I've written up a quick how-to cross-compiling qml extensions
> using
> >> >> >>> CMake
> >> >> >>>
> >> >> >>> https://wiki.ubuntu.com/Touch/CrossCompile
> >> >> >>>
> >> >> >>> Apart from cmake choosing DEB_HOST moc, instead of DEB_BUILD moc,
> >> >> >>> it
> >> >> >>> seems to work ok.
> >> >> >>>
> >> >> >>> I've successfully compiled:
> >> >> >>> ./lib/SystemSettings/libSystemSettings.so
> >> >> >>> ./tests/libtest-plugin.so
> >> >> >>> ./plugins/sound/libUbuntuSoundPanel.so
> >> >> >>> ./plugins/example/libexample-plugin.so
> >> >> >>> ./plugins/background/libUbuntuBackgroundPanel.so
> >> >> >>> ./plugins/system-update/libUbuntuUpdatePanel.so
> >> >> >>> ./plugins/security-privacy/diagnostics/libUbuntuDiagnostics.so
> >> >> >>> ./plugins/security-privacy/libUbuntuSecurityPrivacyPanel.so
> >> >> >>>
> >> >> >>> From ubuntu-system-settings project using above method.
> >> >> >>>
> >> >> >>> So if you are using qmake, you can switch to cmake by following
> >> >> >>> this
> >> >> >>> Qml / Ubuntu Touch app:
> >> >> >>>
> https://code.launchpad.net/~jpakkane/ubuntu-system-settings/cmake
> >> >> >>>
> >> >> >>> And gain, a relatively smooth cross-compilation support.
> >> >> >>
> >> >> >>
> >> >> >> I'm going to piggyback on this and mention that I got this going
> for
> >> >> >> most
> >> >> >> of the applications as well (dialer-app et.al.) which are cmake
> >> >> >> based
> >> >> >> using
> >> >> >> your previous instructions but adapted to cmake. So thanks
> >> >> >>
> >> >> >> Cheers
> >> >> >> Sergio
> >> >> >>
> >> >> >> --
> >> >> >> Mailing list: https://launchpad.net/~ubuntu-phone
> >> >> >> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
> >> >> >> Unsubscribe : https://launchpad.net/~ubuntu-phone
> >> >> >> More help   : https://help.launchpad.net/ListHelp
> >> >> >>
> >> >> >
> >> >
> >> >
> >
> >
>
> --
> Mailing list: https://launchpad.net/~ubuntu-phone
> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ubuntu-phone
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References