Projects/KDE on Windows/Windows CE/Emerge

From KDE TechBase
Revision as of 14:55, 16 July 2010 by Aholzammer (talk | contribs) (inital page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

This page is a work in progress. There is only one application that starts on Windows Mobile right now and is not tested yet. It is intended to give a starting point for Windows Mobile development with the help of emerge. This guide is specialized for Windows Mobile 6, but can be adapted for other versions.

Requirements

  • Microsoft Windows XP/Vista/7 (tested with win7)
  • Microsoft Visual Studio 2008/05 Professional
  • (Service Pack 1 for Visual Studio) get form here (take the right language that fit to your Visual Studio)
  • Windows Mobile 6 Professional and Standard Software Development Kits Refresh, get it from here
  • Windows Mobile 6.5 Developer Tool Kit, get it from here
  • svn
  • Emerge, check it out from svn://anonsvn.kde.org/home/kde/trunk/kdesupport/emerge check here for more info how it is setup


Setup Emerge

Edit your kdesettings.bat to  get emerge to build KDE for Windows Mobile. Here are some suggestions how your importent setttings should look like:

  • set KDECOMPILER=msvc2008
  • set EMERGE_ARCHITECTURE=x86
  • set EMERGE_USE_SHORT_PATH=1 (shortens the path length, which can be sometimes critical)
  • set EMERGE_TARGET_PLATFORM=WM60
  • set EMERGE_TARGET_ARCHITECTURE=ARMV4I
  • set EMERGE_MAKE_PROGRAM=%KDEROOT%\bin\jom.exe (can be enabled for faster builds)

Start compiling programs for Windows Mobile

After setting up emerge you can get info the emerge building environment by calling kdeenv.bat out of the emerge directory. Then you can start compiling programs for Windows Mobile by typing emerge <package>.


Packages compiled for Windows Mobile right now

  • boost
  • gpgme
  • akonadi
  • attica
  • dbusmenu-qt
  • grantlee
  • kdewin
  • oxygen-icons
  • phonon
  • qjson
  • soprano
  • strigi
  • gettext
  • pinentry-qt
  • aspell
  • cyrus-sasl
  • dbus
  • expat
  • giflib
  • jpeg
  • libbzip2
  • libcurl
  • libical
  • libpng
  • libxml2
  • libxslt
  • openssl
  • pcre-src
  • shared-desktop-ontologies
  • sqlite
  • wcecompat
  • win_iconv
  • zlib
  • kdebase-runtime
  • kdelibs
  • kdepim
  • kdepimlibs
  • qt
  • bison
  • docbook-dtd
  • docbook-xsl


Compile Process

Almost every package is compiled twice because the need of the codegenerators and other generators that are used. So emerge is doing the following pipeline:

  • fetch(for the building platform)
  • unpack(for the building platform)
  • compile for the building platform
  • cleanimage for the building platform
  • install for the building platform
  • manifest for the building platform
  • qmerge for the building platform
  • compile for the target platform
  • cleanimage for the target platform
  • install for the target platform
  • manifest for the target platform
  • qmerge for the target platform

Known Issues

  • If there is an svn error accours emerge looks like it is freezd
  • If a compile process from the building platform goes through and the target build failed the package is marked as installed in emerge