MADDE/Packaging
Contents |
Introduction
This guide explains how to take a simple Qt application and compile it so that it deploys to the N900 with an Icon. It is supposed to be step by step guide on how to take a (simple) Qt app and package and deploy it with an Icon using Madde.
Prerequisites
The project I have is simple, 1 window called mainwindow.
Note: As a convention I like to keep all my code together, so I have created any extra files in the "src" folder.
Steps
1. Create simple project through Madde.
mad pscreate -t qt_simple projectname
2. Edit and test with QT Creator (or whatever your favorite tool is).
3. Once ready to deploy create a clean empty top level folder "<projectname>-0.x" where x is your revision number e.g. "c:\Madde\0.5\home\shep\wwcalc-0.1"...In the OS Note: the following 3 steps apply each time you go to build.
3.1 ensure there is no "debian" folder at the same level as "src" 3.2 ensure there is no folder structure called "<projectname>-0.x-orig" left over from a failed compile 3.3 remove old compiles from the Madde\home\user (e.g. C:\Madde\0.5\home\Shep) folder.
4. Copy the "src" folder from the tested Qt project into the "<projectname-0.x" folder
5. Create (or obtain) an application Icon. This should be a 64x64 png. Call it <projectname>.png and place it in the "src" folder.
6. Again inside the "src" folder create a new file called "<projectname>.desktop" Code:
[Desktop Entry] Encoding=UTF-8 Version=0.x Type=Application Name=<Long Descriptive Project Name> Exec=/usr/bin/<projectname> Icon=<projectname> X-HildonDesk-ShowInToolbar=true X-Osso-Type=application/x-executable
7. Inside the "src" folder added a file called "src.pro". Getting this right is the key to getting the Makefile correct and hence the install working. At the end of this file there is a section called "INSTALLS += "...for every file you want installed in a location you need an entry here. In the example here we install the target, icon and desktop files. Code:
TARGET = wwcalc TEMPLATE = app SOURCES += qtmain.cpp \ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui PREFIX = ../debian/wwcalc/usr unix { BINDIR = $$PREFIX/bin DATADIR =$$PREFIX/share DEFINES += DATADIR=\"$$DATADIR\" PKGDATADIR=\"$$PKGDATADIR\" #MAKE INSTALL INSTALLS += target desktop icon64 target.path =$$BINDIR desktop.path = $$DATADIR/applications/hildon desktop.files += wwcalc.desktop icon64.path = $$DATADIR/icons/hicolor/64x64/apps icon64.files += wwcalc.png }
8. Up one level and inside the top level folder (i.e. "c:\Madde\0.5\home\<YOU!>\<projectname>-0.x" ) create a file called "<projectname>.pro" with the following exact contents. Code:
TEMPLATE = subdirs SUBDIRS = src
10. In Madde make sure the runtime is up and connectible (described here: http://wiki.maemo.org/MADDE/Device_runtime) and then execute. Code:
mad dh_make --createorig --single -e foo.bar@gmail.com -c gpl mad dpkg-buildpackage mad remote -r org.maemo.<projectname> send ../<projectname>_0.x-1_armel.deb mad remote -r org.maemo.<projectname> install <projectname>_0.x-1_armel.deb
11. Uninstalling - from an X_Terminal. Code:
sudo gainroot dpkg -r <projectname>