Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
7222 mrdocs 1
CMake Build
2
====================
3
 
9756 craig 4
Scribus 1.3.5+ has replaced  the traditionally used so called autotools with
5
the CMake build system (cmake.org).
7222 mrdocs 6
 
9756 craig 7
Please see install4.html in scribus/doc or:
8
	http://docs.scribus.net/index.php?lang=en&page=install4
7222 mrdocs 9
for details *after* reviewing the build requirements below.
10
 
9760 craig 11
Note that while a QMake project file (Scribus.pro) is provided in the Scribus
12
source distribution, it is not possible to build Scribus with this project
13
file.  It is only used for generating the translation template files.
14
 
9756 craig 15
REQUIREMENTS AND BUILDING - Geneiric *BSD/Linux/*nix
9760 craig 16
====================================================
7222 mrdocs 17
 
9756 craig 18
These requirements are generic information for any BSD, UNIX or Linux flavour.
19
More specific information for particular Linux distros, including lists of
20
exact package names for the distro, are provided below.
7222 mrdocs 21
 
9756 craig 22
Install the below packages BEFORE running CMake or compiling Scribus:
2084 craig 23
 
24
Requirements:
10174 mrdocs 25
	Qt >= 4.3.0 (Scribus has specific code requiring Qt 4.3, not Qt 4.2.x)
9639 mrdocs 26
	Freetype >= 2.1.7 (2.3.x strongly recommended)
9435 mrdocs 27
	cairo >= 1.4.x
6552 craig 28
	libtiff >= 3.6.0
7222 mrdocs 29
	LittleCMS (liblcms) = 1.12 (1.15+ recommended)
8385 mrdocs 30
	libjpeg (depending on how Qt is packaged)
31
	libpng
2084 craig 32
 
33
Recommended:
34
	CUPS
35
	Fontconfig >= 2.0
36
	LibXML2 >= 2.6.0
9435 mrdocs 37
	GhostScript >= 8.0 (8.56 or greater preferred)
2084 craig 38
	Python >= 2.3
39
	tkinter for the font sampler script
40
	python-imaging for the font sampler preview
7222 mrdocs 41
	pkgconfig (to assist finding other libraries)
2084 craig 42
 
7222 mrdocs 43
 
2084 craig 44
If any recommended libraries (and their dev/devel packages or headers) are not
9435 mrdocs 45
installed, some features will be disabled by cmake. If you later install
46
any of these dependencies, you will have to re-run cmake and re-compile
2084 craig 47
Scribus before the features are enabled.
48
 
49
LIBRARIES IN NON-STANDARD LOCATIONS
50
===================================
51
 
2514 craig 52
You can skip this section unless:
53
    (a) You have libraries installed in unusual locations such as your home
54
        directory or an add-in package collection (eg fink); or
55
    (b) Scribus is not finding libraries that you KNOW you have installed
56
        (remember the -dev/-devel package if applicable).
2084 craig 57
 
9756 craig 58
If any of your libraries are in non-standard locations you will need to provide
59
some extra arguments to CMake to ensure that CMake and gcc can find all the
60
required files. Where /path/to/libfoo is the path to the the directory the
61
library was installed to, eg /usr/local or /home/fred/libfoo (not the 'lib'
62
subdirectory the actual .so files are in), you can use the following extra
63
arguments to CMake to help it find the library:
2084 craig 64
 
9756 craig 65
   -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include
66
   -DCMAKE_LIBRARY_PATH=/path/to/libfoo/lib
2084 craig 67
 
9756 craig 68
If you have multiple custom paths to specify, use a ; path separator, eg:
2084 craig 69
 
9756 craig 70
   -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include;/path/to/libalice/include
2514 craig 71
 
9756 craig 72
In most cases you should not and should not need to modify the CFLAGS,
73
CXXFLAGS, LIBRARY_PATH, LD_LIBRARY_PATH, CPATH, or LDFLAGS environment
74
variables. If you need to alter these to get Scribus to build, please file a
75
bug on http://bugs.scribus.net/ with information about your exact Scribus
76
version (including Subversion revision), full CMake command line, output of the
77
`env' command, and the full compiler error messages including the original
78
compiler command obtained by running `make' with the VERBOSE=1 argument.
2084 craig 79
 
9756 craig 80
CMake will try to embed the paths to the required libraries into the
81
executable,so you should generally not need to set the LD_LIBRARY_PATH
82
environment variable or your platform's equivalent. On platforms like win32
83
where no such rpath support exists, you will need to ensure that the libraries
84
required by Scribus are on the library search path. For Windows, the library
85
search path is the PATH environment variable.
2084 craig 86
 
87
REQUIREMENTS - DETAILS
88
======================
89
 
10174 mrdocs 90
Qt 4.3 is now the *minimum*. Older versions of Qt are *not* supported.
91
If you build Qt from sources, the recommended ./configure switches are the
92
 same as used by KDE. Use of other switches aside from those used by distro
93
packages can make trouble shooting
2084 craig 94
issues very difficult at times.
10174 mrdocs 95
See: http://developer.kde.orgb/uild/compile_kde3_3.html
2084 craig 96
 
97
Scribus requires Freetype. If you are compiling from source, you will need to
98
have the freetype headers installed - these can usually be found in a -devel
99
package for your distro.
100
 
101
It is strongly recommended that you install the CUPS development packages if
102
you are compiling Scribus. Without CUPS, Scribus will have significantly
9756 craig 103
reduced printing functionality, and building without CUPS is poorly tested.
2084 craig 104
 
105
Fontconfig, if installed, will let Scribus find fonts using the same method as
106
most other major desktop applications such as all KDE and GNOME applications.
107
If fontconfig support is installed, Scribus will not search your X font path, X
108
server configuration, or X font server configuration for fonts - it will only
109
use fonts found using fontconfig and any custom font locations configured in
9756 craig 110
the preferences. Use of fontconfig is strongly recommended and will soon be
111
required on supporting platforms.
2084 craig 112
 
9756 craig 113
Python is used to add scripting support to Scribus. If Python is not found, or
114
there are no header files for Python installed (usually because you haven't
115
installed the development package), the scripting support will not be enabled.
2084 craig 116
 
117
See the distro-specific notes below for more information on installing and
118
using Scribus with your distro.
119
 
2405 craig 120
TROUBLESHOOTING
121
===============
2383 mrdocs 122
 
2405 craig 123
If Scribus can't find a library, there are several things you should do.
124
First of all, read `DISTRO SPECIFIC BUILD INFORMATION' below and see if
125
there's anything there for your OS / distro.
126
 
127
Next, ensure you definitely have the library installed, as well as any
128
additional development packages that may be required to use it.  On Linux, make
129
sure to install the "-dev" or "-devel" package for the missing library. After
130
doing this, re-run configure.
131
 
132
If the library is still not found, please read and act on the section above,
133
entitled `LIBRARIES IN NONSTANDARD LOCATIONS'. Check that all those environment
134
variables are set to sensible values. If you are using any other custom CFLAGS,
9756 craig 135
LDFLAGS, CXXFLAGS, CPPFLAGS, etc, then unset or disable them unless you're
136
really sure you know what you're doing. This is doubly true for "optimisation"
137
flags like -mcpu and -march .
2405 craig 138
 
9756 craig 139
If you're still unable to determine what the problem is, please post a message
140
to the Scribus mailing list or report a bug on bugs.scribus.net.
2405 craig 141
 
9756 craig 142
In any problem report, MAKE SURE YOU INCLUDE THE FOLLOWING INFORMATION:
143
    - Your CMakeCache.txt
144
    - The exact CMake command you ran
145
    - The output of the `env' command
146
    - A full listing of the compile command and compiler error messages,
147
      obtained by running `make' with VERBOSE=1 .
2405 craig 148
    - Operating system or distro, eg "Mac OS X" or "Debian Linux"
149
    - OS or distro version, eg "Panther" or "Fedora Core 3". This is NOT the
150
      Linux kernel version, though you can provide that too.
151
    - Scribus version you're trying to compile, eg "1.2.1" or "1.3 cvs". If
9756 craig 152
      you're building an SVN version, please make sure you've run
153
      "svn revert -R ." (this WILL erase any patches / custom changes you've
154
      made), deleted the CMake cache with `rm -f CMakeCache.txt' and re-built
155
      before reporting a problem. Include the output of `svn info' in your
156
      bug report if you are using a svn version.
157
    - What compiler & version you're using. You can get this from `gcc
158
      --version'.  if you're using gcc.
2405 craig 159
    - If you're having problems with a particular library, what version
160
      of the library you have installed and where you got it from. eg:
161
      "freetype 2.0.1 from sunfreeware,"
9756 craig 162
      "LittleCMS 1.1.4, compiled myself and installed in /usr/local",
163
      "freetype 2.1.3 from backports.org",
2405 craig 164
      "fontconfig 2.2.0 (stock Fedora Core 3 devel package)"
165
      "I installed the qt-3.0.1.rpm and qt-devel-3.0.1.rpm from the CD."
166
    - Check again to make REALLY REALLY SURE you have the devel package
9756 craig 167
      installed, and list the names of the relevant installed devel packages
168
      in your problem report.
2405 craig 169
    - Any environment variables you may have set
170
    - Anything else you can think of that might be useful. There's no
171
      such thing as too much information, though please put big files
172
      elsewhere rather than sending them to the mailing list.
173
 
174
It's best if you do a search of the mailing list archives and/or
175
bugs.scribus.net before reporting a problem, too. This is doubly true for
176
development versions of Scribus.
177
 
2084 craig 178
DISTRO SPECIFIC BUILD INFORMATION
179
=================================
180
 
181
This section contains information about compiling Scribus that's specific to
182
particular operating systems and Linux distros. More distro-specific
183
information can be found in the README.
184
 
185
Debian
186
======
187
 
9756 craig 188
Recommended packages for compiling from source on Etch (Debian 4.0):
189
	libqt4-dev (Required)
2084 craig 190
	libfreetype6-dev (Required)
9756 craig 191
	libcairo2-dev (Required)
192
	libfontconfig1-dev (Required)
2084 craig 193
	libcupsys2-dev
194
	liblcms1-dev
195
	libtiff4-dev
196
	libxml2-dev
197
	python2.3-dev  or  python2.4-dev
9756 craig 198
	gs-gpl or gs-afpl (usually gs-gpl is newer now)
2084 craig 199
 
200
You are unlikely to be able to compile Scribus 1.3.x on Debian 3.0 (Woody)
9756 craig 201
or Debian 3.1 (Sarge) without significant upgrades; it is not at all
202
recommended. Scribus 1.3.x should be considered not to support Debian Woody,
203
with versions above 1.3.5 unsupported on Sarge as well.
2084 craig 204
 
2514 craig 205
More info can be found in the README.
2084 craig 206
 
207
Red Hat / Fedora
208
================
209
 
7222 mrdocs 210
Recommended packages for compiling from source on FC4 / FC5
2850 craig 211
	libstdc++-devel (Required)
212
	gcc-c++ (Required)
2084 craig 213
	qt-devel (Required)
214
	freetype-devel (Required)
9762 craig 215
	cairo-devel (Required)
2084 craig 216
	fontconfig-devel
217
	cups-devel
218
	libtiff-devel
219
	libxml2-devel
220
	python-devel
221
	lcms-devel
2515 craig 222
	libpng-devel
223
	libjpeg-devel
2084 craig 224
 
225
You can install these packages with 'yum install packagename' as root. You may
2452 craig 226
need to run up2date first to set up your yum configuration (not required on
227
FC4). Be patient - the first time you run yum it may take a long time to
228
download the headers for all the security updates that have been released.
2084 craig 229
 
2452 craig 230
You may also need to 'export QTDIR=/usr/lib/qt-3.3' before running
231
configure or make.
232
 
2514 craig 233
More info can be found in the README.
2084 craig 234
 
8385 mrdocs 235
Suse/Opensuse
2515 craig 236
====
237
 
10174 mrdocs 238
Recommended packages for compiling from source on SuSE 10.x:
9435 mrdocs 239
	qt4-devel (required)
240
	cairo-devel (required)
2515 craig 241
	freetype2-devel (required)
9435 mrdocs 242
	fontconfig-devel (required)
243
	liblcms-devel (required)
244
	libtiff-devel (required)
2515 craig 245
	libxml2-devel
8385 mrdocs 246
	libpng-devel
247
	libjpeg-devel
2515 craig 248
	cups-devel
3979 mrdocs 249
	openssl-devel (required if CUPS support is needed)
2515 craig 250
	update-desktop-files
251
	python-devel
2565 mrdocs 252
	tk
253
	python-imaging
2515 craig 254
 
9756 craig 255
You can install these packages using YaST. You may find it difficult to compile
256
Scribus 1.3.5+ on anything older than Suse 10.0.
2515 craig 257
 
9756 craig 258
Please note we do provide frequently updated packages including debuginfo rpms
259
on the Suse Build Server. at http//software.opensuse.org .
9435 mrdocs 260
 
2514 craig 261
Mac OS X
262
========
2084 craig 263
 
2514 craig 264
No detailed build instructions yet. Please see the README for info on MacOS/X.
2084 craig 265
 
266
Microsoft Windows
267
=================
268
 
269
No build instructions yet. Please see the README for info on Scribus under
270
Windows.
271
 
272
Other distros/OSes
273
==================
274
 
275
Please feel free to submit a list of package names and versions required to
276
compile Scribus on your distro, or build instructions for your OS.