View Single Post
shep's Avatar
Posts: 85 | Thanked: 65 times | Joined on Jan 2010 @ Ireland
#19
OK, Here is (hopefully) a step by step guide how to take a (simple) Qt app and package and deploye it with Icon using Madde.

The project I have is simple, 1 window called mainwindow.

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. I've colour coded the 4 installs below for clarity.
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 here) and then execute
Code:
mad dh_make --createorig --single -e foo.bar@gmail.com -c gpl
mad qmake
mad dpkg-buildpackage
mad remote -r org.maemo.wwcalc send ../wwcalc_0.2-1_armel.deb
mad remote -r org.maemo.wwcalc install wwcalc_0.2-1_armel.deb
mad remote -r org.maemo.wwcalc run dpkg -L wwcalc
Anything else? Yes!

2 things.
Firstly, the icon cache is not automatically updated yet.

(According to Too) The following command needs to be added to the end of debian/postinst
Code:
gtk-update-icon-cache -f /usr/share/icons/hicolor
Secondly, there is no option to uninstall the app. I have no idea how to uninstall an application installed this way. it does not appear in the app manager. Any hints appreciated.
I hope this helps/works!

Many thanks to many users who helped me understand this structure especially too, Salser (sorry Salser I'm still using your lovely timer png file, I'll go and make my own one now!) and danielwilms.

Shep
Attached Images
 
Attached Files
File Type: zip wwcalc-0.3.zip (345.6 KB, 102 views)
 

The Following User Says Thank You to shep For This Useful Post: