Project

General

Profile

Build Quassel on Windows » History » Version 22

JabLuszko, 06/14/2010 10:43 PM

1 7 sph
h1. Building Quassel on Windows
2 1 sph
3 3 sph
{{toc}}
4 3 sph
5 1 sph
h2. Software Requirements
6 1 sph
7 1 sph
* Windows
8 8 Datafreak
* "Visual C++ 2008 Express":http://www.microsoft.com/germany/express/download/webdownload.aspx
9 19 Datafreak
* "Visual C++ 2008 Redistributables":http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2
10 19 Datafreak
* "Platform SDK":http://go.microsoft.com/fwlink/?LinkID=150217&clcid=0x409
11 19 Datafreak
* "DirectX SDK":http://go.microsoft.com/fwlink/?LinkID=71193&clcid=0x409
12 1 sph
* "OpenSSL":http://www.slproweb.com/products/Win32OpenSSL.html
13 1 sph
* "msysgit":http://code.google.com/p/msysgit/downloads/list (>= 1.6.0.2)
14 1 sph
* "CMake":http://www.cmake.org/cmake/resources/software.html
15 21 Datafreak
* "Qt for Open Source C++ development on Windows":http://qt.nokia.com/downloads *(not MinGW)* (>= 4.5.3)
16 13 Datafreak
* "PostgreSQL":http://www.enterprisedb.com/products/pgdownload.do#windows (Optional for PostgreSQL-Support)
17 1 sph
18 1 sph
h2. Installation
19 1 sph
20 8 Datafreak
h3. Step 1: Install Visual C++ 2008 Express
21 1 sph
22 1 sph
23 6 sph
h3. Step 2: Install Visual C++ 2008 Redistributables. 
24 1 sph
25 1 sph
These will be needed for OpenSSL.
26 1 sph
27 1 sph
28 1 sph
h3. Step 3: Install Platform SDK
29 6 sph
30 11 Datafreak
h3. Step 4: Install DirectX SDK
31 1 sph
32 10 Datafreak
h3. Step 5: Install OpenSSL
33 5 sph
34 1 sph
The first error message can be ignored as the Redistributables were installed.
35 1 sph
36 10 Datafreak
h3. Step 6: Install Git
37 1 sph
38 1 sph
39 10 Datafreak
h3. Step 7: Install CMake
40 1 sph
41 1 sph
42 1 sph
h3. Step 8: Update the environment variables
43 10 Datafreak
44 1 sph
Go to the system settings (Start => Control Panel => System), go to the "Advanced" tab and click on Environment Variables.
45 1 sph
46 1 sph
First you'll have to edit the "Path" variable. Append the following to the current value:
47 19 Datafreak
<pre>;C:\Programme\Microsoft SDKs\Windows\v7.0\Bin;C:\Program Files\Git\bin;C:\OpenSSL\bin</pre>
48 1 sph
49 1 sph
Next, create the following new system variables:
50 1 sph
51 1 sph
* LIB: 
52 20 Datafreak
<pre>C:\Programme\Microsoft SDKs\Windows\v7.0\Lib;C:\Programme\Microsoft DirectX SDK (February 2010)\Lib;C:\OpenSSL\lib\VC\static</pre>
53 19 Datafreak
54 1 sph
* INCLUDE:
55 20 Datafreak
<pre>C:\Programme\Microsoft SDKs\Windows\v7.0\Include;C:\Programme\Microsoft DirectX SDK (February 2010)\Include;C:\OpenSSL\include</pre>
56 19 Datafreak
57 1 sph
* QMAKESPEC:
58 11 Datafreak
<pre>win32-msvc2008</pre>
59 1 sph
60 14 pennywise
h3. Step 9: (Optional Install PostgreSQL and Update the environment variables)
61 1 sph
62 12 Datafreak
Install PostgreSQL and edit the "Path","LIB" and "INCLUDE" variable. Append the following to the current value:
63 12 Datafreak
* Path
64 12 Datafreak
<pre>;C:\Programme\PostgreSQL\8.4\bin</pre>
65 12 Datafreak
66 12 Datafreak
* LIB: 
67 12 Datafreak
<pre>;C:\Programme\PostgreSQL\8.4\lib</pre>
68 1 sph
69 12 Datafreak
* INCLUDE:
70 1 sph
<pre>;C:\Programme\PostgreSQL\8.4\include</pre>
71 12 Datafreak
72 12 Datafreak
h3. Step 10: Compile and Install Qt
73 12 Datafreak
74 1 sph
Create a directory (e.g. C:\dev\) and unpack Qt.
75 11 Datafreak
76 1 sph
Now open the Visual Studio 2008 command line.
77 1 sph
78 1 sph
And cd to the directory containing Qt. Now you can configure the Qt installation with the following command:
79 1 sph
* Static without PostgreSQL-Support:
80 21 Datafreak
<pre>configure.exe -platform win32-msvc2008 -static -release -qt-sql-sqlite -no-qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -openssl-linked -confirm-license -opensource -no-phonon -no-dbus -webkit -nomake demos -nomake examples OPENSSL_LIBS="-lssleay32MD -llibeay32MD" -l gdi32</pre>
81 12 Datafreak
* Shared with PostgreSQL-Support:
82 21 Datafreak
<pre>configure.exe -platform win32-msvc2008 -shared  -release -qt-sql-sqlite -qt-sql-psql -no-qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -openssl-linked -confirm-license -opensource -phonon -phonon-backend -nomake demos -nomake examples OPENSSL_LIBS="-lssleay32MD -llibeay32MD" -l gdi32</pre>
83 15 Datafreak
84 1 sph
Then you can compiled Qt with these commands:
85 1 sph
<pre>
86 8 Datafreak
nmake
87 1 sph
</pre>
88 1 sph
89 1 sph
You can close the prompt after this.
90 1 sph
91 12 Datafreak
h3. Step 11: Update the environment variables again
92 1 sph
93 1 sph
After installing Qt, you will have to append the following:
94 1 sph
95 8 Datafreak
* Path
96 19 Datafreak
<pre>;C:\dev\qt-everywhere-opensource-src-4.6.2\bin</pre>
97 1 sph
98 1 sph
* LIB: 
99 19 Datafreak
<pre>;C:\dev\qt-everywhere-opensource-src-4.6.2\lib</pre>
100 1 sph
101 1 sph
* INCLUDE:
102 19 Datafreak
<pre>;C:\dev\qt-everywhere-opensource-src-4.6.2\include</pre>
103 1 sph
104 1 sph
105 1 sph
h3. Step 12: Compile Quassel
106 12 Datafreak
107 1 sph
Open a new Visual Studio 2008 command line and go to the "C:\dev" directory again. Use git to download the Quassel source code.
108 8 Datafreak
<pre>git clone git://git.quassel-irc.org/quassel.git</pre>
109 1 sph
110 1 sph
This will create a new directory "quassel" containing the source. When you want to update Quassel later, you just have to go to this directory (C:\dev\quassel) and do a "git pull" to update the source code.
111 1 sph
112 1 sph
Next, create a new directory in "C:\dev" in which Quassel will be built. In our case, we will simply call it "build". Change to this directory and enter the following command to configure Quassel:
113 19 Datafreak
<pre>cmake -G"NMake Makefiles" C:\dev\quassel -DSTATIC=1 -DWANT_CORE=ON -DWANT_QTCLIENT=ON -DWANT_MONO=ON -DWITH_PHONON=OFF -DCMAKE_BUILD_TYPE=Release</pre>
114 19 Datafreak
115 1 sph
116 1 sph
And after that:
117 1 sph
<pre>nmake</pre>
118 1 sph
119 1 sph
This will build Quasselcore, Quasselclient and Quasselmonolithic which can be found in the "C:\dev\build" directory.
120 2 sph
121 22 JabLuszko
h2. OpenSSL unresolved symbols
122 22 JabLuszko
123 22 JabLuszko
If while building quasselclient you get errors:
124 22 JabLuszko
<pre>
125 22 JabLuszko
libeay32MT.lib(e_capi.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateContext@4 referenced in function _capi_free_key
126 22 JabLuszko
libeay32MT.lib(e_capi.obj) : error LNK2019: unresolved external symbol __imp__CertGetCertificateContextProperty@16 referenced in function _capi_get_prov_info
127 22 JabLuszko
libeay32MT.lib(e_capi.obj) : error LNK2019: unresolved external symbol __imp__CertOpenStore@20 referenced in function _capi_open_store
128 22 JabLuszko
</pre>
129 22 JabLuszko
Open build\src\CMakeFiles\quasselclient.dir\build.make, find "Linking CXX executable ..\quasselclient.exe" and few lines lower there should be plenty of libs files - just add "Crypt32.lib" there and try nmake again
130 2 sph
131 2 sph
h2. Related links
132 2 sph
133 2 sph
* "German tutorial by Datafreak":http://www.datafreak.eu/2008/11/build-qt-and-quassel-under-windows/