Subversion Repositories Scribus

Rev

Rev 19087 | Rev 19227 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
16720 jghali 1
BUILDING SCRIBUS ON MICROSOFT WINDOWS WITH MICROSOFT VISUAL STUDIO
2
==================================================================
3
 
4
HOW TO DO THE BUILD
5
===================
6
 
19104 jghali 7
This documentation is minimal and assume you have a decent knowledge of
16720 jghali 8
Microsoft Visual Studio. No help regarding use of Visual Studio and
9
related tools will be provided.
10
 
11
You will need:
12
	- Microsoft Windows XP, Vista or 7
13
	- Microsoft Visual Studio 2008 or Visual C++ Express Edition 2008
17717 jghali 14
	- A recent Qt release built with Visual Studio 2008 (version >= 4.7)
17379 jghali 15
	- Cairo sources from cairographics.org (version >= 1.11.4)
16
	- Pixman sources from cairographics.org (version >= 0.24.4)
16720 jghali 17
	- Boost from www.boost.org (version >= 1.35.0)
17505 jghali 18
	- Freetype sources from freetype.org (version >= 2.4.0)
19
	- Libhunspell sources from http://hunspell.sourceforge.net/ (version >= 1.3.2)
16720 jghali 20
	- Libjpeg win32 libs and binaries from the GnuWin32 project
21
	- Libtiff win32 libs and binaries from the GnuWin32 project
17505 jghali 22
	- Libxml2 win32 binaries from the Libxml project
16720 jghali 23
	- LittleCMS sources from www.littlecms.com (version >= 2.1)
17717 jghali 24
	- PoDoFo sources from podofo.sourceforge.net (version >= 0.8.0)
18026 jghali 25
	- Poppler sources from poppler.freedesktop.org (version >= 0.19.0)
26
	- Poppler data from poppler.freedesktop.org (version >= 0.4.5)
16720 jghali 27
	- A Python 2.7 Windows binary build.
28
      For debug builds, you'll need a release that contains the python27_d.dll .
29
 
30
Some more details can be found below in the section entitled GETTING DEPENDENCIES.
31
 
19104 jghali 32
After having installed all dependencies, open Scribus-build-props.vsprops files located
16720 jghali 33
in Scribus\win32\vc9 and update the dependency paths to match your system.
34
 
19087 jghali 35
If you have Visual Studio 2010, open the Visual Studio solution located in Scribus\win32\vc10 and start building.
36
If you have Visual Studio 2012, open the Visual Studio solution located in Scribus\win32\vc11 and start building.
16720 jghali 37
 
19087 jghali 38
After building completed, you will find executables in a Scribus-builds\scribus-$(Configuration)-$(Platform)-*
19104 jghali 39
directory located in same directory as Scribus sources. Those executables will not function yet.
16720 jghali 40
Scribus resources must be copied from source directory to install directory first.
41
 
19104 jghali 42
In order to do that, create a batch script and copy/paste following lines:
16720 jghali 43
 
44
set SCRIBUS_SRC_PATH=.\Scribus
45
set SCRIBUS_BUILD_ROOT=.\Scribus-builds
19087 jghali 46
set SCRIBUS_INSTALL_PATH=.\Scribus-builds\scribus-debug-win32-v100
16720 jghali 47
 
48
 copy %SCRIBUS_SRC_PATH%\AUTHORS %SCRIBUS_INSTALL_PATH%\share\doc
49
 copy %SCRIBUS_SRC_PATH%\COPYING %SCRIBUS_INSTALL_PATH%\share\doc
50
 copy %SCRIBUS_SRC_PATH%\LINKS %SCRIBUS_INSTALL_PATH%\share\doc
51
 copy %SCRIBUS_SRC_PATH%\TRANSLATION %SCRIBUS_INSTALL_PATH%\share\doc
19087 jghali 52
xcopy %SCRIBUS_SRC_PATH%\doc %SCRIBUS_INSTALL_PATH%\share\doc /s /y /D
16720 jghali 53
xcopy %SCRIBUS_SRC_PATH%\resources\dicts %SCRIBUS_INSTALL_PATH%\share\dicts /s /y /D
54
xcopy %SCRIBUS_SRC_PATH%\resources\editorconfig %SCRIBUS_INSTALL_PATH%\share\editorconfig /s /y
55
xcopy %SCRIBUS_SRC_PATH%\resources\icons %SCRIBUS_INSTALL_PATH%\share\icons /s /y /D
56
xcopy %SCRIBUS_SRC_PATH%\resources\loremipsum %SCRIBUS_INSTALL_PATH%\share\loremipsum /s /y
18862 jghali 57
xcopy %SCRIBUS_SRC_PATH%\resources\profiles %SCRIBUS_INSTALL_PATH%\share\profiles /s /y
58
xcopy %SCRIBUS_SRC_PATH%\resources\swatches %SCRIBUS_INSTALL_PATH%\share\swatches /s /y
16720 jghali 59
xcopy %SCRIBUS_SRC_PATH%\resources\templates %SCRIBUS_INSTALL_PATH%\share\templates /s /y /D
60
 copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathcut\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
61
 copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathfinder\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
62
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\scripts %SCRIBUS_INSTALL_PATH%\share\scripts /s /y /D
63
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\samples %SCRIBUS_INSTALL_PATH%\share\samples /s /y
18862 jghali 64
copy %SCRIBUS_SRC_PATH%\scribus\plugins\import\ps\import.prolog %SCRIBUS_INSTALL_PATH%\libs\import.prolog
16720 jghali 65
copy %SCRIBUS_SRC_PATH%\scribus\plugins\barcodegenerator\barcode.ps %SCRIBUS_INSTALL_PATH%\share\plugins\barcode.ps
66
copy %SCRIBUS_SRC_PATH%\scribus\unicodemap\unicodenameslist.txt %SCRIBUS_INSTALL_PATH%\share\unicodenameslist.txt
67
del %SCRIBUS_BUILD_ROOT%\*CMake* /s
68
del %SCRIBUS_BUILD_ROOT%\*MakeFile* /s
69
 
70
Adjust SCRIBUS_SRC_PATH, SCRIBUS_BUILD_ROOT and SCRIBUS_INSTALL_PATH as needed and run batch script.
71
 
19104 jghali 72
Download poppler data package on poppler.freedesktop.org. Copy content of archive
16768 jghali 73
in %SCRIBUS_INSTALL_PATH%\share\poppler.
74
 
16720 jghali 75
Now copy the DLLs from the zlib, libpng, qt, lcms, freetype, libtiff, libjpeg,
76
libxml, and podofo directories into the Scribus install directory (where
19104 jghali 77
scribus.exe is). Copy also the Dlls, lib and tcl directories from your python
16720 jghali 78
install to scribus install path. Finally copy python27.dll. Scribus should now run.
79
 
80
Crash problems at runtime? Verify that Qt, freetype, lcms, and Scribus all use
81
the same runtime, and that all were built for debugging or all for release not
82
a mixture of the two. Windows does not permit you to mix debug and release
83
executables like other platforms do.
84
 
85
You can use depends.exe to check that the runtimes match.
86
 
87
GETTING DEPENDENCIES
88
====================
89
 
90
This is a quick and dirty set of notes that will be filled out once everything's
19104 jghali 91
verified as correct and working. It assumes that you'll be building all your
16720 jghali 92
dependencies at a single root, like C:\Developer. The root *MUST* not have spaces
93
in its path.
94
 
95
----
96
Qt:
97
 
17717 jghali 98
Download the latest qt >= 4.7 snapshot from ftp://ftp.qt.nokia.com/qt/source
16720 jghali 99
and unpack it to C:\Developer.
100
 
101
Start a command line and import your Visual Studio environment:
102
\path\to\visual\studio\VC\vcvarsall.bat
103
 
104
now cd to C:\Developer\qt-everywhere-whatever and run configure:
105
configure -debug-and-release -fast -no-qt3support -platform win32-msvc2008
106
 
107
and nmake.
108
 
109
----
110
Boost:
111
 
112
Download the latest boost libraries from www.boost.org. Unpack, no need to compile
113
anything as Scribus only use functionnalities embedded in C++ templates.
114
 
115
----
19104 jghali 116
Zlib and LibPNG:
16720 jghali 117
 
118
Zlib and LibPNG are both embedded in the QtCore library with symbols exported
119
for public use . If you're using a Qt binary redist you may still need to
120
download these libraries sources for their headers. In most cases your
121
copy of Qt will contain a directory called  %QTDIR%\src\3rdparty\zlib
122
(and one for libpng), in which case you need not worry about these libraries at
123
all.
124
 
125
---
19104 jghali 126
Cairo and Pixman:
16720 jghali 127
 
19104 jghali 128
Cairo and pixman sources can be downloaded from cairographics.org at following address:
16720 jghali 129
 
130
http://cairographics.org/releases/
131
 
132
Follow instructions in sources packages to build pixman, then cairo.
133
 
19104 jghali 134
You will however probably find easier to directly download packages with Visual Studio 2008
135
solutions ready to build. You can find required file at following address:
16720 jghali 136
 
137
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
138
 
139
Download the both scribus-pixman-* and scribus-cairo-* zip files. Unpack them.
140
 
19104 jghali 141
Build pixman first: open the pixman-win32 solution located in pixman-whatever\win32
16720 jghali 142
directory and build Debug and Release configurations.
143
 
19104 jghali 144
Build cairo afterwards: open the cairo-win32 solution located in cairo-whatever\win32
16720 jghali 145
directory and build Debug and Release configurations.
146
 
147
----
17505 jghali 148
Freetype:
149
 
150
Unpack freetype
151
 
152
Open include\freetype\config\ftoption.h and replace the DLL export compilation section
19104 jghali 153
by following lines:
17505 jghali 154
 
155
#ifndef __GNUC__
156
# define __DLL_IMPORT__  __declspec(dllimport)
157
# define __DLL_EXPORT__  __declspec(dllexport)
158
#else
159
# define __DLL_IMPORT__  __attribute__((dllimport)) extern
160
# define __DLL_EXPORT__  __attribute__((dllexport)) extern
161
#endif 
162
 
163
#if (defined __WIN32__) || (defined _WIN32)
164
# ifdef BUILD_FREETYPE2_DLL
165
#  define FREETYPE2_DLL_IMPEXP     __DLL_EXPORT__
166
# elif defined(FREETYPE2_STATIC)
167
#  define FREETYPE2_DLL_IMPEXP      
168
# elif defined (USE_FREETYPE2_DLL)
169
#  define FREETYPE2_DLL_IMPEXP     __DLL_IMPORT__
170
# elif defined (USE_FREETYPE2_STATIC)
171
#  define FREETYPE2_DLL_IMPEXP      
172
# else /* assume USE_FREETYPE2_DLL */
173
#  define FREETYPE2_DLL_IMPEXP     __DLL_IMPORT__
174
# endif
175
#else /* __WIN32__ */
176
# define FREETYPE2_DLL_IMPEXP  
177
#endif
178
 
179
#define FT_EXPORT(x)	FREETYPE2_DLL_IMPEXP x
180
#define FT_BASE(x)		FREETYPE2_DLL_IMPEXP x
181
 
182
Open builds\win32\vc2008
183
Build "Release Multithreaded" and "Debug Multithreaded"
184
 
185
At the end of the process you must have those files in your freetype lib
19104 jghali 186
directory:
17505 jghali 187
- freetype.dll
188
- freetype.lib
189
- freetypeD.dll
190
- freetypeD.lib
191
 
192
----
19104 jghali 193
Libhunspell:
17505 jghali 194
 
19104 jghali 195
You will probably find easier to directly download packages with Visual
196
Studio 2008 solutions ready to build. You can find required file at
197
following address:
17505 jghali 198
 
199
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
200
 
201
Download the scribus-hunspell-*.zip archive. Unpack it.
202
 
19104 jghali 203
Open the visual studio solution located in hunspell-whatever/src/win-api directory and build
17505 jghali 204
Debug and Release configurations of Libhunspell project.
205
 
206
----
19104 jghali 207
Libjpeg:
16720 jghali 208
 
209
While Qt also bundles libjpeg, it's not linked to the main DLL but rather a plugin.
210
As such, we need to link to it directly.
211
 
19104 jghali 212
Get jpeg libraries from GnuWin32 project on Sourceforge:
16720 jghali 213
 
214
http://sourceforge.net/projects/gnuwin32/files/jpeg/6b-3/jpeg-6b-3-lib.zip/download
215
 
19104 jghali 216
Unpack in C:\Developer. After unpacking you directory layout must be as following:
16720 jghali 217
 
218
C:\Developer
219
	|- libjpeg-6b-3
220
		|- include
221
		|- lib
222
		|- manifest
223
 
224
----
19104 jghali 225
LittleCMS:
16720 jghali 226
 
227
Get lcms sources (>= 2.1). Although it is possible to build Scribus with lcms 1,
228
you can only do so without modifying lcms sources with lcms >= 2.1.
229
We will only describe here instructions related to lcms >= 2.1.
230
 
231
Build using VC project in Projects\VC2008 dir. Modify projects if necessary so
232
as to make them use the multithreaded dll runtim libraries.
233
Build the static libraries in debug and release configurations.
234
 
19104 jghali 235
After building you must have a lcms2_static.lib and lcms2_staticd.lib in
16720 jghali 236
your lcms source directory. If this is not the case modify projects as necessary.
237
 
238
----
19104 jghali 239
Libtiff:
16720 jghali 240
 
241
While Qt also bundles libtiff, it's not linked to the main DLL but rather a plugin.
242
As such, we need to link to it directly.
243
 
19104 jghali 244
Download libtiff libraries, binaries and dependency packages from GnuWin32 project
245
on sourceforge:
16720 jghali 246
 
247
http://sourceforge.net/projects/gnuwin32/files/tiff/3.8.2/
248
 
19104 jghali 249
Unpack them in C:\Developer. After unpacking you directory layout must be as following:
16720 jghali 250
 
251
C:\Developer
252
	|- libtiff-3.8.2
253
	    |- bin
254
		|- contrib
255
		|- include
256
		|- lib
257
		|- man
258
		|- manifest
259
 
260
----
19104 jghali 261
Libxml2 / iconv:
16720 jghali 262
 
19104 jghali 263
Download libxml2 and icon win32 binaries from following address:
16720 jghali 264
 
265
ftp://ftp.zlatkovic.com/libxml/
266
 
267
Note that these binaries do not use the same runtime
268
as the rest of the binaries we're building. Feel free to
269
rebuild libxml to fix this, but in practice it doesn't
270
matter since we never pass a FILE* nor do we allocate memory
271
to be deallocated in libxml or vice versa.
272
 
273
Remember that iconv from the same package must be on the
274
header search path too. If in doubt, just drop iconv.h
275
into the libxml tree.
276
 
277
---
19104 jghali 278
Podofo:
16720 jghali 279
 
19104 jghali 280
Podofo sources can be downloaded from podofo.sourceforge.net. At the moment
281
those instructions are written, the recommended version to build Scribus on
16768 jghali 282
Windows is one of the 0.8.x series.
16720 jghali 283
 
284
Follow instructions in sources packages to build Podofo.
285
 
19104 jghali 286
You will however probably find easier to directly download packages with a
287
Visual Studio 2008 solution ready to build. You can find required file at
288
following address:
16720 jghali 289
 
290
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
291
 
16768 jghali 292
Download the scribus-podofo-*.zip archive. Unpack it.
16720 jghali 293
 
19104 jghali 294
If present, open the PoDoFoLib-build.vsprops file located in podofo-whatever
295
directory and set all build variables according to your system. Then open the
296
podofo solution located in same directory and build Debug and Release configurations
16768 jghali 297
of PoDoFoLib project.
16720 jghali 298
 
19104 jghali 299
Note: freetype, libtiff and libjpeg must have been installed and if
16720 jghali 300
necessary compiled before attempting to build podofo.
301
 
302
---
19104 jghali 303
Poppler:
16768 jghali 304
 
305
Poppler sources can be downloaded http://poppler.freedesktop.org. At the moment
306
those instruction are written, the only version known to work with scribus is 0.17.1.
307
 
19104 jghali 308
As Poppler is a bit tricky to build on Windows, you will however probably find easier
309
to directly download a ready to build package for Visual Studio 2008. You can find
310
required file at following address:
16768 jghali 311
 
312
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
313
 
314
Download the scribus-poppler-*.zip archive. Unpack it.
315
 
316
Open the poppler-build.vsprops file located in poppler-whatever\win32 directory and set
19104 jghali 317
all build variables according to your system. Then open the poppler.sln solution and
16768 jghali 318
buid Debug-static and Release-static configurations.
319
 
19104 jghali 320
Note: freetype, libtiff and libjpeg must have been installed and if
16768 jghali 321
necessary compiled before attempting to build poppler.
322
 
323
---
19104 jghali 324
Python: 
16720 jghali 325
 
326
Download latest Python 2.7 binaries (and only 2.7, 3.x will not work).
327
Unpack or install.
328
Copy the python27.lib file in python 'libs' directory to python27_d.lib
329
 
330
Open pyconfig.h in python include directory
331
 
19104 jghali 332
Replace those lines:
16720 jghali 333
 
334
#ifdef _DEBUG
335
#	define Py_DEBUG
336
#endif
337
 
19104 jghali 338
by:
16720 jghali 339
 
340
#ifdef _DEBUG
341
#	//define Py_DEBUG
342
#endif