|
|
(33 intermediate revisions by 10 users not shown) |
Line 1: |
Line 1: |
| {{improve|cross compiling is still unstable}} | | {{Moved To Community|Windows/Imported From TechBase/Build/{{#titleparts:{{PAGENAME}}||4}}}} |
| {{KDE4}}
| |
| | |
| ==Basic tools==
| |
| ===MinGw===
| |
| 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
| |
| ===Qt4 Kdesupport and dependencies===
| |
| You can install these dependencies(aspell, boost, dbus, qca etc..) from windows with the kdewin installer or manually download them from [http://sourceforge.net/project/showfiles.php?group_id=214730 sourceforge mirrors]
| |
| ===Qt4 and KDE4 for linux===
| |
| You also need to have Qt4 and KDE4 already installed on linux, to use moc/uic/kde4automoc etc...
| |
| ===Cmake===
| |
| 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 a file Toolchain-mingw32.cmake with this content and place it somewhere i.e. in your home
| |
| <code bash>
| |
| # the name of the target operating system
| |
| SET(CMAKE_SYSTEM_NAME Windows)
| |
| | |
| # which compilers to use for C and C++
| |
| SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc)
| |
| SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++)
| |
| | |
| # here is the target environment located
| |
| SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc /windows/kde4 )
| |
| | |
| # adjust the default behaviour of the FIND_XXX() commands: | |
| # search headers and libraries in the target environment, search
| |
| # programs in the host environment
| |
| 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(KDE4_INSTALL_DIR /windows/kde4)
| |
| set(QT_BINARY_DIR /home/kdeuser/kde/src/qt-copy/bin)
| |
| | |
| | |
| set(CMAKE_MODULE_PATH ${KDE4_INSTALL_DIR}/share/apps/cmake/modules)
| |
| set(CMAKE_INSTALL_PREFIX ${KDE4_INSTALL_DIR})
| |
| set(LIB_INSTALL_DIR ${KDE4_INSTALL_DIR}/lib)
| |
| | |
| 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(KDE4_DATA_DIR ${KDE4_INSTALL_DIR}/share/apps)
| |
| set(KDE4_LIB_INSTALL_DIR ${KDE4_INSTALL_DIR}/lib)
| |
| set(KDE4_INCLUDE_DIR ${KDE4_INSTALL_DIR}/include)
| |
| set(KDE4_KDECORE_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkdecore.dll.a)
| |
| set(KDE4_KDE3SUPPORT_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkde3support.dll.a)
| |
| set(KDE4_KDEUI_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkdeui.dll.a)
| |
| set(KDE4_KIO_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkio.dll.a)
| |
| set(KDE4_KDNSSD_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkdnssd.dll.a)
| |
| set(KDE4_KFILE_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkfile.dll.a)
| |
| set(KDE4_KHTML_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkhtml.dll.a)
| |
| set(KDE4_KNEWSTUFF2_LIBRARY ${KDE4_INSTALL_DIR}/lib/libknewstuff2.dll.a)
| |
| set(KDE4_KNOTIFYCONFIG_LIBRARY ${KDE4_INSTALL_DIR}/lib/libknotifyconfig.dll.a)
| |
| set(KDE4_KPARTS_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkparts.dll.a)
| |
| set(KDE4_KTEXTEDITOR_LIBRARY ${KDE4_INSTALL_DIR}/lib/libktexteditor.dll.a)
| |
| set(KDE4_KUTILS_LIBRARY ${KDE4_INSTALL_DIR}/lib/libkutils.dll.a)
| |
| set(KDE4_PHONON_LIBRARY ${KDE4_INSTALL_DIR}/lib/libphonon.dll.a)
| |
| set(KDE4_SOLID_LIBRARY ${KDE4_INSTALL_DIR}/lib/libsolid.dll.a)
| |
| </code>
| |
| adjust the values according to your setup
| |
| ==Build kdelibs==
| |
| <code bash>
| |
| svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
| |
| cd kdelibs
| |
| mkdir build
| |
| cd build
| |
| cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake ..
| |
| </code>
| |
| * you have to make a link to your kde4automoc for linux in the bin directory
| |
| <code bash>
| |
| ln -s /path/to/kde4automoc bin/
| |
| </code>
| |
| * since linux is case sensitive you have to make symbolic links for some headers
| |
| <code bash>
| |
| cd /usr/i586-mingw32msvc/include
| |
| ln -s userenv.h Userenv.h
| |
| ln -s windows.h Windows.h
| |
| cd /windows/kde4/include
| |
| ln -s soprano Soprano
| |
| </code>
| |