(→Build kdebase) |
(→Basic tools) |
||
| Line 10: | Line 10: | ||
You also need to have Qt4 and KDE4 already installed on linux, to use moc/uic/kde4automoc etc... | You also need to have Qt4 and KDE4 already installed on linux, to use moc/uic/kde4automoc etc... | ||
===Cmake=== | ===Cmake=== | ||
| − | To cross compile | + | To cross compile KDE you need CMake >= 2.5, you can get the last version from [http://cmake.org/HTML/Download.html#cvs CVS] |
* Create two files Toolchain-mingw32.cmake and mingw32-kdelibs.cmake with this contents and place them somewhere i.e. in your home | * Create two files Toolchain-mingw32.cmake and mingw32-kdelibs.cmake with this contents and place them somewhere i.e. in your home | ||
| Line 33: | Line 33: | ||
# FindQt4.cmake querys qmake to get information, this doesn't work when crosscompiling | # FindQt4.cmake querys qmake to get information, this doesn't work when crosscompiling | ||
| − | |||
set(QT_BINARY_DIR /home/kdeuser/kde/src/qt-copy/bin) | set(QT_BINARY_DIR /home/kdeuser/kde/src/qt-copy/bin) | ||
set(QT_LIBRARY_DIR ${KDE4_INSTALL_DIR}/lib) | set(QT_LIBRARY_DIR ${KDE4_INSTALL_DIR}/lib) | ||
| Line 45: | Line 44: | ||
====mingw32-kdelibs.cmake==== | ====mingw32-kdelibs.cmake==== | ||
<code scheme> | <code scheme> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
# not sure about this one: | # not sure about this one: | ||
| Line 63: | Line 57: | ||
set(WITH_OpenEXR OFF CACHE BOOL "Disabled") | set(WITH_OpenEXR OFF CACHE BOOL "Disabled") | ||
| + | # use the binaries from native KDE4 | ||
| + | set(KDE4_BIN_DIR /home/kdeuser/kde/bin) | ||
set(KDE4_KCFGC_EXECUTABLE ${KDE4_BIN_DIR}/kconfig_compiler CACHE PATH "") | set(KDE4_KCFGC_EXECUTABLE ${KDE4_BIN_DIR}/kconfig_compiler CACHE PATH "") | ||
set(KDE4_AUTOMOC_EXECUTABLE ${KDE4_BIN_DIR}/kde4automoc CACHE PATH "") | set(KDE4_AUTOMOC_EXECUTABLE ${KDE4_BIN_DIR}/kde4automoc CACHE PATH "") | ||
| This section needs improvements: Please help us to
cleanup confusing sections and fix sections which contain a todo cross compiling is still unstable |
| Tip |
|---|
| Note: This page is about KDE 4. It isn't applicable for KDE 3 development. |
Contents |
Install mingw for linux, on debian the packages are called mingw32, mingw32-binutils, mingw32-runtime, you need to install mingw32 with gcc/g++ 3 and not 4 since that doesn't work with kdelibs, debian testing/unstable has gcc 4 so i've installed mingw32 package from ubuntu repository
You can install these dependencies(aspell, boost, dbus, qca etc..) from windows with the kdewin installer or manually download them from sourceforge mirrors
You also need to have Qt4 and KDE4 already installed on linux, to use moc/uic/kde4automoc etc...
To cross compile KDE you need CMake >= 2.5, you can get the last version from CVS
SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc) SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++)
SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc /windows/kde4 )
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(QT_BINARY_DIR /home/kdeuser/kde/src/qt-copy/bin) set(QT_LIBRARY_DIR ${KDE4_INSTALL_DIR}/lib) set(QT_QTCORE_LIBRARY ${KDE4_INSTALL_DIR}/lib/libQtCore4.a) set(QT_QTCORE_INCLUDE_DIR ${KDE4_INSTALL_DIR}/include/QtCore) set(QT_MKSPECS_DIR ${KDE4_INSTALL_DIR}/mkspecs) set(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc) set(QT_QMAKE_EXECUTABLE ${QT_BINARY_DIR}/qmake) set(QT_UIC_EXECUTABLE ${QT_BINARY_DIR}/uic)
set(KDEWIN_DIR ${KDE4_INSTALL_DIR} CACHE PATH "what is it ?")
set(WITH_AVAHI OFF CACHE BOOL "Disabled") set(WITH_DNSSD OFF CACHE BOOL "Disabled") set(WITH_ENCHANT OFF CACHE BOOL "Disabled") set(WITH_FAM OFF CACHE BOOL "Disabled") set(WITH_GSSAPI OFF CACHE BOOL "Disabled") set(WITH_HSPELL OFF CACHE BOOL "Disabled") set(WITH_OpenEXR OFF CACHE BOOL "Disabled")
set(KDE4_BIN_DIR /home/kdeuser/kde/bin) set(KDE4_KCFGC_EXECUTABLE ${KDE4_BIN_DIR}/kconfig_compiler CACHE PATH "") set(KDE4_AUTOMOC_EXECUTABLE ${KDE4_BIN_DIR}/kde4automoc CACHE PATH "") set(KDE4_MEINPROC_EXECUTABLE ${KDE4_BIN_DIR}/meinproc4 CACHE PATH "") adjust the values according to your setup
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake -C ~/mingw32-kdelibs.cmake ..
ln -s /path/to/kde4automoc bin/
ln -s /path/to/kconfig_compiler bin/
cd /windows/kde4/include
ln -s soprano Soprano
target_link_libraries(${KJSEMBEDLIBNAME} ${KDE4_KDECORE_LIBS} ${QT_QTUITOOLS_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTSVG_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTCORE_LIBRARY} ${KJSLIBNAME} )
rm *.moc
../bin/kde4automoc.exe /home/kdeuser/kde/src/KDE/kdelibs/build/kinit/kdeinit_klauncher_automoc.cpp /home/kdeuser/kde/src/KDE/kdelibs/kinit /home/kdeuser/kde/src/KDE/kdelibs/build/kinit /windows/kde4/bin/moc.exe
and then do make as usual
makekdewidgets -o /home/kdeuser/kde/src/KDE/kdelibs/build/kdewidgets/kdewidgets.cpp /home/kdeuser/kde/src/KDE/kdelibs/kdewidgets/kde.widgets
or symlink those missing library in your wine system32 folder(i haven't tested it but it should work)
This is easy :)
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake -C ~/mingw32-kdelibs.cmake ..
make
make install
This is easy :)
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake -C ~/mingw32-kdelibs.cmake ..
make
make install