Difference between revisions of "Getting Started/Build/Windows/MS Visual Studio"

Jump to: navigation, search
m (Getting_Started/Build/KDE4/Windows/Littlecms.patch)
 
(85 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 +
{{improve|''This page is outdated - please don't use it anymore unless you know exactly what you do. Use [[Getting_Started/Build/KDE4/Windows/emerge|emerge]] instead''}}
 
{{KDE4}}
 
{{KDE4}}
 
{{improve|''This page has been moved out of [http://kdelibs.com/wiki/index.php/Building_KDElibs_4_using_MS_Visual_Studio kdelibs.com] wiki page.''}}
 
{{improve|''This page has been moved out of [http://kdelibs.com/wiki/index.php/Building_KDElibs_4_using_MS_Visual_Studio kdelibs.com] wiki page.''}}
=== Install ===
+
== Basic Tools ==
Install following, no compiling is required.
+
=== Kdewin-Installer ===
==== The Compiler ====
+
This is a program that lets you easily install all the requirements for building kdelibs. It also has a list of tools in its list that are helpful and needed, like the mingw compiler suite, subversion clients, debugging tools and so on.
You can use either:
+
* (commercial) Visual Studio.NET (2003), Visual Studio 2005, or
+
* free (as in beer) [http://msdn.microsoft.com/vstudio/express/visualC/default.aspx Visual Studio 2005 Express Edition] with the [http://www.microsoft.com/downloads/details.aspx?familyid=484269E2-3B89-47E3-8EB7-1F2BE6D7123A Platfrom SDK]
+
  
Express Edition users: If you want to generate project files for Visual C++ then you must add the Platform SDK include and library directory to the default directories of the IDE:
+
The kdewin-installer is available in a GUI and console-only form from
 +
[http://download.cegit.de/kde-windows/installer/ the kdewin-installer download page].
  
<pre>
+
=== The Compiler ===
Open Visual C++, go to Tool->Options
+
*First, uninstall previous version of Visual Studio, e.g. 2005 or 2003 if you have one. Do this to avoid problems.
in "Projects and Solutions" go to "VC++ Directories"
+
*Now, you can use either:
 +
** [[#Visual Studio 2008 SP1|(commercial) Visual Studio 2008 SP1]], or
 +
** [[#Visual Studio 2008 SP1 Express Edition|free (as in beer) Visual Studio 2008 SP1 Express Edition]]
 +
{{Note|It is recommended to install Visual studio into a path not containing spaces. To do this, change the installation path from the proposed ..\Program Files\ to something like c:\vc9.}}
  
On the right add the paths to your Platform SDK files:
+
{{warning|Visual Studio 2005 SP1 or free (as in beer) Express 2005 are no longer supported. Moreover the Express version is not available at microsoft.com.}}
for "Library Files": YOUR_PLATFORM_SDK_PATH\lib
+
for "Include Files": YOUR_PLATFORM_SDK_PATH\include
+
</pre>
+
  
==== CMake ====
+
====Visual Studio 2008 SP1====
[http://www.cmake.org CMake] is the make tool used by KDE.
+
There is not much to do - installer of the commercial version sets up the environment. Just do not forget to run <tt>vcvarsall.bat</tt> to set your environment variables.
* use the most recent binaries from here [http://www.cmake.org/files/v2.4/ http://www.cmake.org/files/v2.4/] (the filename should be like <tt>cmake-2.4.?-win32-x86.zip</tt>; you can also pick an .exe file instead of .zip). Make sure you use at least cmake 2.4.5
+
* or get CMake from [http://cmake.org/HTML/Download.html#cvs CVS] and compile it yourself
+
  
Install cmake in a path without spaces to avoid troubles (at least under win2k).
+
====Visual Studio 2008 SP1 Express Edition====
 +
Install it using the Web Install (downloader) at [http://www.microsoft.com/express/download/ http://www.microsoft.com/express/download]. It takes about 130 MB of download, assuming no MS SQL Server is selected.  
  
==== Perl ====
+
The installer also downloads the Windows SDK. It is installed into %PROGRAMFILES%\Microsoft SDKs\Windows.
Perl is a script language used to generate files. Install a Perl for Windows, e.g. ActivePerl from http://www.activestate.com
+
Only version 6.0a is installed by the Visual Studio 2008 Express installer, while 6.1 is required to compile KDE components. So also download and install [http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&displaylang=en version 6.1, i.e. Windows SDK for Windows Server 2008] by hand. See also the [http://msdn.microsoft.com/en-us/windowsserver/dd146047.aspx Which SDK is Right for Me?] document.
  
==== win32libs  ====
+
=== Improve Integration with the Visual Studio Environment ===
''win32libs'' contains a collection of libraries not available by default on Windows.
+
-> [[Development/Tutorials/Debugging/Debugging_on_MS_Windows#Enable_automatic_expanding_of_Qt_data_structures|Enable automatic expanding of Qt data structures]]
See [[Getting_Started/Build/KDE4/Windows/3rd-party_libraries|3rd-party libraries required for KDElibs 4]].
+
  
=== Compile and Install ===
+
=== CMake ===
These libraries you must compile and install by your own.
+
[http://www.cmake.org CMake] is the make tool used by KDE.
 +
You can get the most recent binaries from [http://www.cmake.org/HTML/Download.html here]. Use the Win32 Installer or the zip archive. Make sure you use at least cmake 2.4.5
  
==== D-Bus for Windows ====
+
On Windows 2000, it's recommended to install cmake in a path without spaces to avoid troubles.
Be sure you've installed [[#win32libs|win32libs]]!
+
  
Download the latest [http://sourceforge.net/project/showfiles.php?group_id=171968 winDBus sources] (which are already patched) and extract them into "C:\svn\windbus" or get the latest [http://sourceforge.net/svn/?group_id=171968 svn sources].
+
== Compile and Install additional libraries ==
<pre>
+
These libraries have to be installed:
cd c:\svn\windbus
+
patch -p0 < DBus-win32.patch
+
cd ..
+
mkdir windbus-build
+
cd windbus-build
+
cmake -G "Visual Studio 8 2005" ..\windbus\cmake\
+
</pre>
+
(use -G "Visual Studio 7 .NET 2003" for the older compiler)
+
  
<tt>dbus.sln</tt> solution file will be created. Build and '''install''' the Debug and Release builds with the IDE. You can switch between the Debug and Release configuration in the
+
=== D-Bus for Windows ===
<tt>Build -> Configuration Manager</tt> menu.
+
This library can be downloaded and installed with the installer (use the package name dbus-msvc) or you can [[Getting_Started/Build/KDE4/Windows/Building DBus|compile]] it by yourself.
  
'''Tip:''' to perform compilation and installation from the command line, type:
+
=== Qt 4 ===
devenv /build Debug /project INSTALL dbus.sln
+
This Framework can be downloaded with the installer, or you can [[Getting_Started/Build/Windows/Building Qt 4|build it on your own]].
devenv /build Release /project INSTALL dbus.sln
+
  
Default target for the installation is <tt>%PROGRAMFILES%\dbus</tt>.
+
=== KDESupport Libraries ===
 +
There are several libraries which will be required for building kdelibs. [[Getting Started/Build/Windows/Building KDESupport Libraries|You may want to compile them yourself]] or simply download them using the KDEWin-Installer. You will need:
 +
*kdewin32 (compiled with msvc)
 +
*strigi
 +
*soprano
 +
*qca2
 +
*qimageblitz
  
==== Qt 4 ====
+
=== Environment Settings ===
Currently you need qt-copy from kde svn to successful compile kdelibs! Maybe a current snapshot from 4.3 also works fine.
+
To set up a build environment, follow the steps over [[Getting Started/Build/Windows/Environment|here]]. '''If you have Cygwin installed, please be sure to remove Cygwin's /bin out of your path.'''
  
# '''Get the Qt4 source code'''
+
== Build KDElibs ==
#* Trolltech customers: get it from Trolltech. After running the exe file, the sources will be unpacked into a selected directory.
+
Check out the sources and make another build directory at the same level as kdelibs:  
#* Open Source developers: check out ''qt-copy'' from http://websvn.kde.org/trunk/qt-copy/ with your favorite svn client. Then patch the source code with KDE's own patches first: <tt>cd qt-copy; bash apply_patches</tt>.
+
# '''Compile Qt4'''
+
#* Trolltech customers: just start <tt>configure.exe</tt> and perform the installation.
+
#* Open Source developers: Get from unofficial (but legal) Qt4 patches for MSVC>=7.x from [http://sourceforge.net/project/showfiles.php?group_id=49109&package_id=165202 http://sourceforge.net/projects/qtwin/]. Make sure to use the once for qt-copy! Note that Trolltech does not provide support for these compilers, so '''do not post any question about this patch to the Trolltech's mailing list'''. The files are stored in the [http://qtwin.svn.sourceforge.net/viewvc/qtwin/qt-4/trunk/qtwin_patch Sourceforge SVN repository].
+
#** Unpack the file in the main Qt4 directory and apply the patches to Qt4: call <tt>installpatch4x.bat</tt> in the DOS window, or just run this batch file.
+
#** Configure Qt4: You will need openssl support - so make sure it's enabled!
+
Also make sure that configure.exe find openssl headers and libs:
+
 
<pre>
 
<pre>
qconfigure {PLATFORM} -openssl -I "<path to openssl headers>" \
+
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
-L "<path to openssl libs>" -qdbus -I "<path to windbus headers>" \
+
-L "<path to windbus libs>"
+
</pre>
+
<tt>{PLATFORM}</tt> can be <tt>msvc.net</tt> for msvc .NET (2003) or <tt>msvc2005</tt> for msvc 2005.
+
This is needed to simplify path names in the future if you did not use the commercial <tt>configure.exe</tt> GUI installer:
+
<pre>
+
set QTDIR={your qt installation directory}
+
</pre>
+
 
+
'''Note:''' this (QTDIR) and the subsequent environment variables described below on this page could be set globally in the "System" applet, Advanced->Environment Variables. Optionally, if you want to have multiple configurations (e.g. Qt3 and Qt4) on the same machine and account, you can enter appropriate ''set'' commands into a single .bat file, e.g. <tt>environment.bat</tt> which you can then execute once in a new ''cmd'' shell.
+
 
+
See also alternative instructions at [http://qtnode.net/wiki?title=Qt4_with_Visual_Studio qtnode.net].
+
 
+
==== kdewin32 ====
+
kdewin32 is a support library required specifically for Windows in order to be able to build KDElibs.
+
 
+
We will refer to <tt>{KDE_SOURCE_DIR}</tt> as to a directory of your choice where you want to keep KDE source code and its "build" directories. You need enough of disk space for this. '''Do not''' use paths with spaces to avoid potential problems.
+
 
+
<pre>
+
cd {KDE_SOURCE_DIR}
+
svn co -N svn://anonsvn.kde.org/home/kde/trunk
+
</pre>
+
Note: if you want to use your KDE SVN account with write access type this instead: <tt>svn --username={yourname} co -N https://svn.kde.org/home/kde/trunk</tt>. Use the --username  and https address for every command mentioned below too.
+
<pre>
+
cd trunk
+
svn up -N kdesupport
+
cd kdesupport
+
svn up kdewin32
+
mkdir kdewin32-build
+
cd kdewin32-build
+
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
-G"Visual Studio 8 2005" ..\kdewin32
+
</pre>
+
(use -G"Visual Studio 7 .NET 2003" for the older compiler, and replace Debug by Release for release build)
+
 
+
<tt>kdewin32.sln</tt> solution file will be created. Build and '''install''' the Debug and Release builds with the IDE. '''Tip:'' to do this from command line, type:
+
 
+
devenv /build Debug /project INSTALL kdewin32.sln
+
devenv /build Release /project INSTALL kdewin32.sln
+
 
+
'''Note:''' Whenever you update your checkout '''don't forget''' to rebuild and '''reinstall''' kdewin32.
+
 
+
==== Other kdesupport libs ====
+
You'll need some more libs which are located in http://websvn.kde.org/trunk/kdesupport/
+
They're all compilable with cmake (if not, let us know)
+
 
+
===== strigi =====
+
strigi is required by kdelibs:
+
<pre>
+
cd kdesupport
+
svn up strigi
+
mkdir strigi-build
+
cd strigi-build
+
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
-G"NMake Makefiles" ..\strigi
+
nmake
+
nmake install
+
</pre>
+
===== soprano =====
+
Soprano is also needed, it depends on 'redland' library which is available through the kdewin installer. Development versions of KDElibs now require soprano both in release and debug versions, so we're using two build directories: soprano-build and soprano-build-rel.
+
<pre>
+
cd kdesupport
+
svn up soprano
+
mkdir soprano-build
+
cd soprano-build
+
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
-G"NMake Makefiles" ..\soprano
+
nmake
+
nmake install
+
 
cd ..
 
cd ..
mkdir soprano-build-rel
 
cd soprano-build-rel
 
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Release\
 
-G"NMake Makefiles" ..\soprano
 
nmake
 
nmake install
 
</pre>
 
===== qca =====
 
qca2 is needed to compile some apps (e.g. Kopete)
 
<pre>
 
cd qca2
 
svn up qca2
 
mkdir qca2-build
 
cd qca2-build
 
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
 
-G"NMake Makefiles" ..\qca2
 
nmake
 
nmake install
 
</pre>
 
 
==== shared-mime-info ====
 
The shared-mime-info package, is the freedesktop MIME standard used now by KDE. Download update-mime-database-*.*-*-bin.zip from
 
http://82.149.170.66/kde-windows/win32libs/zip/single/ and unpack the archive to kde4/ directory to get share/mime/ directory and bin/update-mime-database.exe program.
 
 
=== Build KDElibs ===
 
Check out the sources and make another build directory at the same level as kdelibs:
 
<pre>
 
cd {KDE_SOURCE_DIR}\trunk
 
svn up -N KDE
 
cd KDE
 
svn up kdelibs
 
 
mkdir kdelibs-build
 
mkdir kdelibs-build
 
cd kdelibs-build
 
cd kdelibs-build
Line 179: Line 66:
 
Now you have to add some paths to your PATH environment variable simliar to this:
 
Now you have to add some paths to your PATH environment variable simliar to this:
 
<pre>
 
<pre>
set PATH=%QTDIR%\bin;%PATH%;%PROGRAMFILES%\win32libs\lib;
+
set PATH=%QTDIR%\bin;%PATH%;%INSTALL_PATH%\lib;
        {location of your kdewin32 libs}\kdewin32\lib
+
 
</pre>
 
</pre>
 
Build KDE libraries with:
 
Build KDE libraries with:
 
<pre>
 
<pre>
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 
  -G"NMake Makefiles" ..\kdelibs
 
  -G"NMake Makefiles" ..\kdelibs
 
nmake
 
nmake
Line 191: Line 77:
 
or use the IDE:
 
or use the IDE:
 
<pre>
 
<pre>
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 
  -G "Visual Studio 8 2005" ..\kdelibs
 
  -G "Visual Studio 8 2005" ..\kdelibs
 
</pre>
 
</pre>
(use -G "Visual Studio 7 .NET 2003" for the older compiler)
+
(<strike>use -G "Visual Studio 7 .NET 2003" for the older compiler</strike>)
  
 
In the latter case <tt>kdelibs.sln</tt> solution file will be created. Build and '''install''' the Debug and Release builds with the IDE. '''Tip:''' to do this from command line, type:
 
In the latter case <tt>kdelibs.sln</tt> solution file will be created. Build and '''install''' the Debug and Release builds with the IDE. '''Tip:''' to do this from command line, type:
Line 201: Line 87:
 
  devenv /build Release /project INSTALL kdelibs.sln
 
  devenv /build Release /project INSTALL kdelibs.sln
  
To also build the test programs add the option <tt>-DKDE4_BUILD_TESTS=1</tt> to the <tt>cmake</tt> command.
+
The devenv command is not available in the Express Edition.
  
=== Troubles? ===
+
If you use makefiles and also want to build the test programs add the option <tt>-DKDE4_BUILD_TESTS=1</tt> to the <tt>cmake</tt> command. This is not necessary for the IDE projects.
*to enable the release build add <tt>-DCMAKE_BUILD_TYPE=Release</tt> to the <tt>cmake</tt> command
+
 
 +
== Troubles? ==
 +
*to enable the release build (for example if you get libcmt.lib vs msvcrt.lib conflict on linking stage) add <tt>-DCMAKE_BUILD_TYPE=Release</tt> to the <tt>cmake</tt> command
 
*when kdewin32 is not found, try adding the cmake parameter (with YOUR path)<tt>-DGNUWIN32_DIR=c:/gnuwin32</tt>
 
*when kdewin32 is not found, try adding the cmake parameter (with YOUR path)<tt>-DGNUWIN32_DIR=c:/gnuwin32</tt>
 
*don't use a cygwin or mingw shell, you will get errors because these shells use UNIX path names
 
*don't use a cygwin or mingw shell, you will get errors because these shells use UNIX path names
Line 211: Line 99:
 
*ask for more help on [https://mail.kde.org/mailman/listinfo/kde-buildsystem kde-buildsystem@kde.org] mailing list
 
*ask for more help on [https://mail.kde.org/mailman/listinfo/kde-buildsystem kde-buildsystem@kde.org] mailing list
 
*whenever you update your checkout DON'T forget to rebuild '''AND''' reinstall kdewin32.lib
 
*whenever you update your checkout DON'T forget to rebuild '''AND''' reinstall kdewin32.lib
 +
*Don't use an automoc4 executable with spaces in the path, or you will get strange error messages when running nmake (seems to be a nmake bug)
  
=== Going further: kdepimlibs ===
+
== Going further: kdepimlibs ==
 
'''kdepimlibs''' are needed by kdebase or other modules like koffice.  
 
'''kdepimlibs''' are needed by kdebase or other modules like koffice.  
==== Requirements ====
+
=== Requirements ===
 
kdepimlibs require:
 
kdepimlibs require:
* [http://boost.org/ boost libraries]. Download the tarball. As boost is consisted of headers only, unpack the tarball and copy <tt>boost</tt> subdirectory to <tt>%KDEDIR%\include</tt>. Then add use <tt>set BOOST_ROOT=%KDEDIR%\include</tt> (you may want to add it to your <tt>environment.bat</tt> file as well).
+
*[http://boost.org/ boost libraries]. Download the tarball. As boost is consisted of headers only, unpack the tarball and copy <tt>boost</tt> subdirectory to <tt>%KDEDIR%\include</tt>. Then add use <tt>set BOOST_ROOT=%KDEDIR%\include</tt> (you may want to add it to your <tt>environment.bat</tt> file as well).
* (really optional for now) [http://www.openldap.org OpenLDAP]: LDAP (Lightweight Directory Access Protocol) libraries Needed to provide LDAP functionality in KDE
+
*[http://www.gpg4win.org/ gpgme] libraries, needed to provide GNU Privacy Guard support in KDE PIM applications
* (really optional for now) [http://asg.web.cmu.edu/sasl/sasl-library.html cyrus-sasl]: Cyrus SASL API needed to support authentication of logins
+
*(really optional for now) [http://www.openldap.org OpenLDAP]: LDAP (Lightweight Directory Access Protocol) libraries Needed to provide LDAP functionality in KDE
==== Build ====
+
*(really optional for now) [http://asg.web.cmu.edu/sasl/sasl-library.html cyrus-sasl]: Cyrus SASL API needed to support authentication of logins
 +
 
 +
=== Build ===
 
Check out the sources, make another build directory and build:  
 
Check out the sources, make another build directory and build:  
 
<pre>
 
<pre>
Line 226: Line 117:
 
mkdir kdepimlibs-build
 
mkdir kdepimlibs-build
 
cd kdelibs-build
 
cd kdelibs-build
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIR% -DCMAKE_BUILD_TYPE=Debug\
+
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIRS% -DCMAKE_BUILD_TYPE=Debug\
 
  -G"NMake Makefiles" ..\kdepimlibs
 
  -G"NMake Makefiles" ..\kdepimlibs
 
nmake
 
nmake
 
nmake install
 
nmake install
 
</pre>
 
</pre>
 +
or use Visual Studio:
 +
<pre>
 +
cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 +
-G "Visual Studio 8 2005" ..\kdepimlibs
 +
</pre>
 +
(use -G "Visual Studio 7 .NET 2003" for the older compiler)
 +
 +
In the latter case <tt>kdepimlibs.sln</tt> solution file will be created. Build and '''install''' the Debug and Release builds with the IDE. '''Tip:''' to do this from command line, type:
 +
 +
devenv /build Debug /project INSTALL kdepimlibs.sln
 +
devenv /build Release /project INSTALL kdepimlibs.sln
 +
 +
The devenv command is not available in the Express Edition.
  
=== Going further: kofficelibs ===
+
== Going further: kofficelibs ==
 
''(work in progress, to be moved to KOffice wiki)''
 
''(work in progress, to be moved to KOffice wiki)''
  
 
'''kofficelibs''' are needed for apps like KWord or Kexi.
 
'''kofficelibs''' are needed for apps like KWord or Kexi.
==== Requirements ====
+
=== Requirements ===
 
kofficelibs require:
 
kofficelibs require:
 
*[http://www.littlecms.com Little cms] library. Download the newest lcms-1.??.zip from [http://www.littlecms.com/downloads.htm] and uncompress. To build it with msvc, go to <tt>Projects</tt> subdir and choose a subdir for your compiler (i.e. Vc7 or Vc2005).  
 
*[http://www.littlecms.com Little cms] library. Download the newest lcms-1.??.zip from [http://www.littlecms.com/downloads.htm] and uncompress. To build it with msvc, go to <tt>Projects</tt> subdir and choose a subdir for your compiler (i.e. Vc7 or Vc2005).  
Line 246: Line 150:
 
*#Copy lcms headers: from <tt>lcms-1.??\include</tt> copy <tt>*.h</tt> to <tt>%KDEDIR%\include</tt>.
 
*#Copy lcms headers: from <tt>lcms-1.??\include</tt> copy <tt>*.h</tt> to <tt>%KDEDIR%\include</tt>.
 
*#Later when you will run cmake for kofficelibs, you get message like <tt>-- Found lcms version 1.16, F:/kde4/lib/lcms.lib</tt>.
 
*#Later when you will run cmake for kofficelibs, you get message like <tt>-- Found lcms version 1.16, F:/kde4/lib/lcms.lib</tt>.
 +
 +
 +
== Building app modules using prebuilt kdelibs ==
 +
Install all devel packages using kdewin-installer as usual, + msvc2005. Then:
 +
<pre>
 +
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdesdk
 +
mkdir kdesdk\build
 +
cd kdesdk\build
 +
</pre>
 +
Now you have to add some paths to your PATH environment variable simliar to this:
 +
<pre>
 +
set PATH=%QTDIR%\bin;%PATH%;%INSTALL_PATH%\lib;
 +
</pre>
 +
You may need to setup msvc environment:
 +
<pre>
 +
call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86
 +
</pre>
 +
Build command:
 +
<pre>
 +
cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Release -G"NMake Makefiles" ..
 +
nmake
 +
nmake install
 +
</pre>
 +
 +
 +
==Useful links==
 +
*[[Getting_Started/Build/Windows/3rd-party_libraries|List of libraries that are needed to build KDE on windows]] (most of these are already installed by the kde-installer) .
 +
  
 
[[Category:MS Windows]]
 
[[Category:MS Windows]]

Latest revision as of 11:53, 3 March 2011

noframe
 
This section needs improvements: Please help us to

cleanup confusing sections and fix sections which contain a todo


This page is outdated - please don't use it anymore unless you know exactly what you do. Use emerge instead
Ktip.png
 
Tip
Note: This page is about KDE 4. It isn't applicable for KDE 3 development.
noframe
 
This section needs improvements: Please help us to

cleanup confusing sections and fix sections which contain a todo


This page has been moved out of kdelibs.com wiki page.

Contents

[edit] Basic Tools

[edit] Kdewin-Installer

This is a program that lets you easily install all the requirements for building kdelibs. It also has a list of tools in its list that are helpful and needed, like the mingw compiler suite, subversion clients, debugging tools and so on.

The kdewin-installer is available in a GUI and console-only form from the kdewin-installer download page.

[edit] The Compiler

noframe
 
Note
It is recommended to install Visual studio into a path not containing spaces. To do this, change the installation path from the proposed ..\Program Files\ to something like c:\vc9.
noframe
 
Warning
Visual Studio 2005 SP1 or free (as in beer) Express 2005 are no longer supported. Moreover the Express version is not available at microsoft.com.


[edit] Visual Studio 2008 SP1

There is not much to do - installer of the commercial version sets up the environment. Just do not forget to run vcvarsall.bat to set your environment variables.

[edit] Visual Studio 2008 SP1 Express Edition

Install it using the Web Install (downloader) at http://www.microsoft.com/express/download. It takes about 130 MB of download, assuming no MS SQL Server is selected.

The installer also downloads the Windows SDK. It is installed into %PROGRAMFILES%\Microsoft SDKs\Windows. Only version 6.0a is installed by the Visual Studio 2008 Express installer, while 6.1 is required to compile KDE components. So also download and install version 6.1, i.e. Windows SDK for Windows Server 2008 by hand. See also the Which SDK is Right for Me? document.

[edit] Improve Integration with the Visual Studio Environment

-> Enable automatic expanding of Qt data structures

[edit] CMake

CMake is the make tool used by KDE. You can get the most recent binaries from here. Use the Win32 Installer or the zip archive. Make sure you use at least cmake 2.4.5

On Windows 2000, it's recommended to install cmake in a path without spaces to avoid troubles.

[edit] Compile and Install additional libraries

These libraries have to be installed:

[edit] D-Bus for Windows

This library can be downloaded and installed with the installer (use the package name dbus-msvc) or you can compile it by yourself.

[edit] Qt 4

This Framework can be downloaded with the installer, or you can build it on your own.

[edit] KDESupport Libraries

There are several libraries which will be required for building kdelibs. You may want to compile them yourself or simply download them using the KDEWin-Installer. You will need:

  • kdewin32 (compiled with msvc)
  • strigi
  • soprano
  • qca2
  • qimageblitz

[edit] Environment Settings

To set up a build environment, follow the steps over here. If you have Cygwin installed, please be sure to remove Cygwin's /bin out of your path.

[edit] Build KDElibs

Check out the sources and make another build directory at the same level as kdelibs:

svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd ..
mkdir kdelibs-build
cd kdelibs-build

Now you have to add some paths to your PATH environment variable simliar to this:

set PATH=%QTDIR%\bin;%PATH%;%INSTALL_PATH%\lib;

Build KDE libraries with:

cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 -G"NMake Makefiles" ..\kdelibs
nmake
nmake install

or use the IDE:

cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 -G "Visual Studio 8 2005" ..\kdelibs

(use -G "Visual Studio 7 .NET 2003" for the older compiler)

In the latter case kdelibs.sln solution file will be created. Build and install the Debug and Release builds with the IDE. Tip: to do this from command line, type:

devenv /build Debug /project INSTALL kdelibs.sln
devenv /build Release /project INSTALL kdelibs.sln

The devenv command is not available in the Express Edition.

If you use makefiles and also want to build the test programs add the option -DKDE4_BUILD_TESTS=1 to the cmake command. This is not necessary for the IDE projects.

[edit] Troubles?

  • to enable the release build (for example if you get libcmt.lib vs msvcrt.lib conflict on linking stage) add -DCMAKE_BUILD_TYPE=Release to the cmake command
  • when kdewin32 is not found, try adding the cmake parameter (with YOUR path)-DGNUWIN32_DIR=c:/gnuwin32
  • don't use a cygwin or mingw shell, you will get errors because these shells use UNIX path names
  • you could restart the configure process by deleting CMakeCache.txt
  • you could test for only one library by deleting the assignment in CMakeCache.txt
  • ask for more help on kde-buildsystem@kde.org mailing list
  • whenever you update your checkout DON'T forget to rebuild AND reinstall kdewin32.lib
  • Don't use an automoc4 executable with spaces in the path, or you will get strange error messages when running nmake (seems to be a nmake bug)

[edit] Going further: kdepimlibs

kdepimlibs are needed by kdebase or other modules like koffice.

[edit] Requirements

kdepimlibs require:

  • boost libraries. Download the tarball. As boost is consisted of headers only, unpack the tarball and copy boost subdirectory to %KDEDIR%\include. Then add use set BOOST_ROOT=%KDEDIR%\include (you may want to add it to your environment.bat file as well).
  • gpgme libraries, needed to provide GNU Privacy Guard support in KDE PIM applications
  • (really optional for now) OpenLDAP: LDAP (Lightweight Directory Access Protocol) libraries Needed to provide LDAP functionality in KDE
  • (really optional for now) cyrus-sasl: Cyrus SASL API needed to support authentication of logins

[edit] Build

Check out the sources, make another build directory and build:

cd {KDE_SOURCE_DIR}\trunk\KDE
svn up kdepimlibs
mkdir kdepimlibs-build
cd kdelibs-build
cmake -DCMAKE_INSTALL_PREFIX=%KDEDIRS% -DCMAKE_BUILD_TYPE=Debug\
 -G"NMake Makefiles" ..\kdepimlibs
nmake
nmake install

or use Visual Studio:

cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Debug\
 -G "Visual Studio 8 2005" ..\kdepimlibs

(use -G "Visual Studio 7 .NET 2003" for the older compiler)

In the latter case kdepimlibs.sln solution file will be created. Build and install the Debug and Release builds with the IDE. Tip: to do this from command line, type:

devenv /build Debug /project INSTALL kdepimlibs.sln
devenv /build Release /project INSTALL kdepimlibs.sln

The devenv command is not available in the Express Edition.

[edit] Going further: kofficelibs

(work in progress, to be moved to KOffice wiki)

kofficelibs are needed for apps like KWord or Kexi.

[edit] Requirements

kofficelibs require:

  • Little cms library. Download the newest lcms-1.??.zip from [1] and uncompress. To build it with msvc, go to Projects subdir and choose a subdir for your compiler (i.e. Vc7 or Vc2005).
    1. Then you will see lcms.sln solution file - you can click it to open in the msvc IDE. But first, you need to fix some paths in the project files. You probably have %KDEDIR%\lib\jpeg.lib, not libjpeg.lib, so edit tifficc.vcproj, tiffdiff.vcproj and jpegicc.vcproj and change libjpeg.lib to jpeg.lib in AdditionalDependencies variable. Then add full path to your %KDEDIR%\include directory (where tiffio.h resides) in AdditionalIncludeDirectories variable, (note: do it by expanding KDEDIR environment variable, i.e the result should be like:
      AdditionalIncludeDirectories="..\..\include;f:\kde4\include"
      Then add AdditionalLibraryDirectories="c:\your\path\to\kde\lib" line just after every two occurences of AdditionalIncludeDirectories=. All the changes are presented in this pseudo-patch (change f:\ paths to your KDEDIR location!).
    2. You probbaly want to skip building Python wrapper, so click on Build->Configuration Manager menu command and check off "Build" in "Python" line.
    3. Select "Build Solution" menu command. After successful build, you should notice:Build: 9 succeeded, 0 failed, 1 skipped
    4. To also build Release versions of the binaries, in the Configuration Manager, change active configuration to Release and repeat steps 1-3.
    5. Copy the compiled binaries. From your lcms-1.??\Lib\Ms copy *.lib files to %KDEDIR%\lib. From lcms-1.??\bin copy *.dll and *.exe files to %KDEDIR%\bin.
    6. Copy lcms headers: from lcms-1.??\include copy *.h to %KDEDIR%\include.
    7. Later when you will run cmake for kofficelibs, you get message like -- Found lcms version 1.16, F:/kde4/lib/lcms.lib.


[edit] Building app modules using prebuilt kdelibs

Install all devel packages using kdewin-installer as usual, + msvc2005. Then:

svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdesdk
mkdir kdesdk\build
cd kdesdk\build

Now you have to add some paths to your PATH environment variable simliar to this:

set PATH=%QTDIR%\bin;%PATH%;%INSTALL_PATH%\lib;

You may need to setup msvc environment:

call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86

Build command:

cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_PATH% -DCMAKE_BUILD_TYPE=Release -G"NMake Makefiles" ..
nmake
nmake install


[edit] Useful links


This page was last modified on 3 March 2011, at 11:53. This page has been accessed 37,260 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal