Meego Wiki
Views

SDK/Build MeeGo SDK for Windows

From MeeGo wiki
< SDK
Revision as of 02:39, 24 February 2011 by Wcwang (Talk | contribs)
Jump to: navigation, search

These are the BKMs to build MeeGo SDK for Windows. This implemented a part of Feature 10971 - Build MeeGo SDK for Windows in a public server. For more information about MeeGo SDK for Windows, please check SDK/MeeGo SDK for Windows.

Maxayu 09:17, 22 December 2010 (UTC)

Contents

Qt Creator 2.1 rc1

To build Qt Creator, you need to build on Windows OS and the below steps are following the spec file of the rpm package (http://build.meego.com/package/show?package=meego-sdk-qt-creator&project=devel%3Atools%3Asdk%3Ahost).

- Prerequisite

InstallationLinking
Windows OS (XP/Vista/7)http://www.microsoft.com
MeeGo SDK for Windowshttp://wiki.meego.com/SDK/MeeGo_SDK_for_Windows
Visual Studio 2008http://www.microsoft.com/express/Downloads/#2008-All
Qt for Open Source on Windows (VS2008)http://get.qt.nokia.com/qt/source/qt-win-opensource-4.7.1-vs2008.exe

Note: After Qt for Open Source on Windows has been installed, the Media:qt_webkit_version.pri file is required to copy to $QTDIR/mkspecs/modules to link Qt WebKit library.

In the spec file, the following tasks are performed.

- Pre-Build

Launch MADDE Terminal of MeeGo SDK, and run below commands in the extracted directory of Qt Creator source code. For instance,

$patch -p1 -i ../meego-2.1_20110130.patch
$patch -p1 -i ../ftbfs_missing_webkit.patch
$patch -p1 -i ../ftbfs_allow-shlib-undefined_no-undefined.patch
$patch -p1 -i ../buildservice_plugin_20110104.patch
$patch -p1 -i ../install_qtquickplugin.patch
$cp -rf src/plugins/qt4projectmanager/qt-maemo/images src/plugins/qt4projectmanager/qt-meego/
$install -D -p -m 0644 ../mtf.png src/plugins/qt4projectmanager/wizards/images/mtf.png

Edit src/plugins/plugins.pro and comment the below line to disable the BuildService plug-in.

# plugin_buildservice \

- Build

Then build Qt Creator in Qt Command Prompt. Run the below commands in an independent build directory, which can be created in parallel with the source directory and named 'qt-creator-*-rc1-build'.

>qmake -r DEFINES+=QTCREATOR_WITH_QML CONFIG-=console -config release ..\qt-creator-2.1.0-rc1-src\qtcreator.pro
>nmake

- Post Build

After building Qt Creator with VS2008 and Qt by Nokia v4.7.1 (VS 2008), we manually copy everything via

1. xcopy /Y /R /E /EXCLUDE:%SCRIPT_DIRECTORY%\install_creator_step_excludes.txt %REPOSITORY_DIRECTORY%\creator %TARGET_LOCATION%\

  •  %REPOSITORY_DIRECTORY%: The build directory of Qt Creator, which should already contain \bin, \lib, \share and \src.
  •  %TARGET_LOCATION%: Create an independent folder manually to store the target files, which named 'QtCreator'.

For instance,

>xcopy /Y /R /E /EXCLUDE:C:\bin_win\install_creator_step_excludes.txt C:\build\qt-creator\qt-creator-2.1.0-rc1-build C:\build\data\qtcreator

2. xcopy /y %REPOSITORY_DIRECTORY%\creator\lib\qtcreator\plugins\Nokia\Find.dll %TARGET_LOCATION%\lib\qtcreator\plugins\Nokia\

There missed a file Find.dll unfortunately, which can be copied manually. For instance,

>xcopy /y C:\build\qt-creator\qt-creator-2.1.0-rc1-build\lib\qtcreator\plugins\Nokia\Find.dll C:\build\data\qtcreator\lib\qtcreator\plugins\Nokia\

3. Copy all the .dll and .exe files from C:\qt\4.7.1\bin to %TARGET_LOCATION%\bin.

4. Copy the following plugins to the corresponding subdirectories of %TARGET_LOCATION%\bin.

imageformats
imageformats/qgif4.dll
imageformats/qico4.dll
imageformats/qjpeg4.dll
imageformats/qmng4.dll
imageformats/qsvg4.dll
imageformats/qtiff4.dll
iconengines
iconengines/qsvgicon4.dll
sqldrivers
sqldrivers/qsqlite4.dll
codecs
codecs/qcncodecs4.dll
codecs/qjpcodecs4.dll
codecs/qkrcodecs4.dll
codecs/qtwcodecs4.dll
accessible
accessible/qtaccessiblewidgets4.dll

Compress the directory QtCreator into qtcreator.7z package.

MADDE

  • Please change the following line in /usr/i586-mingw32msvc/include/stdint.h from:
typedef signed char int8_t;

To:

//typedef signed char int8_t; !!!! XXX XXXX The change in the next line is a tmp edit for building MADDE only. Please change it back to this line ASAP.
typedef char int8_t;
  • MADDE builds if you have all required distfiles in place. Additionally this requires that required packages are installed on build system (wine & mingw cross-compiler among other things).
cd /path/to/madde
make w32 SUMO=meego
../berlin_gatherer.sh -e _build

Here is the file Media:Berlin-gatherer.sh‎

qt-tools 4.7.1

Follow instructions on http://meego.gitorious.org/meego-developer-tools/madde/blobs/master/docs/QtToolsForMadde.rst . Which contains my modifications.

The patch mentioned in the above link can be downloaded from here: Media:Qt qtmake option.cpp.patch.

mgen and mmoc from libmeegotouch need to be added. Source code of libmeegotouch can be downloaded from http://build.meego.com/package/show?package=libmeegotouch&project=Trunk.

mgen

To build mgen, create a file "make.bat" by copy the following lines:

set MYQTDIR=C:\Qt\4.7.1
set CL=/I%MYQTDIR%\include\QtGui /I%MYQTDIR%\include\QtCore /I%MYQTDIR%\include
set LIBRARY_PATH=%MYQTDIR%\lib
cl mgen.cpp mgen_processor.cpp %LIBRARY_PATH%\QtGui4.lib %LIBRARY_PATH%\QtCore4.lib %LIBRARY_PATH%\QtCore4.lib

Put the file "make.bat" into "mgen" sub-directory of libmeegotouch, and invoke it to build mgen.

Toolchain

I used this script http://meego.gitorious.org/meego-developer-tools/madde/blobs/master/ext/i386-toolchain-w32-meego.sh to build toolchain for IA, which is based on toolchain-w32.sh (for ARM).

Qt Simulator

Refer to: http://developer.qt.nokia.com/wiki/Qt_Simulator and http://build.meego.com/package/view_file?file=qt-simulator.spec&package=qt-simulator&project=devel%3Atools%3Asdk%3Ahost&srcmd5=e45d364bbac25fb09e70f49e9650177c (require login. Download source code from here.)

Source code of simulator need to be patched by Media:Simulator.patch.

Create a directory "simulator-depends".

Use the bat file Media:Make_bat.txt to build it. While you need to apply the following work around after building simulator-mobility and before building simulator.

cd simulator-mobility-1.1.0~git1/plugins/sensors/simulator/
mv main.cpp main.cpp.sav
Personal tools