MADDE/Packaging

m (Steps)
(wikify)
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. 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.
+
This guide explains how to take a simple [[Qt-Maemo|Qt]] application and compile it so that it deploys to the [[Nokia N900|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 ===
=== Prerequisites ===
Line 86: Line 86:
== Additional information ==
== Additional information ==
-
1. [http://wiki.maemo.org/Packaging_a_Qt_application Packaging a Qt Application.]
+
* [[Packaging a Qt Application]]
[[Category:Development]]
[[Category:Development]]
[[Category:Qt]]
[[Category:Qt]]

Revision as of 10:27, 19 February 2010

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
 *** Several people have commented that mad qmake is not required, but I find there are times that it is, igonre this next line if you wish ***
 mad qmake
 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>

Additional information