Difference between revisions of "Projects/KDE on Windows/Compiling Applications"

Jump to: navigation, search
(Start writing up instructions for compiling third-party apps using a KDE installation from packages)
 
m (Text replace - "</code>" to "</syntaxhighlight>")
(5 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
== Requirements ==
 
== Requirements ==
  
* Naturally, you need an installation of KDE. You the KDE on Windows installer to install it.
+
* Naturally, you need an installation of KDE. Use the KDE on Windows installer to install it.
 
** On the third page of the installer, select "Package Manager mode", and be sure to pick the compiler that you intend to use. For simplicity, we will assume you use "MinGW4" (32bit).
 
** On the third page of the installer, select "Package Manager mode", and be sure to pick the compiler that you intend to use. For simplicity, we will assume you use "MinGW4" (32bit).
 
** Be sure to install at least the following packages:
 
** Be sure to install at least the following packages:
Line 22: Line 22:
 
* Install MinGW4. These days MinGW has a relatively simple installer. See [http://www.mingw.org/wiki/InstallationHOWTOforMinGW] for further info. Be sure to install at least the C++ compiler.
 
* Install MinGW4. These days MinGW has a relatively simple installer. See [http://www.mingw.org/wiki/InstallationHOWTOforMinGW] for further info. Be sure to install at least the C++ compiler.
 
* You need perl. E.g. from [http://strawberryperl.com/] . TODO: check whether perl is available from the installer.
 
* You need perl. E.g. from [http://strawberryperl.com/] . TODO: check whether perl is available from the installer.
 +
 +
== Further preparations ==
 +
* '''Hack for KDE 4.4.4''': You will need to edit the file ''KDEDIR''\share\apps\cmake\modules\KDELibs4LibraryTargets-release.cmake around lines 20 and 36) and replace "U:" by "${_IMPORT_PREFIX}".
 +
* The same goes for KDE 4.5.4: replace "L:" by "${_IMPORT_PREFIX}".
  
 
== Procedure ==
 
== Procedure ==
 +
Well give the procedure in the form of a .bat file, below. Run this from your source folder.
 +
 +
<syntaxhighlight lang="text">
 +
REM modify these lines to match according to your installation:
 +
SET KDEPREFIX=C:\KDE
 +
SET MINGWPREFIX=C:\mingw
 +
SET PERLPREFIX=C:\Perl
 +
 +
REM you may want to add some cmake flags:
 +
SET ADD_CMAKE_FLAGS=-DCMAKE_BUILD_TYPE=Release
 +
REM this addition appears to be needed for KDE 4.4.x with MinGW 4.5.x:
 +
SET ADD_CMAKE_FLAGS=%ADD_CMAKE_FLAGS% -DCMAKE_EXE_LINKER_FLAGS="--static-libc++ --static-libcc"
 +
 +
REM --------------------------------------------
 +
REM everything below should not need customizing
 +
REM --------------------------------------------
 +
 +
REM add required entries to the search path.
 +
REM NOTE: some entries may already be present, but this will do no harm.
 +
SET PATH=%MINGWPREFIX%\bin;%KDEPREFIX%\bin;%KDEPREFIX%\lib;%PERLPREFIX%\bin;%PATH%
 +
 +
REM we build in a subdirectory "build" of the sources.
 +
SET SOURCE_DIR=%~dp0
 +
cd %~dp0
 +
mkdir build
 +
cd build
 +
 +
cmake %SOURCE_DIR% -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=%KDEPREFIX% %ADD_CMAKE_FLAGS%
 +
mingw32-make install
 +
 +
REM to install to a different path (e.g. for packaging) use
 +
REM mingw32-make install DESTDIR=Some\Other\Folder
 +
</syntaxhighlight>
 +
 +
== Troubleshooting ==
 +
This did not work for you? You can ask for help on kde-windows@kde.org or irc://irc.freenode.net/kde-windows .
 +
 +
== What next? ==
 +
So you got it to work? Great! Then probably your next concern is how to distribute the binaries you just compiled. See [[Projects/KDE_on_Windows/Packaging]] for that.

Revision as of 21:57, 29 June 2011

Contents

Compiling (third-party) applications for KDE on Windows

This page gives instructions on how to build a KDE based application on Windows. It is mostly targeted at developers / power users of KDE applications which are not regularly included in the KDE on Windows installer. This typically applies to third-party applications, but may be of interest to developers of applications inside the KDE software collection / repository as well.

Note however that in many cases using emerge may be a better alternative, esp. if you want to compile your application against the most recent development version of KDE.

Requirements

  • Naturally, you need an installation of KDE. Use the KDE on Windows installer to install it.
    • On the third page of the installer, select "Package Manager mode", and be sure to pick the compiler that you intend to use. For simplicity, we will assume you use "MinGW4" (32bit).
    • Be sure to install at least the following packages:
      • cmake (Bin)
      • automoc (Bin)
      • kdebase-runtime-mingw4 (Bin)
      • kdebase-workspace-mingw4 (Bin)
      • kdelibs-mingw4 (Bin, Devel)
      • qt-mingw4 (Bin, Devel)
      • phonon-mingw4 (Bin, Devel)
      • soprano-mingw4 (Bin, Devel)
      • Many more needed dependencies will be included automatically
      • Depending on the application you may need to select additional packages, such as e.g. kdepimlibs (Bin, Devel)
    • NOTE Package "automoc" is not included in the 4.4.4-release, at the time of this writing. You can download the 4.3.2-version, and unpack this to you KDE installation root.
  • Install MinGW4. These days MinGW has a relatively simple installer. See [1] for further info. Be sure to install at least the C++ compiler.
  • You need perl. E.g. from [2] . TODO: check whether perl is available from the installer.

Further preparations

  • Hack for KDE 4.4.4: You will need to edit the file KDEDIR\share\apps\cmake\modules\KDELibs4LibraryTargets-release.cmake around lines 20 and 36) and replace "U:" by "${_IMPORT_PREFIX}".
  • The same goes for KDE 4.5.4: replace "L:" by "${_IMPORT_PREFIX}".

Procedure

Well give the procedure in the form of a .bat file, below. Run this from your source folder.

REM modify these lines to match according to your installation:
SET KDEPREFIX=C:\KDE
SET MINGWPREFIX=C:\mingw
SET PERLPREFIX=C:\Perl
 
REM you may want to add some cmake flags:
SET ADD_CMAKE_FLAGS=-DCMAKE_BUILD_TYPE=Release
REM this addition appears to be needed for KDE 4.4.x with MinGW 4.5.x:
SET ADD_CMAKE_FLAGS=%ADD_CMAKE_FLAGS% -DCMAKE_EXE_LINKER_FLAGS="--static-libc++ --static-libcc"
 
REM --------------------------------------------
REM everything below should not need customizing
REM --------------------------------------------
 
REM add required entries to the search path.
REM NOTE: some entries may already be present, but this will do no harm.
SET PATH=%MINGWPREFIX%\bin;%KDEPREFIX%\bin;%KDEPREFIX%\lib;%PERLPREFIX%\bin;%PATH%
 
REM we build in a subdirectory "build" of the sources.
SET SOURCE_DIR=%~dp0
cd %~dp0
mkdir build
cd build
 
cmake %SOURCE_DIR% -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=%KDEPREFIX% %ADD_CMAKE_FLAGS%
mingw32-make install
 
REM to install to a different path (e.g. for packaging) use
REM mingw32-make install DESTDIR=Some\Other\Folder

Troubleshooting

This did not work for you? You can ask for help on kde-windows@kde.org or irc://irc.freenode.net/kde-windows .

What next?

So you got it to work? Great! Then probably your next concern is how to distribute the binaries you just compiled. See Projects/KDE_on_Windows/Packaging for that.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal