1
BUILDING SCRIBUS ON MICROSOFT WINDOWS WITH MICROSOFT VISUAL STUDIO
2
==================================================================
7
This documentation is minimal and assume you have a decent knowledge of
8
Microsoft Visual Studio. No help regarding use of Visual Studio and
9
related tools will be provided.
12
- Microsoft Windows XP, Vista or 7
13
- Microsoft Visual Studio 2008 or Visual C++ Express Edition 2008
14
- A recent Qt (version >= 4.6) release built with Visual Studio 2008
15
- Cairo sources from cairographics.org (version >= 1.8.0)
16
- Pixman sources from cairographics.org (version >= 0.12.0)
17
- Boost from www.boost.org (version >= 1.35.0)
18
- Libxml2 win32 binaries from the Libxml project
19
- Libjpeg win32 libs and binaries from the GnuWin32 project
20
- Libtiff win32 libs and binaries from the GnuWin32 project
21
- Freetype sources from freetype.org (version >= 2.4.0)
22
- LittleCMS sources from www.littlecms.com (version >= 2.1)
23
- PoDoFo sources (version >= 0.8.x) from podofo.sourceforge.net
24
- A Python 2.7 Windows binary build.
25
For debug builds, you'll need a release that contains the python27_d.dll .
27
Some more details can be found below in the section entitled GETTING DEPENDENCIES.
29
After having installed all dependencies, open Scribus-build.vsprops files located
30
in Scribus\win32\vc9 and update the dependency paths to match your system.
32
Open the Visual Studio solution located in Scribus\win32\vc9 and start building. The *-cairo
33
configurations will build Scribus with cairo renderer. The *-arthur configurations will buid
34
Scribus using qt arthur renderer. Note : official Scribus builds use cairo as render.
36
After building completed, you will find executables in a Scribus-builds\scribus-vc9-*\scribus
37
directory located in same directory as Scribus sources. Those executables will not function yet.
38
Scribus resources must be copied from source directory to install directory first.
40
In order to do that, create a batch script and copy/paste following lines :
42
set SCRIBUS_SRC_PATH=.\Scribus
43
set SCRIBUS_BUILD_ROOT=.\Scribus-builds
44
set SCRIBUS_INSTALL_PATH=.\Scribus-builds\scribus-vc9-debug-cairo\scribus
46
copy %SCRIBUS_SRC_PATH%\AUTHORS %SCRIBUS_INSTALL_PATH%\share\doc
47
copy %SCRIBUS_SRC_PATH%\COPYING %SCRIBUS_INSTALL_PATH%\share\doc
48
copy %SCRIBUS_SRC_PATH%\LINKS %SCRIBUS_INSTALL_PATH%\share\doc
49
copy %SCRIBUS_SRC_PATH%\TRANSLATION %SCRIBUS_INSTALL_PATH%\share\doc
50
xcopy %SCRIBUS_SRC_PATH%\scribus\doc %SCRIBUS_INSTALL_PATH%\share\doc /s /y /D
51
xcopy %SCRIBUS_SRC_PATH%\resources\dicts %SCRIBUS_INSTALL_PATH%\share\dicts /s /y /D
52
xcopy %SCRIBUS_SRC_PATH%\resources\editorconfig %SCRIBUS_INSTALL_PATH%\share\editorconfig /s /y
53
xcopy %SCRIBUS_SRC_PATH%\resources\icons %SCRIBUS_INSTALL_PATH%\share\icons /s /y /D
54
xcopy %SCRIBUS_SRC_PATH%\resources\loremipsum %SCRIBUS_INSTALL_PATH%\share\loremipsum /s /y
55
xcopy %SCRIBUS_SRC_PATH%\resources\profiles %SCRIBUS_INSTALL_PATH%\libs\profiles /s /y
56
xcopy %SCRIBUS_SRC_PATH%\resources\swatches %SCRIBUS_INSTALL_PATH%\libs\swatches /s /y
57
xcopy %SCRIBUS_SRC_PATH%\resources\templates %SCRIBUS_INSTALL_PATH%\share\templates /s /y /D
58
copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathcut\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
59
copy %SCRIBUS_SRC_PATH%\scribus\plugins\tools\pathfinder\*.png %SCRIBUS_INSTALL_PATH%\share\icons\ /y
60
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\scripts %SCRIBUS_INSTALL_PATH%\share\scripts /s /y /D
61
xcopy %SCRIBUS_SRC_PATH%\scribus\plugins\scriptplugin\samples %SCRIBUS_INSTALL_PATH%\share\samples /s /y
62
copy %SCRIBUS_SRC_PATH%\scribus\plugins\psimport\import.prolog %SCRIBUS_INSTALL_PATH%\libs\import.prolog
63
copy %SCRIBUS_SRC_PATH%\scribus\plugins\barcodegenerator\barcode.ps %SCRIBUS_INSTALL_PATH%\share\plugins\barcode.ps
64
copy %SCRIBUS_SRC_PATH%\scribus\unicodemap\unicodenameslist.txt %SCRIBUS_INSTALL_PATH%\share\unicodenameslist.txt
65
del %SCRIBUS_BUILD_ROOT%\*CMake* /s
66
del %SCRIBUS_BUILD_ROOT%\*MakeFile* /s
68
Adjust SCRIBUS_SRC_PATH, SCRIBUS_BUILD_ROOT and SCRIBUS_INSTALL_PATH as needed and run batch script.
70
Now copy the DLLs from the zlib, libpng, qt, lcms, freetype, libtiff, libjpeg,
71
libxml, and podofo directories into the Scribus install directory (where
72
scribus.exe is). Copy also the Dlls, lib and tcl directories from your python
73
install to scribus install path. Finally copy python27.dll. Scribus should now run.
75
Crash problems at runtime? Verify that Qt, freetype, lcms, and Scribus all use
76
the same runtime, and that all were built for debugging or all for release not
77
a mixture of the two. Windows does not permit you to mix debug and release
78
executables like other platforms do.
80
You can use depends.exe to check that the runtimes match.
85
This is a quick and dirty set of notes that will be filled out once everything's
86
verified as correct and working. It asssumes that you'll be building all your
87
dependencies at a single root, like C:\Developer. The root *MUST* not have spaces
93
Download the latest qt >= 4.6 snapshot from ftp://ftp.qt.nokia.com/qt/source
94
and unpack it to C:\Developer.
96
Start a command line and import your Visual Studio environment:
97
\path\to\visual\studio\VC\vcvarsall.bat
99
now cd to C:\Developer\qt-everywhere-whatever and run configure:
100
configure -debug-and-release -fast -no-qt3support -platform win32-msvc2008
107
Download the latest boost libraries from www.boost.org. Unpack, no need to compile
108
anything as Scribus only use functionnalities embedded in C++ templates.
113
Zlib and LibPNG are both embedded in the QtCore library with symbols exported
114
for public use . If you're using a Qt binary redist you may still need to
115
download these libraries sources for their headers. In most cases your
116
copy of Qt will contain a directory called %QTDIR%\src\3rdparty\zlib
117
(and one for libpng), in which case you need not worry about these libraries at
123
Cairo and pixman sources can be downloaded from cairographics.org at following address :
125
http://cairographics.org/releases/
127
Follow instructions in sources packages to build pixman, then cairo.
129
You will however probably find easier to directly download packages with Visual Studio 2008
130
solutions ready to build. You can find required file at following address :
132
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
134
Download the both scribus-pixman-* and scribus-cairo-* zip files. Unpack them.
136
Build pixman first : open the PixManWin32 solution located in pixman-whatever\win32
137
directory and build Debug and Release configurations.
139
Build cairo afterwards : open the CairoWin32 solution located in cairo-whatever\win32
140
directory and build Debug and Release configurations.
145
While Qt also bundles libjpeg, it's not linked to the main DLL but rather a plugin.
146
As such, we need to link to it directly.
148
Get jpeg libraries from GnuWin32 project on Sourceforge :
150
http://sourceforge.net/projects/gnuwin32/files/jpeg/6b-3/jpeg-6b-3-lib.zip/download
152
Unpack in C:\Developer. After unpacking you directory layout must be as following :
163
Get lcms sources (>= 2.1). Although it is possible to build Scribus with lcms 1,
164
you can only do so without modifying lcms sources with lcms >= 2.1.
165
We will only describe here instructions related to lcms >= 2.1.
167
Build using VC project in Projects\VC2008 dir. Modify projects if necessary so
168
as to make them use the multithreaded dll runtim libraries.
169
Build the static libraries in debug and release configurations.
171
After building you must have a lcms2_static.lib and lcms2_staticd.lib in
172
your lcms source directory. If this is not the case modify projects as necessary.
177
While Qt also bundles libtiff, it's not linked to the main DLL but rather a plugin.
178
As such, we need to link to it directly.
180
Download libtiff libraries, binaries and dependency packages from GnuWin32 project
183
http://sourceforge.net/projects/gnuwin32/files/tiff/3.8.2/
185
Unpack them in C:\Developer. After unpacking you directory layout must be as following :
201
Open include\freetype\config\ftoption.h and replace the DLL export compilation section
205
# define __DLL_IMPORT__ __declspec(dllimport)
206
# define __DLL_EXPORT__ __declspec(dllexport)
208
# define __DLL_IMPORT__ __attribute__((dllimport)) extern
209
# define __DLL_EXPORT__ __attribute__((dllexport)) extern
212
#if (defined __WIN32__) || (defined _WIN32)
213
# ifdef BUILD_FREETYPE2_DLL
214
# define FREETYPE2_DLL_IMPEXP __DLL_EXPORT__
215
# elif defined(FREETYPE2_STATIC)
216
# define FREETYPE2_DLL_IMPEXP
217
# elif defined (USE_FREETYPE2_DLL)
218
# define FREETYPE2_DLL_IMPEXP __DLL_IMPORT__
219
# elif defined (USE_FREETYPE2_STATIC)
220
# define FREETYPE2_DLL_IMPEXP
221
# else /* assume USE_FREETYPE2_DLL */
222
# define FREETYPE2_DLL_IMPEXP __DLL_IMPORT__
224
#else /* __WIN32__ */
225
# define FREETYPE2_DLL_IMPEXP
228
#define FT_EXPORT(x) FREETYPE2_DLL_IMPEXP x
229
#define FT_BASE(x) FREETYPE2_DLL_IMPEXP x
231
Open builds\win32\vc2008
232
Build "Release Multithreaded" and "Debug Multithreaded"
234
At the end of the process you must have those files in your freetype lib
244
Download libxml2 and icon win32 binaries from following address :
246
ftp://ftp.zlatkovic.com/libxml/
248
Note that these binaries do not use the same runtime
249
as the rest of the binaries we're building. Feel free to
250
rebuild libxml to fix this, but in practice it doesn't
251
matter since we never pass a FILE* nor do we allocate memory
252
to be deallocated in libxml or vice versa.
254
Remember that iconv from the same package must be on the
255
header search path too. If in doubt, just drop iconv.h
256
into the libxml tree.
261
Podofo sources can be downloaded from podofo.sourceforge.net. At the moment
262
those instructions are written, the recommended version to build Scribus on
263
Windows is one of the 0.8.x series.
265
Follow instructions in sources packages to build Podofo.
267
You will however probably find easier to directly download packages with Visual
268
Studio 2008 solutions ready to build. You can find required file at
271
https://sourceforge.net/projects/scribus/files/scribus-libs/win32-msvc2008/
273
Download the scribus-podofo-*.zip archive. Unpack it.
275
Open the podofo solution located in podofo-whatever directory and build
276
Debug and Release configurations of PoDoFoLib project.
278
Note : freetype, libtiff and libjpeg must have been installed and if
279
necessary compiled before attempting to build podofo.
284
Download latest Python 2.7 binaries (and only 2.7, 3.x will not work).
286
Copy the python27.lib file in python 'libs' directory to python27_d.lib
288
Open pyconfig.h in python include directory
290
Replace those lines :