MADDE/Packaging
(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.) |
(→Introduction) |
||
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>