← Back to team overview

ubuntu-touch-coreapps team mailing list archive

Re: Enabling Cmake for all the core apps

 


On 16/02/14 07:29, David Planella wrote:
On Sun, Feb 16, 2014 at 2:28 AM, Sergio Schvezov <sergio.schvezov@xxxxxxxxxxxxx <mailto:sergio.schvezov@xxxxxxxxxxxxx>> wrote:

    Just a quick self follow up

    After removing my QtCreator config I get the Build/Ubuntu submenu
    and could explore the context of the problem a bit more.

    The desktop part can be resolved by changing the
    -set(DESKTOP_FILE "${PROJECT_NAME}_${APP_NAME}.desktop")
    +set(DESKTOP_FILE "${PROJECT_NAME}.desktop")


Thanks Sergio for looking into that. I think Nekhelesh's point was that before the cmake migration it was much easier to test pure QML apps. Adding cmake to the mix now requires a build step that needs to be done outside of Qt Creator to generate the .desktop file.

Before, pressing Ctrl+F12 would just copy the files over to the device and run the app. Granted, this would not test confinement, but for rapid app development (and especially if it's an app that has been tested to work in confinement) it is very convenient. App confinement could then be tested with a click build and install before release.

This hid the fact that the source as it was, was insufficient to build a quality grade click package; ie; I cannot

bzr branch lp:ubuntu-clock-app trunk
cd trunk
bzr export app
click build app

If I do that, I would get a click that:

 * includes debian dir
 * has a desktop with:
     o Exec=.*/usr/share/ubuntu-clock-app/ubuntu-clock-app.qml
     o Icon=/usr/share/ubuntu-clock-app/.*
 * includes a test dir
 * includes un-gettexed po files

If you have a better idea on how to get this commonly fixed, I'll wait for an MR; cmake seemed like the right tool for the job to me.

But I think the main point here is that we've broken Qt Creator's workflow for pure QML apps by introducing a build step as a requirement. Can we still get the best of both worlds, perhaps by adapting Qt Creator's scripts (e.g. the one that is called by pressing Ctrl+F12)?

ctrl+12 should be fixed; I would prefer a common workflow for everyone instead pure qml which 3 already aren't:

 * music
 * terminal
 * file manager

The new reminders application as well.

    but to be honest, I think that qtcreator should look into the
    manifest to search for desktop files; this would allow for an easy
    transition to multiple apps per package namespace when it arrives.


Would you mind filing a bug for that? I also agree that resolving this dynamically would be much better than hardcoding it to a given .desktop file name.

https://bugs.launchpad.net/ubuntu/+source/qtcreator-plugin-ubuntu/+bug/1280781

    After hacking the desktop file that in I saw why it wanted to sed it:
    Exec=/usr/bin/export
    DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-LRsqEGysw5;
    APP_ID=com.ubuntu.clock qmlscene
    /home/phablet/dev_tmp/com.ubuntu.clock/ubuntu-sdk-13.10-armhf/click_package/share/qml/com.ubuntu.clock/com.ubuntu.clock.qml
    --desktop_file_hint=/home/phablet/.local/share/applications/com.ubuntu.clock.desktop

    It really should be installing the click package and using that so
    it uses upstart-app-launch to launch the application under
    confinement.


I'm not sure I can follow this one. Could you elaborate on what's needed to do here, whether fix the cmake rules or the Qt Creator scripts?

This is QtCreator; I don't see why when someone does ctrl+12 it doesn't just build the click package on the fly and run it. I may be missing something here.

David.


    On 15/02/14 21:48, Sergio Schvezov wrote:


        On 15/02/14 18:53, Nekhelesh Ramananthan wrote:

            This is a request to revert the cmake transition for all
            the core apps since it is effectively blocking crucial
            application testing on the device through QtCreator.
            Before the cmake transition, my work flow comprised of
            implementing a patch/feature and then immediately testing
            it on the device by pressing Ctrl+F12 through Qtcreator.
            This made testing applications on the device quite easy.
            However as now, that no longer works since QtCreator now
            complains of a missing desktop file. I have tried fixing
            it by discussing it with zBenjamin and balloons on IRC,
            however at the end of the day this is still broken.


        What does ctrl+12 actually do? Does it require writable mode?


            I understand the major motivation for the cmake transition
            was to help easily build click packages (using
            click-buddy) and ready them for deployment to the device.
            However this is already easy enough to do in Qtcreator by
            simply pressing *Ctrl+F12* or rather using the "*Install
            on Device*" feature. As far as I understand, click-buddy
            doesn't help with running autopilot tests on the device
            either. I am really questioning the benefit of the cmake
            transition. If there is something that I am missing here,
            please do explain this to me.


        The other major motivation is to actually build click packages
        without any hacks; as it was before all the packages had
        hardcoded paths for the debs.

        If you run the autopilot tests in 'deb' mode you aren't really
        testing on the target. To really test on the target you need
        the click package built, installed, and run in confinement;
        using debs doesn't provide any of that.

        If the installing and testing requires writable mode on
        devices, that it is also broken in my opinion.


            If you agree to the request, please submit patches
            reverting the commits done.


        If there's no hard coding, I'm fine. But there was serious
        hard coding before.

        Although I say, do not despair :-)

        Immediate temp solution, is to make the build dir your actual
        branch in Project/Build
        http://ubuntuone.com/3FqnDSLJpg2CUSYAtwj2oM

        The reason you can't run locally in QtCreator is that, well,
        the system doesn't know about out of source builds that
        easily; and something like this is needed:

        https://code.launchpad.net/~sergiusens/ubuntu-clock-app/run_from_qtcreator/+merge/206598
        <https://code.launchpad.net/%7Esergiusens/ubuntu-clock-app/run_from_qtcreator/+merge/206598>


        For running autopilot and installing on the device I would
        need more info on what you currently do.



-- Mailing list: https://launchpad.net/~ubuntu-touch-coreapps
    <https://launchpad.net/%7Eubuntu-touch-coreapps>
    Post to     : ubuntu-touch-coreapps@xxxxxxxxxxxxxxxxxxx
    <mailto:ubuntu-touch-coreapps@xxxxxxxxxxxxxxxxxxx>
    Unsubscribe : https://launchpad.net/~ubuntu-touch-coreapps
    <https://launchpad.net/%7Eubuntu-touch-coreapps>
    More help   : https://help.launchpad.net/ListHelp





Follow ups

References