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 |
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
| Installation | Linking |
|---|---|
| Windows OS (XP/Vista/7) | http://www.microsoft.com |
| MeeGo SDK for Windows | http://wiki.meego.com/SDK/MeeGo_SDK_for_Windows |
| Visual Studio 2008 | http://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: In case of build failure, please make sure webkit is mentioned inside $QTDIR/mkspecs/qconfig.pri file in the QT_CONFIG list, if it is not there, add it at the end of QT_CONFIG list, e.g.: QT_CONFIG += webkit
In the spec file, the following tasks are performed.
- Pre-Build
Launch MADDE Terminal (Start -> All Programs -> MeeGo SDK -> MADDE Terminal), 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
Launch Qt Command Prompt (Start -> All Programs -> Qt by Nokia (VS2008 OpenSource) -> 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 successfully, we manually copy everything via
1. xcopy /Y /R /E /EXCLUDE:%SCRIPT_DIRECTORY%\install_creator_step_excludes.txt %REPOSITORY_DIRECTORY%\creator %TARGET_LOCATION%\
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.
You need to build it on Linux OS.
- Pre-Build
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;
-Build
$cd /path/to/madde $make w32 SUMO=meego $../berlin_gatherer.sh -e _build
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.
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.
You need to build it on Linux OS.
- Pre-Build
$patch -p1 -i ../gcc44-hack.patch
target=i586-meego-linux-gnu
i586-meego-linux-gnu should be the folder name which is under 'build-target'
gmpv=gmp-4.3.1 mpfrv=mpfr-2.4.1 ... gdbv=gdb-7.1
Each package should be the folder name which is under 'src'
HOME=/home/user
HOME should be your home directory
PARAL="-j8"
8 Indicates 2 * Number of CPU, i.e., 4 processors now. Change it according to actual case.
FAQs
In line 98, when building zlib, remove 'rc' if error occurs.
AR='i586-mingw32msvc-ar' \
-Build
$cd /path/to/cross-build $./i386-toolchain-w32-meego.sh
-Post Build
Compress the build result into meego-toolchain.tar.gz
cd i386-w32 mv tools meego-toolchain tar czf meego-toolchain.tar.gz meego-toolchain
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
Source code of IFW can be downloaded from: http://qt.gitorious.org/qt-labs/installer-framework
Check the document in the source tree on how to build it.
You'd better build a static IFW, and you'll need to build static Qt for it.
configure -static -no-webkit -no-qt3support -no-dbus -no-multimedia -no-phonon -fast -no-opengl -exceptions -nomake demos -nomake examples -nokia-developer -qt-sql-sqlite -plugin-sql-sqlite
"-qt-sql-sqlite -plugin-sql-sqlite" are work around for buiding IFW.