Subversion Repositories Scribus

Rev

Rev 23909 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7222 mrdocs 1
CMake Build
2
====================
3
 
13324 mrdocs 4
Scribus 1.3.5+ has replaced the traditionally used so called autotools with
9756 craig 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
19104 jghali 13
file. It is only used for generating the translation template files.
9760 craig 14
 
10780 craig 15
REQUIREMENTS AND BUILDING - Microsoft Windows
16
=============================================
17
 
18
See the separate file BUILDING_win32.txt
19
 
23909 jghali 20
REQUIREMENTS AND BUILDING - Generic *BSD/Linux/*nix
9760 craig 21
====================================================
7222 mrdocs 22
 
9756 craig 23
These requirements are generic information for any BSD, UNIX or Linux flavour.
24
More specific information for particular Linux distros, including lists of
25
exact package names for the distro, are provided below.
7222 mrdocs 26
 
9756 craig 27
Install the below packages BEFORE running CMake or compiling Scribus:
2084 craig 28
 
29
Requirements:
24633 craig 30
    Qt >= 5.14.0
9639 mrdocs 31
	Freetype >= 2.1.7 (2.3.x strongly recommended)
23489 jghali 32
	cairo >= 1.14.x
33
	harfbuzz = > 0.9.42
34
	libicu
35
	libjpeg (depending on how Qt is packaged)
36
	libpng >= 1.6.0
6552 craig 37
	libtiff >= 3.6.0
23489 jghali 38
	libxml2 >= 2.6.0
21412 jghali 39
	LittleCMS (liblcms) >= 2.0 (2.1+ recommended)
23489 jghali 40
	poppler and poppler-cpp >= 0.62.0
21599 mrdocs 41
 
2084 craig 42
Recommended:
43
	CUPS
44
	Fontconfig >= 2.0
21578 mrdocs 45
	GhostScript >= 8.0 (9.0+ or greater preferred)
23477 jghali 46
	Python >= 3.6
2084 craig 47
	tkinter for the font sampler script
48
	python-imaging for the font sampler preview
7222 mrdocs 49
	pkgconfig (to assist finding other libraries)
21578 mrdocs 50
	hunspell for the spell checker
21412 jghali 51
	podofo - 0.7.0+ for enhanced Illustrator AI/EPS import, svn versions
19104 jghali 52
	boost and boost-devel
15492 mrdocs 53
	GraphicksMagick++
2084 craig 54
 
7222 mrdocs 55
 
2084 craig 56
If any recommended libraries (and their dev/devel packages or headers) are not
9435 mrdocs 57
installed, some features will be disabled by cmake. If you later install
58
any of these dependencies, you will have to re-run cmake and re-compile
2084 craig 59
Scribus before the features are enabled.
60
 
61
LIBRARIES IN NON-STANDARD LOCATIONS
62
===================================
63
 
2514 craig 64
You can skip this section unless:
65
    (a) You have libraries installed in unusual locations such as your home
66
        directory or an add-in package collection (eg fink); or
67
    (b) Scribus is not finding libraries that you KNOW you have installed
68
        (remember the -dev/-devel package if applicable).
2084 craig 69
 
9756 craig 70
If any of your libraries are in non-standard locations you will need to provide
71
some extra arguments to CMake to ensure that CMake and gcc can find all the
72
required files. Where /path/to/libfoo is the path to the the directory the
73
library was installed to, eg /usr/local or /home/fred/libfoo (not the 'lib'
74
subdirectory the actual .so files are in), you can use the following extra
75
arguments to CMake to help it find the library:
2084 craig 76
 
9756 craig 77
   -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include
78
   -DCMAKE_LIBRARY_PATH=/path/to/libfoo/lib
2084 craig 79
 
9756 craig 80
If you have multiple custom paths to specify, use a ; path separator, eg:
2084 craig 81
 
9756 craig 82
   -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include;/path/to/libalice/include
2514 craig 83
 
9756 craig 84
In most cases you should not and should not need to modify the CFLAGS,
85
CXXFLAGS, LIBRARY_PATH, LD_LIBRARY_PATH, CPATH, or LDFLAGS environment
86
variables. If you need to alter these to get Scribus to build, please file a
87
bug on http://bugs.scribus.net/ with information about your exact Scribus
88
version (including Subversion revision), full CMake command line, output of the
89
`env' command, and the full compiler error messages including the original
90
compiler command obtained by running `make' with the VERBOSE=1 argument.
2084 craig 91
 
9756 craig 92
CMake will try to embed the paths to the required libraries into the
93
executable,so you should generally not need to set the LD_LIBRARY_PATH
94
environment variable or your platform's equivalent. On platforms like win32
95
where no such rpath support exists, you will need to ensure that the libraries
96
required by Scribus are on the library search path. For Windows, the library
97
search path is the PATH environment variable.
2084 craig 98
 
99
REQUIREMENTS - DETAILS
100
======================
101
 
23477 jghali 102
Qt 5.10 is now the *minimum*. Older versions of Qt are *not* supported.
12910 mrdocs 103
If you build Qt from sources, the recommended ./configure/cmake switches are the
10174 mrdocs 104
 same as used by KDE. Use of other switches aside from those used by distro
21412 jghali 105
packages can make trouble shooting issues very difficult at times.
10174 mrdocs 106
See: http://developer.kde.orgb/uild/compile_kde3_3.html
2084 craig 107
 
108
Scribus requires Freetype. If you are compiling from source, you will need to
109
have the freetype headers installed - these can usually be found in a -devel
110
package for your distro.
111
 
112
It is strongly recommended that you install the CUPS development packages if
113
you are compiling Scribus. Without CUPS, Scribus will have significantly
12910 mrdocs 114
reduced printing functionality and building without CUPS is poorly tested.
2084 craig 115
 
116
Fontconfig, if installed, will let Scribus find fonts using the same method as
117
most other major desktop applications such as all KDE and GNOME applications.
118
If fontconfig support is installed, Scribus will not search your X font path, X
119
server configuration, or X font server configuration for fonts - it will only
120
use fonts found using fontconfig and any custom font locations configured in
9756 craig 121
the preferences. Use of fontconfig is strongly recommended and will soon be
122
required on supporting platforms.
2084 craig 123
 
9756 craig 124
Python is used to add scripting support to Scribus. If Python is not found, or
125
there are no header files for Python installed (usually because you haven't
126
installed the development package), the scripting support will not be enabled.
2084 craig 127
 
128
See the distro-specific notes below for more information on installing and
129
using Scribus with your distro.
130
 
2405 craig 131
TROUBLESHOOTING
132
===============
2383 mrdocs 133
 
2405 craig 134
If Scribus can't find a library, there are several things you should do.
135
First of all, read `DISTRO SPECIFIC BUILD INFORMATION' below and see if
136
there's anything there for your OS / distro.
137
 
138
Next, ensure you definitely have the library installed, as well as any
19104 jghali 139
additional development packages that may be required to use it. On Linux, make
2405 craig 140
sure to install the "-dev" or "-devel" package for the missing library. After
141
doing this, re-run configure.
142
 
143
If the library is still not found, please read and act on the section above,
144
entitled `LIBRARIES IN NONSTANDARD LOCATIONS'. Check that all those environment
145
variables are set to sensible values. If you are using any other custom CFLAGS,
9756 craig 146
LDFLAGS, CXXFLAGS, CPPFLAGS, etc, then unset or disable them unless you're
147
really sure you know what you're doing. This is doubly true for "optimisation"
148
flags like -mcpu and -march .
2405 craig 149
 
9756 craig 150
If you're still unable to determine what the problem is, please post a message
151
to the Scribus mailing list or report a bug on bugs.scribus.net.
2405 craig 152
 
9756 craig 153
In any problem report, MAKE SURE YOU INCLUDE THE FOLLOWING INFORMATION:
154
    - Your CMakeCache.txt
155
    - The exact CMake command you ran
156
    - The output of the `env' command
157
    - A full listing of the compile command and compiler error messages,
158
      obtained by running `make' with VERBOSE=1 .
2405 craig 159
    - Operating system or distro, eg "Mac OS X" or "Debian Linux"
160
    - OS or distro version, eg "Panther" or "Fedora Core 3". This is NOT the
161
      Linux kernel version, though you can provide that too.
21412 jghali 162
    - Scribus version you're trying to compile, eg "1.4.6" or "1.5.3.svn". If
9756 craig 163
      you're building an SVN version, please make sure you've run
164
      "svn revert -R ." (this WILL erase any patches / custom changes you've
165
      made), deleted the CMake cache with `rm -f CMakeCache.txt' and re-built
166
      before reporting a problem. Include the output of `svn info' in your
167
      bug report if you are using a svn version.
168
    - What compiler & version you're using. You can get this from `gcc
169
      --version'.  if you're using gcc.
2405 craig 170
    - If you're having problems with a particular library, what version
171
      of the library you have installed and where you got it from. eg:
19104 jghali 172
      "freetype 2.0.1 from sunfreeware",
21412 jghali 173
      "LittleCMS 2.1, compiled myself and installed in /usr/local",
9756 craig 174
      "freetype 2.1.3 from backports.org",
2405 craig 175
      "fontconfig 2.2.0 (stock Fedora Core 3 devel package)"
176
      "I installed the qt-3.0.1.rpm and qt-devel-3.0.1.rpm from the CD."
177
    - Check again to make REALLY REALLY SURE you have the devel package
9756 craig 178
      installed, and list the names of the relevant installed devel packages
179
      in your problem report.
2405 craig 180
    - Any environment variables you may have set
181
    - Anything else you can think of that might be useful. There's no
182
      such thing as too much information, though please put big files
183
      elsewhere rather than sending them to the mailing list.
184
 
185
It's best if you do a search of the mailing list archives and/or
186
bugs.scribus.net before reporting a problem, too. This is doubly true for
187
development versions of Scribus.
188
 
2084 craig 189
DISTRO SPECIFIC BUILD INFORMATION
190
=================================
191
 
192
This section contains information about compiling Scribus that's specific to
193
particular operating systems and Linux distros. More distro-specific
194
information can be found in the README.
195
 
196
Debian
197
======
198
 
23477 jghali 199
Recommended packages for compiling from source on Buster (Debian 10.0):
21412 jghali 200
	qtbase5-dev (Required)
201
	qtdeclarative5-dev (Required)
202
	qttools5-dev (Required)
203
	qttools5-dev-tools (Required)
9756 craig 204
	libcairo2-dev (Required)
21412 jghali 205
	libcupsys2-dev (Required)
9756 craig 206
	libfontconfig1-dev (Required)
21412 jghali 207
	libfreetype6-dev (Required)
23477 jghali 208
	libharfbuzz-dev (Required)
21412 jghali 209
	liblcms2-dev (Required)
23489 jghali 210
	libpng-dev (Required)
21412 jghali 211
	libtiff5-dev (Required)
212
	libxml2-dev (Required)
213
	libboost-dev
214
	libhunspell-dev
215
	libpodofo-dev
216
	libpoppler-dev
23477 jghali 217
	libpoppler-cpp-dev
21412 jghali 218
	libpoppler-private-dev
23477 jghali 219
	python3-dev
9756 craig 220
	gs-gpl or gs-afpl (usually gs-gpl is newer now)
23870 jghali 221
 
222
For proper execution, following package(s) should also be installed:
223
	qt5-image-formats-plugins
2084 craig 224
 
23477 jghali 225
You are unlikely to be able to compile Scribus 1.5.x on Debian 9.0 (Stretch)
226
Scribus 1.5.x should be considered not to support Debian Stretch.
2084 craig 227
 
2514 craig 228
More info can be found in the README.
2084 craig 229
 
13324 mrdocs 230
Red Hat / Fedora / CentOS
21412 jghali 231
=========================
2084 craig 232
 
13324 mrdocs 233
Recommended packages for compiling from source on Fedora/CentOS/RHEL
2850 craig 234
	libstdc++-devel (Required)
235
	gcc-c++ (Required)
21412 jghali 236
	qt5-qtbase-devel (Required)
237
	qt5-qtdeclarative-devel (Required)
238
	qt5-qttools-devel (Required)
239
	cairo-devel (Required)
240
	cups-devel (Required)
241
	fontconfig-devel (Required)
2084 craig 242
	freetype-devel (Required)
23477 jghali 243
	harfbuzz-devel (Required)
21412 jghali 244
	lcms2-devel (Required)
245
	libjpeg-devel (Required)
23489 jghali 246
	libpng-devel (Required)
21412 jghali 247
	libtiff-devel (Required)
248
	libxml2-devel (Required)
21416 jghali 249
	boost-devel
21412 jghali 250
	hunspell-devel
251
	podofo-devel
252
	poppler-devel
23477 jghali 253
	python3-devel
2084 craig 254
 
19104 jghali 255
You can install these packages with 'yum install packagename' as root.
2084 craig 256
 
23870 jghali 257
For proper execution, following package(s) should also be installed:
258
	qt5-qtimageformats
2452 craig 259
 
2514 craig 260
More info can be found in the README.
2084 craig 261
 
8385 mrdocs 262
Suse/Opensuse
21412 jghali 263
=============
2515 craig 264
 
23477 jghali 265
Recommended packages for compiling from source on OpenSuse 15.1 => :
21412 jghali 266
	libqt5-qtbase-devel (required)
267
	libqt5-qtdeclarative-devel (required)
268
	libqt5-qttools-devel (required)
9435 mrdocs 269
	cairo-devel (required)
21412 jghali 270
	cups-devel (required)
271
	fontconfig-devel (required)
2515 craig 272
	freetype2-devel (required)
23477 jghali 273
	harfbuzz-devel (required) > 0.9.42
21412 jghali 274
	libjpeg-devel (required)
9435 mrdocs 275
	liblcms-devel (required)
23489 jghali 276
	libpng16-compat-devel (required)
9435 mrdocs 277
	libtiff-devel (required)
21412 jghali 278
	libxml2-devel (required)
19104 jghali 279
	openssl-devel (required if CUPS support is needed)
21412 jghali 280
	boost-devel
281
	hunspell-devel
282
	libpodofo-devel
283
	libpoppler-devel
23477 jghali 284
	python3-devel
285
	python3-imaging or python3-pillow depending on distro version
286
	python3-tk
19104 jghali 287
	libGraphicsMagick++-devel
21578 mrdocs 288
	libOpenSceneGraph-devel  *Optional- but available from the games repo
21412 jghali 289
	update-desktop-files
21599 mrdocs 290
	libicu
2515 craig 291
 
9756 craig 292
You can install these packages using YaST. You may find it difficult to compile
23477 jghali 293
Scribus 1.5.6+ on anything older than OpenSuse 15.1.
2515 craig 294
 
23870 jghali 295
For proper execution, following package(s) should also be installed:
296
	libqt5-qtimageformats
297
 
9756 craig 298
Please note we do provide frequently updated packages including debuginfo rpms
23477 jghali 299
on the Suse Build Server at https://software.opensuse.org .
9435 mrdocs 300
 
2514 craig 301
Mac OS X
302
========
2084 craig 303
 
2514 craig 304
No detailed build instructions yet. Please see the README for info on MacOS/X.
2084 craig 305
 
306
Microsoft Windows
307
=================
308
 
309
No build instructions yet. Please see the README for info on Scribus under
310
Windows.
311
 
312
Other distros/OSes
313
==================
314
 
315
Please feel free to submit a list of package names and versions required to
316
compile Scribus on your distro, or build instructions for your OS.