MADDE/Packaging: Difference between revisions
imported>shep New page: ===Introduction=== This guide explains how to take a simple Qt application and compile it so that it deploys to the N900 with an Icon. |
imported>shep |
||
| Line 1: | Line 1: | ||
===Introduction=== | ===Introduction=== | ||
This guide explains how to take a simple Qt application and compile it so that it deploys to the N900 with an Icon. | 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 project through Madde | |||
2. Edit and test with QT Creator | |||
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. Again inside the "src" folder create a new file called "<projectname>.service" which looks like this. | |||
Code: | |||
[D-BUS Service] | |||
Name=org.maemo.<projectname> | |||
Exec=/usr/bin/<projectname> | |||
8. 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. | |||
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 service | |||
target.path =$$BINDIR | |||
desktop.path = $$DATADIR/applications/hildon | |||
desktop.files += wwcalc.desktop | |||
icon64.path = $$DATADIR/icons/hicolor/64x64/apps | |||
icon64.files += wwcalc.png | |||
service.path = $$DATADIR/usr/share/dbus-1/services | |||
service.files += wwcalc.service | |||
} | |||
9. Up one level and inside the new top level folder (i.e. "c:\Madde\0.5\home\<YOU!>\<projectname>-0.x" ) created 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 [http://wiki.maemo.org/MADDE/Device_runtime]) and then execute. | |||
Code: | |||
mad dh_make --createorig --single -e foo.bar@gmail.com -c gpl | |||
11. (Not needed if you are on 1.1 or higher). Step 10 creates a debian folder at the root level, Go there and edit the "postinst.ex" file. | |||
Code: | |||
#!/bin/sh | |||
# postinst script for <projectname> | |||
# | |||
# see: dh_installdeb(1) | |||
gtk-update-icon-cache -f /usr/share/icons/hicolor | |||
#maemo-select-menu-location <projectname>.desktop | |||
exit 0 | |||
12. Again in Madde | |||
Code: | |||
mad qmake | |||
mad dpkg-buildpackage | |||
mad remote -r org.maemo.<projectname> send ../<packagename>_0.x-1_armel.deb | |||
mad remote -r org.maemo.<projectname> install <projectname>_0.2-1_armel.deb | |||
13. Uninstalling - from an X_Terminal. | |||
Code: | |||
sudo gainroot | |||
dpkg -r <projectname> | |||
Revision as of 18:53, 19 January 2010
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 project through Madde
2. Edit and test with QT Creator
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. Again inside the "src" folder create a new file called "<projectname>.service" which looks like this. Code:
[D-BUS Service] Name=org.maemo.<projectname> Exec=/usr/bin/<projectname>
8. 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. 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 service
target.path =$$BINDIR
desktop.path = $$DATADIR/applications/hildon
desktop.files += wwcalc.desktop
icon64.path = $$DATADIR/icons/hicolor/64x64/apps
icon64.files += wwcalc.png
service.path = $$DATADIR/usr/share/dbus-1/services
service.files += wwcalc.service
}
9. Up one level and inside the new top level folder (i.e. "c:\Madde\0.5\home\<YOU!>\<projectname>-0.x" ) created 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 [1]) and then execute. Code:
mad dh_make --createorig --single -e foo.bar@gmail.com -c gpl
11. (Not needed if you are on 1.1 or higher). Step 10 creates a debian folder at the root level, Go there and edit the "postinst.ex" file. Code:
#!/bin/sh # postinst script for <projectname> # # see: dh_installdeb(1) gtk-update-icon-cache -f /usr/share/icons/hicolor #maemo-select-menu-location <projectname>.desktop exit 0
12. Again in Madde Code:
mad qmake mad dpkg-buildpackage mad remote -r org.maemo.<projectname> send ../<packagename>_0.x-1_armel.deb mad remote -r org.maemo.<projectname> install <projectname>_0.2-1_armel.deb
13. Uninstalling - from an X_Terminal. Code:
sudo gainroot dpkg -r <projectname>