~ubuntu-branches/ubuntu/wily/scribus/wily-proposed

1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
1
##############################################################################################################
2
########## CMake Setup                                                                              ##########
3
4
#Set our CMake minimum version
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
5
#Require 2.4.2 for Qt finding
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
6
#Require 2.4.3 for moc change detection and rpath updates for custom cairo install
7
#its not likely 2.4.x will work any more
8
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
9
10
#IF(WIN32)
11
#  IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.6)
12
#    MESSAGE(FATAL_ERROR "Windows builds require CMake 2.6")
13
#  ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.6)
14
#ENDIF(WIN32)
15
16
#Pretty colors
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
17
SET(CMAKE_COLOR_MAKEFILE ON)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
18
#Dont force verbose
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
19
SET(CMAKE_VERBOSE_MAKEFILE OFF)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
20
#Include current dir
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
21
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
1.1.5 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg~rc3+svn20110401
22
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
23
#RPATH setup - more below too
24
IF (WANT_NORPATH OR WANT_DISTROBUILD)
1.1.5 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg~rc3+svn20110401
25
    SET(CMAKE_SKIP_RPATH TRUE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
26
ELSE (WANT_NORPATH OR WANT_DISTROBUILD)
1.1.5 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg~rc3+svn20110401
27
    SET(CMAKE_SKIP_BUILD_RPATH TRUE)
28
    SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
29
    SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
30
    SET(CMAKE_SKIP_RULE_DEPENDENCY TRUE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
31
ENDIF (WANT_NORPATH OR WANT_DISTROBUILD)
32
33
INCLUDE(CheckIncludeFile)
34
INCLUDE(CheckCCompilerFlag)
35
INCLUDE(CheckCXXCompilerFlag)
36
INCLUDE(CheckTypeSize)
37
INCLUDE(TestBigEndian)
38
39
#Set the custom CMake module directory where our include/lib finders are
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
40
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
41
42
##############################################################################################################
43
########## toplevel compiler flags                                                                  ##########
44
45
# CHECK_C_COMPILER_FLAG(" ${CMAKE_SHARED_LIBRARY_C_FLAGS}" C_HAVE_PIC)
46
# CHECK_CXX_COMPILER_FLAG(" ${CMAKE_SHARED_LIBRARY_C_FLAGS}" CXX_HAVE_PIC)
47
# IF (CXX_HAVE_PIC AND C_HAVE_PIC)
48
#     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_SHARED_LIBRARY_C_FLAGS}")
49
#     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_C_FLAGS}")
50
# ELSE (CXX_HAVE_PIC AND C_HAVE_PIC)
51
#     MESSAGE(FATAL_ERROR "Shared library support is missing")
52
# ENDIF (CXX_HAVE_PIC AND C_HAVE_PIC)
53
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
54
# SET(CMAKE_SHARED_MODULE_LINK_FLAGS "${CMAKE_SHARED_MODULE_LINK_FLAGS} -export-dynamic")
55
# SET(CMAKE_SHARED_MODULE_LINK_CXX_FLAGS "${CMAKE_SHARED_MODULE_LINK_CXX_FLAGS} -export-dynamic")
56
# SET(CMAKE_SHARED_LIBRARY_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} -export-dynamic")
57
# SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} -export-dynamic")
58
# MESSAGE(STATUS ${CMAKE_SHARED_MODULE_LINK_FLAGS})
59
# MESSAGE(STATUS ${CMAKE_SHARED_MODULE_LINK_CXX_FLAGS})
60
# MESSAGE(STATUS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
61
# MESSAGE(STATUS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
62
# MESSAGE(STATUS ${CMAKE_CXX_CREATE_SHARED_MODULE})
63
# MESSAGE(STATUS ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
64
65
#IMPORT FROM COMMANDLINE
66
# SET with cmake -DWANT_CAIRO=1, etc
67
# MESSAGE(STATUS ${WANT_CAIRO})
68
# MESSAGE(STATUS ${WANT_LIBART})
69
# MESSAGE(STATUS ${WANT_DEBUG})
70
71
# SET(WANT_CAIRO 0)
72
# SET(WANT_LIBART 1)
73
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
74
#Project Setup
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
75
PROJECT(scribus)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
76
#Set our version values
77
#Final version is ${VERSION} = ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_SUFFIX}
78
#where VERSION_SUFFIX is of the form "", "svn" or "Nsvn" (N being the minor patch level)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
79
SET (VERSION_MAJOR "1")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
80
SET (VERSION_MINOR "4")
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
81
SET (VERSION_PATCH "3")
1.1.6 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg+r17287
82
SET (VERSION_SUFFIX "svn")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
83
SET (VERSION ${VERSION_MAJOR})
84
IF (VERSION_MINOR GREATER -1)
85
  SET (VERSION ${VERSION}.${VERSION_MINOR})
86
ENDIF (VERSION_MINOR GREATER -1)
87
IF (VERSION_PATCH GREATER -1)
88
  SET (VERSION ${VERSION}.${VERSION_PATCH})
89
ENDIF (VERSION_PATCH GREATER -1)
90
IF (VERSION_SUFFIX)
91
  SET (VERSION ${VERSION}.${VERSION_SUFFIX})
92
ENDIF (VERSION_SUFFIX)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
93
MESSAGE(STATUS "Scribus ${VERSION} will be built to install into ${CMAKE_INSTALL_PREFIX}")
94
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
95
#Set the permissions to be used when installing plugins
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
96
SET(PLUGIN_PERMISSIONS WORLD_EXECUTE GROUP_EXECUTE OWNER_EXECUTE WORLD_READ GROUP_READ OWNER_READ OWNER_WRITE)
97
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
98
#Our main directory is scribus
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
99
SET(MAIN_DIR_NAME "scribus")
100
101
##############################################################################################################
102
########## check for the CPU we build for                                                           ##########
103
104
EXECUTE_PROCESS(
105
    COMMAND ${CMAKE_C_COMPILER} -dumpmachine
106
    OUTPUT_VARIABLE MACHINE
107
    OUTPUT_STRIP_TRAILING_WHITESPACE
108
)
109
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
110
MESSAGE(STATUS  "Machine: ${MACHINE}, void pointer size: ${CMAKE_SIZEOF_VOID_P}")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
111
STRING(REGEX MATCH "(i?86-*)|(athlon-*)|(pentium-*)" _machine_x86 "${MACHINE}")
112
IF (_machine_x86)
113
    MESSAGE(STATUS "Found target X86")
114
    SET(ARCH_X86 1)
115
ENDIF (_machine_x86)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
116
IF (APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND ARCH_X86 EQUAL 1)
117
  MESSAGE(STATUS "Found Snow Leopard Target: Apple, 64 bit, X86")
118
  UNSET(ARCH_X86)
119
  SET(ARCH_X86_64 1)
120
  SET(APPLE_10_6_X 1 CACHE TYPE BOOL)
121
ENDIF (APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND ARCH_X86 EQUAL 1)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
122
123
STRING(REGEX MATCH "(x86_64-*)|(X86_64-*)|(AMD64-*)|(amd64-*)" _machine_x86_64 "${MACHINE}")
124
IF (_machine_x86_64)
125
    MESSAGE(STATUS "Found target X86_64")
126
    SET(ARCH_X86_64 1)
127
ENDIF (_machine_x86_64)
128
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
129
STRING(REGEX MATCH "(sparc64-*)|(SPARC64-*)" _machine_sparc_64 "${MACHINE}")
130
IF (_machine_sparc_64)
131
    MESSAGE(STATUS "Found target SPARC 64")
132
    SET(ARCH_SPARC_64 1)
133
ENDIF (_machine_sparc_64)
134
135
STRING(REGEX MATCH "(mips64-*)|(MIPS64-*)" _machine_mips_64 "${MACHINE}")
136
IF (_machine_mips_64)
137
    MESSAGE(STATUS "Found target MIPS 64")
138
    SET(ARCH_MIPS_64 1)
139
ENDIF (_machine_mips_64)
140
141
STRING(REGEX MATCH "(mips-*)|(MIPS-*)" _machine_mips "${MACHINE}")
142
IF (_machine_mips)
143
    MESSAGE(STATUS "Found target MIPS")
144
    SET(ARCH_MIPS 1)
145
ENDIF (_machine_mips)
146
147
STRING(REGEX MATCH "(hppa-*)" _machine_hppa "${MACHINE}")
148
IF (_machine_hppa)
149
    MESSAGE(STATUS "Found target HPPA")
150
    SET(ARCH_HPPA 1)
151
ENDIF (_machine_hppa)
152
153
STRING(REGEX MATCH "(ppc-*)|(powerpc-*)" _machine_ppc "${MACHINE}")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
154
IF (_machine_ppc)
155
    MESSAGE(STATUS "Found target PPC")
156
    SET(ARCH_PPC 1)
157
ENDIF (_machine_ppc)
158
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
159
STRING(REGEX MATCH "(ppc64-*)|(PPC64-*)|(powerpc64-*)" _machine_ppc_64 "${MACHINE}")
160
IF (_machine_ppc_64)
161
    MESSAGE(STATUS "Found target PPC64")
162
    SET(ARCH_PPC_64 1)
163
ENDIF (_machine_ppc_64)
164
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
165
STRING(REGEX MATCH "(sparc-*)" _machine_sparc "${MACHINE}")
166
IF (_machine_sparc)
167
    MESSAGE(STATUS "Found target Sparc")
168
    SET(ARCH_SPARC 1)
169
ENDIF (_machine_sparc)
170
171
STRING(REGEX MATCH "(sparcv9-*)" _machine_sparcv9 "${MACHINE}")
172
IF (_machine_sparcv9)
173
    MESSAGE(STATUS "Found target Sparc v9")
174
    SET(ARCH_SPARCV9 1)
175
ENDIF (_machine_sparcv9)
176
177
STRING(REGEX MATCH "(sparc64-*)" _machine_sparc64 "${MACHINE}")
178
IF (_machine_sparc64)
179
    MESSAGE(STATUS "Found target Sparc64")
180
    SET(ARCH_SPARC64 1)
181
    SET(ARCH64BIT 1)
182
ENDIF (_machine_sparc64)
183
184
#convert any 64 bit build into generic 64 tag for below
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
185
IF (ARCH_X86_64 OR ARCH_SPARC_64 OR ARCH_MIPS_64 OR ARCH_PPC_64) 
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
186
  SET(ARCH64BIT 1)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
187
ENDIF (ARCH_X86_64 OR ARCH_SPARC_64 OR ARCH_MIPS_64 OR ARCH_PPC_64) 
188
189
MESSAGE(STATUS "Building for target ${MACHINE}")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
190
191
##############################################################################################################
192
########## Versioning Setup                                                                         ##########
193
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
194
#On Apple, we ignore the versioning tag so all items are "scribus" not "scribus-version"
195
IF (NOT BUILD_OSX_BUNDLE)
196
  SET(BUILD_OSX_BUNDLE ${APPLE} CACHE TYPE BOOL)
197
ENDIF (NOT BUILD_OSX_BUNDLE)
198
199
#Simplify future conditionals for Apple
200
IF (APPLE AND BUILD_OSX_BUNDLE)
201
  SET(APPLEBUNDLE TRUE CACHE TYPE BOOL)
202
ENDIF (APPLE AND BUILD_OSX_BUNDLE)
203
204
#Announce we cached a version request before, overridden below for OSX
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
205
IF(TAG_VERSION)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
206
  IF (NOT APPLEBUNDLE)
207
    MESSAGE(STATUS "Previously selected version tag: ${TAG_VERSION}")
208
  ENDIF (NOT APPLEBUNDLE)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
209
  SET(WANT_VERSIONING 1)
210
  SET(CACHED_VERSIONING 1)
211
ENDIF(TAG_VERSION)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
212
213
#Remove version tags on OSX so our bundle is Scribus.app
214
IF (APPLEBUNDLE)
215
  IF (WANT_VERSIONING OR CACHED_VERSIONING)
216
    MESSAGE(STATUS "Ignoring version tag on OSX when building bundle")
217
    SET(WANT_VERSIONING 0)
218
    SET(CACHED_VERSIONING 0)
219
  ENDIF (WANT_VERSIONING OR CACHED_VERSIONING)
220
ENDIF (APPLEBUNDLE)
221
222
#Store our version string if require
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
223
IF (WANT_VERSIONING AND NOT CACHED_VERSIONING)
224
  IF (NOT CUSTOM_VERSIONTAG)
225
    SET(TAG_VERSION "-${VERSION}" CACHE TYPE STRING)
226
  ELSE (NOT CUSTOM_VERSIONTAG)
227
    SET(TAG_VERSION ${CUSTOM_VERSIONTAG} CACHE TYPE STRING)
228
  ENDIF (NOT CUSTOM_VERSIONTAG)
229
ENDIF (WANT_VERSIONING AND NOT CACHED_VERSIONING)
230
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
231
##############################################################################################################
232
########## Install/Directory Setup                                                                  ##########
233
234
IF (APPLEBUNDLE)
235
  IF ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/Contents/?$")
236
    # all ok
237
  ELSE ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/Contents/?$")
238
    IF ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/?$")
239
      # add "/Contents" subpath
240
      SET(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Contents")
241
    ELSE ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/?$")
242
      # no bundle name spcified, use appname and version
243
      SET(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Scribus${VERSION}.app/Contents")
244
    ENDIF ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/?$")
245
  ENDIF ("${CMAKE_INSTALL_PREFIX}" MATCHES "[.]app/Contents/?$")
246
247
  MESSAGE(STATUS "APPLEBUNDLE install prefix: ${CMAKE_INSTALL_PREFIX}")
248
ENDIF (APPLEBUNDLE)
249
250
251
#Setp all the directories we will use
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
252
#MAN
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
253
CMAKE_POLICY(SET CMP0005 OLD)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
254
SET(MANDIR "share/man/")
6 by Oleksandr Moskalenko
* Switch to the Qt4 branch (1.3.4svn) in preparation for Qt3 removal from
255
IF(WANT_VERSIONING)
256
    SET(SHAREDIR "share/${MAIN_DIR_NAME}${TAG_VERSION}/")
257
ELSE(WANT_VERSIONING)
258
    SET(SHAREDIR "share/${MAIN_DIR_NAME}/")
259
ENDIF(WANT_VERSIONING)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
260
ADD_DEFINITIONS("-DSHAREDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SHAREDIR}\\\"")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
261
262
#SHARE - use the default on Apple as TAG_VERSION is empty
263
IF(WIN32 OR OS2)
264
  SET(DOCDIR "share/doc/")
265
ELSE (WIN32 OR OS2)
266
  IF(TAG_VERSION OR BUILD_OSX_BUNDLE)
267
    SET(DOCDIR "share/doc/${MAIN_DIR_NAME}${TAG_VERSION}/")
268
  ELSE(TAG_VERSION OR BUILD_OSX_BUNDLE)
6 by Oleksandr Moskalenko
* Switch to the Qt4 branch (1.3.4svn) in preparation for Qt3 removal from
269
        IF(NOT WANT_VERSIONING)
270
            SET(DOCDIR "share/doc/${MAIN_DIR_NAME}/")
271
        ELSE(NOT WANT_VERSIONING)
272
            SET(DOCDIR "share/doc/${MAIN_DIR_NAME}-${VERSION}/")
273
        ENDIF(NOT WANT_VERSIONING)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
274
  ENDIF (TAG_VERSION OR BUILD_OSX_BUNDLE)
275
ENDIF (WIN32 OR OS2)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
276
ADD_DEFINITIONS("-DDOCDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DOCDIR}\\\"")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
277
278
#ICON
279
IF(WIN32)
280
  SET(ICONDIR "share/icons/")
281
ELSE(WIN32)
282
  SET(ICONDIR "share/${MAIN_DIR_NAME}${TAG_VERSION}/icons/")
283
ENDIF(WIN32)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
284
ADD_DEFINITIONS("-DICONDIR=\\\"${CMAKE_INSTALL_PREFIX}/${ICONDIR}\\\"")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
285
286
#SAMPLES
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
287
SET(SAMPLESDIR "share/${MAIN_DIR_NAME}${TAG_VERSION}/samples/")
288
ADD_DEFINITIONS("-DSAMPLESDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SAMPLESDIR}\\\"")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
289
290
#SCRIPTS
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
291
SET(SCRIPTSDIR "share/${MAIN_DIR_NAME}${TAG_VERSION}/scripts/")
292
ADD_DEFINITIONS("-DSCRIPTSDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SCRIPTSDIR}\\\"")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
293
294
#TEMPLATES
295
IF(WIN32)
296
  SET(TEMPLATEDIR "share/templates/")
297
ELSE(WIN32)
298
  SET(TEMPLATEDIR "share/${MAIN_DIR_NAME}${TAG_VERSION}/templates/")
299
ENDIF(WIN32)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
300
ADD_DEFINITIONS("-DTEMPLATEDIR=\\\"${CMAKE_INSTALL_PREFIX}/${TEMPLATEDIR}\\\"")
301
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
302
#DESKTOP
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
303
SET(DESKTOPDIR "share/applications/")
304
ADD_DEFINITIONS("-DDESKTOPDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DESKTOPDIR}\\\"")
305
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
306
# APPLICATION_DATA_DIR
307
# It allows specify the user configuration directory in the compile time.
308
# Example: I want to use special ~/.scribus135svn config directory for my trunk
309
#          cmake -DAPPLICATION_DATA_DIR=.scribus135svn ...
310
IF (APPLICATION_DATA_DIR)
311
	MESSAGE(STATUS "Using ApplicationDataDir ${APPLICATION_DATA_DIR} instead of the platform default.")
312
    ADD_DEFINITIONS("-DAPPLICATION_DATA_DIR=\\\"${APPLICATION_DATA_DIR}\\\"")
313
ELSE (APPLICATION_DATA_DIR)
314
    MESSAGE(STATUS "Using standard ApplicationDataDir. You can change it with -DAPPLICATION_DATA_DIR")
315
ENDIF (APPLICATION_DATA_DIR)
316
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
317
#LIB LOCATION - lib or lib64 normally
318
#LIB
319
IF(WANT_LIB64)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
320
  IF(NOT ARCH_X86_64)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
321
    MESSAGE(STATUS "WARNING: BUILDING 64 Bit build on non 64 bit architecture")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
322
  ENDIF(NOT ARCH_X86_64)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
323
  SET(LIB_SUFFIX "64" CACHE TYPE STRING)
324
ENDIF(WANT_LIB64)
325
SET(LIB_DIR_NAME "lib${LIB_SUFFIX}")
326
SET(LIBDIR "${LIB_DIR_NAME}/${MAIN_DIR_NAME}${TAG_VERSION}/")
327
ADD_DEFINITIONS("-DLIBDIR=\\\"${CMAKE_INSTALL_PREFIX}/${LIBDIR}\\\"")
328
329
#PLUGINS
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
330
IF(WIN32)
331
  SET(PLUGINDIR "plugins")
332
ELSE(WIN32)
333
  SET(PLUGINDIR "${LIB_DIR_NAME}/${MAIN_DIR_NAME}${TAG_VERSION}/plugins/")
334
ENDIF(WIN32)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
335
ADD_DEFINITIONS("-DPLUGINDIR=\\\"${CMAKE_INSTALL_PREFIX}/${PLUGINDIR}\\\"")
336
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
337
#INCLUDE
338
SET(INCLUDEDIR "include/${MAIN_DIR_NAME}${TAG_VERSION}/")
339
#NO ADD DEFINITIONS, WE ONLY INSTALL WITH IT
340
341
#RPATH
342
IF (WANT_NORPATH OR WANT_DISTROBUILD)
343
  set(CMAKE_INSTALL_RPATH "")
344
ELSE (WANT_NORPATH OR WANT_DISTROBUILD)
345
  set(CMAKE_INSTALL_RPATH ${PLUGINDIR})
346
ENDIF (WANT_NORPATH OR WANT_DISTROBUILD)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
347
348
# Set the XDG mime stuff
349
SET(MIMEDIR "share/mime/packages/")
350
SET(MIMELNKDIR "share/mimelnk/application/")
351
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
352
##############################################################################################################
353
########## Build Setup                                                                              ##########
354
355
#Convert our simpler command line option to the CMake style
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
356
#None, Debug, Release, .. or custom ones
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
357
# SET(WANT_DEBUG 1)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
358
IF(WANT_DEBUG)
359
  SET(CMAKE_BUILD_TYPE Debug)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
360
ENDIF(WANT_DEBUG)
361
IF (WANT_RELEASEWITHDEBUG)
362
  SET(CMAKE_BUILD_TYPE RelWithDebInfo)
363
ENDIF (WANT_RELEASEWITHDEBUG)
364
IF(NOT WANT_DEBUG AND NOT WANT_RELEASEWITHDEBUG)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
365
  SET(CMAKE_BUILD_TYPE RELEASE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
366
ENDIF(NOT WANT_DEBUG AND NOT WANT_RELEASEWITHDEBUG)
367
368
369
370
#Based on our build type, setup our build options
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
371
IF(APPLE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
372
  IF(APPLE_10_6_X)
373
    SET(OSXMINVER "10.6" CACHE TYPE STRING)
374
  ELSE(APPLE_10_6_X)
375
    SET(OSXMINVER "10.4" CACHE TYPE STRING)
376
  ENDIF(APPLE_10_6_X)
377
  # gcc/mac
378
  IF(WANT_UNIVERSAL_BUNDLE)
379
    MESSAGE("Setting Universal (PPC/i386) Architecture for OSX Build/Bundle")
380
    SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" )
381
    SET(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "ppc;i386" )
382
    SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.4")
383
    SET(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk")
384
  ELSE(WANT_UNIVERSAL_BUNDLE)
385
    IF(ARCH_PPC OR ARCH_PPC_64)
386
      MESSAGE("Setting PPC Architecture for OSX Build/Bundle")
387
      SET(CMAKE_OSX_ARCHITECTURES "ppc" )
388
      SET(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "ppc" )
389
    ELSE(ARCH_PPC OR ARCH_PPC_64)
390
      IF(APPLE_10_6_X)
391
        MESSAGE("Setting x86_64 Architecture for OSX Build/Bundle")
392
        SET(CMAKE_OSX_ARCHITECTURES "x86_64" )
393
        SET(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "x86_64" )
394
#        SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.6")
395
      ELSE(APPLE_10_6_X)
396
        MESSAGE("Setting i386 Architecture for OSX Build/Bundle")
397
        SET(CMAKE_OSX_ARCHITECTURES "i386" )
398
        SET(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "i386" )
399
#        SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.4")
400
      ENDIF(APPLE_10_6_X)
401
    ENDIF(ARCH_PPC OR ARCH_PPC_64)
402
  ENDIF(WANT_UNIVERSAL_BUNDLE)
403
  MESSAGE(STATUS "${CMAKE_OSX_ARCHITECTURES} ${CMAKE_OSX_SYSROOT}")
404
  MESSAGE(STATUS "OSX Minimum Version: ${OSXMINVER}")
405
  SET(ENV{MACOSX_DEPLOYMENT_TARGET} ${OSXMINVER} )
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
406
  SET( ENV{LD_PREBIND} 1 )
407
  SET( ENV{LD_PREBIND_ALLOW_OVERLAP} 1 )
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
408
  IF (WANT_DEBUG)
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
409
	SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
410
	SET(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
411
  ENDIF (WANT_DEBUG)
412
  IF (WANT_RELEASEWITHDEBUG)
413
    SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g3 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
414
    SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g3 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
415
  ENDIF (WANT_RELEASEWITHDEBUG)
416
  IF (NOT WANT_DEBUG AND NOT WANT_RELEASEWITHDEBUG)
417
    SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
418
    SET(CMAKE_C_FLAGS_RELEASE "-O2 -fno-inline-functions -Wall -mmacosx-version-min=${OSXMINVER}")
419
  ENDIF (NOT WANT_DEBUG AND NOT WANT_RELEASEWITHDEBUG)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
420
ELSE(APPLE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
421
  IF(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
422
    # Windows build with Visual Studio
423
    # Surely there's a better way to identify the compiler?
424
    SET(CMAKE_CXX_FLAGS_DEBUG)
425
    SET(CMAKE_C_FLAGS_DEBUG)
426
  ELSE(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
427
    # vanilla gcc
428
    SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -fstrict-aliasing")
429
    SET(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -Wall -fstrict-aliasing")
430
    
431
    IF (_machine_x86 OR _machine_x86_64)
432
      SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fPIC")
433
      SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fPIC")
434
    ENDIF (_machine_x86 OR _machine_x86_64)
435
    
436
  ENDIF(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
437
ENDIF(APPLE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
438
439
IF(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
440
  SET(CMAKE_CXX_FLAGS_RELEASE)
441
  SET(CMAKE_C_FLAGS_RELEASE)
442
ELSE(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
443
  SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wall -fPIC")
444
  SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -fPIC")
445
  ADD_DEFINITIONS(-DNDEBUG)
446
ENDIF(${CMAKE_GENERATOR} MATCHES "^(Visual Studio|NMake).*")
447
448
IF(WIN32)
449
  ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN
450
                  -DAVOID_WIN32_FILEIO
451
                  -D_CRT_SECURE_NO_DEPRECATE
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
452
                  -D_USE_MATH_DEFINES
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
453
                  -DCOMPILE_PLUGIN_AS_DLL
454
  )
455
  SET(BUILD_WINDOWS_VERSION 1)
456
  SET(DLL_USE_NATIVE_API 1)
457
ENDIF(WIN32)
458
459
##############################################################################################################
460
########## Find Dependencies                                                                        ##########
461
462
#<< Qt
463
SET (QT_MT_REQUIRED TRUE)
464
SET (QT_MIN_VERSION "4.6.0")
1.1.6 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg+r17287
465
IF(APPLE)
466
  IF (WANT_QT4MAC_COCOA)
467
	SET (QT_MAC_USE_COCOA TRUE)
468
  ELSE (WANT_QT4MAC_COCOA)
469
	SET (HAVE_CARBON 1 CACHE TYPE BOOL)
470
	ADD_DEFINITIONS("-DHAVE_CARBON=1")
471
  ENDIF (WANT_QT4MAC_COCOA)
472
  SET( QT_USE_QTSQL TRUE )
473
ENDIF(APPLE)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
474
IF (WANT_QT3SUPPORT)
475
  SET (QT_USE_QT3SUPPORT TRUE)
476
ELSE (WANT_QT3SUPPORT)
477
  SET (QT_USE_QT3SUPPORT FALSE)
478
ENDIF (WANT_QT3SUPPORT)
479
SET (QT_USE_QTXML TRUE )
480
SET( QT_USE_QTNETWORK TRUE )
481
FIND_PACKAGE(Qt4 REQUIRED)
482
INCLUDE( ${QT_USE_FILE} )
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
483
IF (QT_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
484
  MESSAGE("Qt4 Found OK")
485
  IF (WANT_QT3SUPPORT)
486
    MESSAGE(STATUS "Building with Qt3 Support")
487
  ELSE (WANT_QT3SUPPORT)
488
    MESSAGE(STATUS "Building without Qt3 Support (GOOD)")
489
  ENDIF (WANT_QT3SUPPORT)
490
  #Add our Qt definitions
491
  ADD_DEFINITIONS(
492
    ${QT_DEFINITIONS}
493
    -DQT_CORE_LIB
494
    -DQT_GUI_LIB
495
    -DQT_THREAD_LIB
496
    -DQT_XML_LIB
497
  )
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
498
ELSE(QT_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
499
  MESSAGE(FATAL_ERROR "No Qt4 found")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
500
ENDIF(QT_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
501
#>> Qt
502
503
#<< ZLIB, PNG
504
IF (WIN32)
505
  # On win32 we can use Qt's zlib and libpng, so we use some
506
  # custom cmake includes. This permits us to honour the 
507
  # USE_QT_ZLIB_PNGLIB flag if passed.
508
  SET(PNG_DIR ${CMAKE_MODULE_PATH})
509
  SET(ZLIB_DIR ${CMAKE_MODULE_PATH})
510
ENDIF (WIN32)
511
FIND_PACKAGE(ZLIB REQUIRED)
512
IF (ZLIB_FOUND)
513
  MESSAGE("ZLIB Library Found OK")
514
  SET(HAVE_LIBZ 1)
515
ENDIF(ZLIB_FOUND)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
516
FIND_PACKAGE(PNG REQUIRED)
517
IF (PNG_FOUND)
518
  MESSAGE("PNG Library Found OK")
519
ENDIF(PNG_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
520
#>> ZLIB, PNG
521
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
522
#<< JPEG, TIFF
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
523
FIND_PACKAGE(JPEG REQUIRED)
524
IF (JPEG_FOUND)
525
  MESSAGE("JPEG Library Found OK")
526
ENDIF(JPEG_FOUND)
527
FIND_PACKAGE(TIFF REQUIRED)
528
IF (TIFF_FOUND)
529
  MESSAGE("TIFF Library Found OK")
530
  SET(HAVE_TIFF 1)
531
ELSE(TIFF_FOUND)
532
  MESSAGE(FATAL_ERROR "Could not find the TIFF Library")
533
ENDIF(TIFF_FOUND)
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
534
#<< JPEG, TIFF
535
536
#<< PYTHON
537
SET(PythonLibs_FIND_VERSION 2)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
538
FIND_PACKAGE(PythonLibs REQUIRED)
539
IF (PYTHON_LIBRARY)
540
  MESSAGE("Python Library Found OK")
541
  SET(HAVE_PYTHON 1)
542
  SET(COMPILE_PYTHON 1)
543
ENDIF(PYTHON_LIBRARY)
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
544
#>> PYTHON
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
545
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
546
#<< FreeType2
1.1.3 by Oleksandr Moskalenko
Import upstream version 1.3.3.13.dfsg~svn20081228
547
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.6)
548
  SET(FREETYPE_DIR ${CMAKE_MODULE_PATH})
549
  FIND_PACKAGE(FREETYPE REQUIRED)
550
  IF (FREETYPE_FOUND)
551
    MESSAGE("FreeType2 Library Found OK")
552
    INCLUDE(CheckLibraryExists)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
553
    CHECK_LIBRARY_EXISTS(${FREETYPE_LIBRARY} FT_Get_First_Char "" HAVE_FREETYPE_FIRST)
554
    CHECK_LIBRARY_EXISTS(${FREETYPE_LIBRARY} FT_Get_Next_Char "" HAVE_FREETYPE_NEXT)
1.1.3 by Oleksandr Moskalenko
Import upstream version 1.3.3.13.dfsg~svn20081228
555
  ENDIF(FREETYPE_FOUND)
556
  SET(CFLAGS "${CFLAGS}"."${LIBFREETYPE_CFLAGS}")
557
ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.6)
558
  FIND_PACKAGE(Freetype REQUIRED)
559
  IF (FREETYPE_FOUND)
560
    MESSAGE(STATUS "FreeType2 Library Found OK")
561
    INCLUDE(CheckLibraryExists)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
562
    CHECK_LIBRARY_EXISTS(${FREETYPE_LIBRARY} FT_Get_First_Char "" HAVE_FREETYPE_FIRST)
563
    CHECK_LIBRARY_EXISTS(${FREETYPE_LIBRARY} FT_Get_Next_Char "" HAVE_FREETYPE_NEXT)
564
    # here we have an alternative
565
    # a) Setup CFLAGS with the FREETYPE_INCLUDE_DIR_freetype2 provided by cmake
566
    # b) Insert ${FREETYPE_INCLUDE_DIRS} in include sections of CMakeLists that need it
567
    # I prefer (b) and at some point & from my opinion it should  be just needed in scribus/fonts/CmakeLists.txt - pm
1.1.3 by Oleksandr Moskalenko
Import upstream version 1.3.3.13.dfsg~svn20081228
568
  ELSE (FREETYPE_FOUND)
569
    MESSAGE(FATAL_ERROR "No Freetype Found")
570
  ENDIF(FREETYPE_FOUND)
571
ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.6)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
572
#>> FreeType2
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
573
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
574
#<<Render Library
575
# Select our rendering library
576
# As of Scribus 1.3.5, we can use cairo or Qt4's Arthur
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
577
# If we have a RENDER_LIB selected from a previous cmake run, then use it
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
578
# otherwise, we should be defaulting to Libart_LGPL for 1.3.4.x
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
579
IF(RENDER_LIB)
580
  MESSAGE(STATUS "Previously selected rendering system: ${RENDER_LIB}")
581
ELSE(RENDER_LIB)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
582
  IF (NOT WANT_QTARTHUR)
583
    SET(WANT_CAIRO 1)
584
  ENDIF (NOT WANT_QTARTHUR)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
585
ENDIF(RENDER_LIB)
586
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
587
IF (WANT_CAIRO OR RENDER_LIB STREQUAL "CAIRO")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
588
  SET(CAIRO_DIR ${CMAKE_MODULE_PATH})
589
  FIND_PACKAGE(CAIRO)
590
  IF(CAIRO_FOUND)
591
    MESSAGE("CAIRO Library Found OK")
592
    SET(RENDER_LIB "CAIRO" CACHE TYPE STRING)
593
  ELSE(CAIRO_FOUND)
594
    SET(OLDRENDERLIBLOST TRUE)
595
  ENDIF(CAIRO_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
596
ENDIF (WANT_CAIRO OR RENDER_LIB STREQUAL "CAIRO")
597
598
#Cairo is required on Windows for printing system
599
IF (WIN32)
600
  IF (NOT CAIRO_FOUND)
601
    MESSAGE(FATAL_ERROR "Cairo >= 1.5.16 is required for Windows build")  
602
  ENDIF (NOT CAIRO_FOUND)
603
ENDIF (WIN32)
604
605
IF (OLDRENDERLIBLOST OR WANT_QTARTHUR OR RENDER_LIB STREQUAL "QTARTHUR" OR NOT RENDER_LIB)
606
  SET(RENDER_LIB "QTARTHUR" CACHE TYPE STRING)
607
  MESSAGE("Qt4's Arthur selected for renderer")
608
  IF (OLDRENDERLIBLOST)
609
    MESSAGE("CAIRO could no longer be found, replaced by Qt4's Arthur")
610
  ENDIF (OLDRENDERLIBLOST)
611
ENDIF (OLDRENDERLIBLOST OR WANT_QTARTHUR OR RENDER_LIB STREQUAL "QTARTHUR" OR NOT RENDER_LIB)
612
#>>Render Library
613
614
#<<CUPS
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
615
IF(NOT WIN32 AND NOT HAIKU)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
616
  IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
617
    SET(Cups_DIR ${CMAKE_MODULE_PATH})
618
  ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
619
  FIND_PACKAGE(Cups REQUIRED)
620
  IF(CUPS_FOUND)
621
    SET(HAVE_CUPS 1)
622
    MESSAGE("CUPS Library Found OK")
623
  ENDIF(CUPS_FOUND)
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
624
ELSE (NOT WIN32 AND NOT HAIKU)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
625
  # Windows doesn't use CUPS
626
  SET(CUPS_INCLUDE_DIR)
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
627
ENDIF(NOT WIN32 AND NOT HAIKU)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
628
#>>CUPS
629
630
#<<LibXML2
631
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
632
  SET(LibXml2_DIR ${CMAKE_MODULE_PATH})
633
ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.5)
634
FIND_PACKAGE(LibXml2 REQUIRED)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
635
IF(LIBXML2_FOUND)
636
  SET(HAVE_XML 1)
637
  MESSAGE("LIBXML2 Library Found OK")
638
ENDIF(LIBXML2_FOUND)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
639
#>>LibXML2
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
640
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
641
#<<LittleCMS
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
642
SET(LCMS_DIR ${CMAKE_MODULE_PATH})
1.1.6 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg+r17287
643
FIND_PACKAGE(LCMS2)
644
IF (LCMS2_FOUND)
645
  IF (LCMS2_VERSION GREATER 2010 OR LCMS2_VERSION EQUAL 2010)
646
    SET(HAVE_CMS 1)
647
    SET(HAVE_LCMS21 1)
648
    SET(CMS_INC "\"lcms2.h\"")
649
    MESSAGE("LittleCMS Library >= 2.1 Found OK")
650
  ENDIF (LCMS2_VERSION GREATER 2010 OR LCMS2_VERSION EQUAL 2010)
651
ENDIF (LCMS2_FOUND)
652
IF (NOT HAVE_LCMS21)
653
  FIND_PACKAGE(LCMS REQUIRED)
654
  IF(LCMS_FOUND)
655
    SET(HAVE_CMS 1)
656
    SET(CMS_INC "\"lcms.h\"")
657
    MESSAGE("LittleCMS Library Found OK")
658
  ELSE(LCMS_FOUND)
659
    MESSAGE(FATAL_ERROR "Could not find the LittleCMS Library")
660
  ENDIF(LCMS_FOUND)
661
ENDIF (NOT HAVE_LCMS21)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
662
#>>LittleCMS
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
663
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
664
#<<FontConfig
665
IF(NOT WIN32)
666
  SET(FONTCONFIG_DIR ${CMAKE_MODULE_PATH})
667
  FIND_PACKAGE(FONTCONFIG)
668
  IF(FONTCONFIG_FOUND)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
669
	MESSAGE("FontConfig Found OK")
670
	SET(HAVE_FONTCONFIG 1)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
671
  ENDIF(FONTCONFIG_FOUND)
672
ELSE(NOT WIN32)
673
  # Windows builds neither use nor require fontconfig
674
  SET(FONTCONFIG_INCLUDE_DIR)
675
ENDIF(NOT WIN32)
676
#>>FontConfig
677
678
#<<ASPELL for Speelling support
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
679
#OPTION(WITH_ASPELL "Enable support for spell checking" ON)
680
#IF (WITH_ASPELL)
681
#  FIND_PACKAGE(ASPELL)
682
#  IF (ASPELL_FOUND)
683
#    MESSAGE("ASpell Found OK")
684
#    SET(HAVE_ASPELL 1)
685
#  ELSE (ASPELL_FOUND)
686
#    MESSAGE("ASpell or its developer libraries NOT found - Disabling support for spell checking")
687
#  ENDIF (ASPELL_FOUND)
688
#ENDIF (WITH_ASPELL)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
689
#>>ASPELL for Speelling support
690
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
691
#<<HUNSPELL for Speelling support
692
OPTION(WANT_HUNSPELL "Enable support for spell checking with hunspell" OFF)
693
IF (WANT_HUNSPELL)
694
  FIND_PACKAGE(HUNSPELL)
695
  IF (HUNSPELL_FOUND)
696
    MESSAGE("Hunspell Found OK")
697
    SET(HAVE_HUNSPELL 1)
698
  ELSE (HUNSPELL_FOUND)
699
    MESSAGE("HunSpell or its developer libraries NOT found - Disabling support for spell checking")
700
  ENDIF (HUNSPELL_FOUND)
701
ENDIF (WANT_HUNSPELL)
702
#>>HUNSPELL for Speelling support
703
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
704
705
#<<PoDoFo for AI PDF import
706
OPTION(WITH_PODOFO "Enable support for PDF embedded in AI" ON)
707
IF (WITH_PODOFO)
708
  FIND_PACKAGE(LIBPODOFO)
709
  IF (LIBPODOFO_FOUND)
710
    MESSAGE("PoDoFo found OK")
711
    SET(HAVE_PODOFO 1)
712
  ELSE (LIBPODOFO_FOUND)
713
    MESSAGE("PoDoFo NOT found - Disabling support for PDF embedded in AI")
714
  ENDIF (LIBPODOFO_FOUND)
715
ENDIF (WITH_PODOFO)
716
#>>PoDoFo for AI PDF import
717
1.1.5 by Oleksandr Moskalenko
Import upstream version 1.4.0.dfsg~rc3+svn20110401
718
#<<HYPHEN for system hyphenation library
719
FIND_PACKAGE(HYPHEN)
720
IF(HYPHEN_FOUND)
721
  MESSAGE("system hyphenation library found OK")
722
  SET(HAVE_HYPHEN 1)
723
ELSE(HYPHEN_FOUND)
724
  MESSAGE("system hyphenation library NOT found - will use internal one")
725
ENDIF(HYPHEN_FOUND)
726
#>>HYPHEN for system hyphenation library
727
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
728
##############################################################################################################
729
########## Include Setup                                                                            ##########
730
731
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
732
  
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
733
CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
734
IF(HAVE_DLFCN_H)
735
  ADD_DEFINITIONS(-DHAVE_DLFCN_H)
736
ENDIF(HAVE_DLFCN_H)
737
738
CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H)
739
IF(HAVE_UNISTD_H)
740
  ADD_DEFINITIONS(-DHAVE_UNISTD_H)
741
ENDIF(HAVE_UNISTD_H)
742
743
CHECK_INCLUDE_FILE("sys/types.h" HAVE_SYS_TYPES_H)
744
# IF(HAVE_SYS_TYPES_H)
745
#   ADD_DEFINITIONS(-DHAVE_SYS_TYPES_H)
746
# ENDIF(HAVE_SYS_TYPES_H)
747
748
CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H)
749
# IF(HAVE_SYS_STAT_H)
750
#   ADD_DEFINITIONS(-DHAVE_SYS_STAT_H)
751
# ENDIF(HAVE_SYS_STAT_H)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
752
#>>Test for existing include files
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
753
754
755
#Create configure files.. config.h and uninstall
756
#config.h
757
INCLUDE (ConfigureChecks.cmake)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
758
  IF(WIN32)
759
    SET(CONFIG_NAME win-config.h)
760
  ELSE(WIN32)
761
    SET(CONFIG_NAME config.h)
762
  ENDIF(WIN32)
763
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
764
ADD_DEFINITIONS("-DHAVE_CONFIG_H")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
765
766
767
768
#Set up include dirs with all found packages
769
INCLUDE_DIRECTORIES(
770
  ${CMAKE_BINARY_DIR}
771
  ${CMAKE_BINARY_DIR}/scribus
772
  ${QT_INCLUDES}
773
  ${FREETYPE_INCLUDE_DIR}
774
  ${FONTCONFIG_INCLUDE_DIR}
775
  ${JPEG_INCLUDE_DIR}
776
  ${LCMS_INCLUDE_DIR}
777
  ${LIBXML2_INCLUDE_DIR}
778
  ${PYTHON_INCLUDE_PATH}
779
  ${TIFF_INCLUDE_DIR}
780
  ${ZLIB_INCLUDE_DIR}
781
)
782
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
783
IF(NOT WIN32 AND NOT HAIKU)
784
  INCLUDE_DIRECTORIES(
785
    ${CUPS_INCLUDE_DIR}
786
  )
787
ENDIF(NOT WIN32 AND NOT HAIKU)
788
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
789
##############################################################################################################
790
########## Uninstall Setup                                                                          ##########
791
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
792
CONFIGURE_FILE(
793
  "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
794
  "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
795
  IMMEDIATE @ONLY
796
)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
797
798
ADD_CUSTOM_TARGET(uninstall
799
  "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
800
  
801
  
802
##############################################################################################################
803
########## Add our subdirs                                                                          ##########
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
804
805
#Add our source subdirs
806
ADD_SUBDIRECTORY(scribus)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
807
ADD_SUBDIRECTORY(resources/dicts)
808
ADD_SUBDIRECTORY(resources/editorconfig)
809
ADD_SUBDIRECTORY(resources/icons)
810
ADD_SUBDIRECTORY(resources/keysets)
811
ADD_SUBDIRECTORY(resources/loremipsum)
812
ADD_SUBDIRECTORY(resources/swatches)
813
ADD_SUBDIRECTORY(resources/templates)
814
ADD_SUBDIRECTORY(resources/translations/po)
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
815
816
#Install our READMEs etc.
817
INSTALL(FILES
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
818
  AUTHORS
819
  BUILDING
820
  ChangeLog
821
  ChangeLogSVN
822
  COPYING
823
  LINKS
824
  NEWS
825
  PACKAGING
826
  README
827
  TODO
828
  TRANSLATION
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
829
  DESTINATION ${DOCDIR}
830
)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
831
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
832
IF (APPLE)
833
  INSTALL(FILES
834
	README.MacOSX
835
	DESTINATION ${DOCDIR}
836
  )
837
ENDIF (APPLE)
838
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
839
#Install our MIME data
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
840
INSTALL(FILES
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
841
  scribus.xml
842
  DESTINATION ${MIMEDIR}
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
843
)
844
#KDE workaround until it starts supporting freedesktop spec
845
INSTALL(FILES
846
  vnd.scribus.desktop
847
  DESTINATION ${MIMELNKDIR}
848
)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
849
850
## PL We may not need this anymore
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
851
#Install the desktop file
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
852
## INSTALL(FILES
853
 # scribus.desktop
854
 # #DESTINATION ${DESKTOPDIR}
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
855
#)
856
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
857
#If building an Apple bundle, install these specific files
858
IF(APPLEBUNDLE)
859
  INSTALL(FILES
860
    Scribus.app/Contents/Info.plist
861
    DESTINATION ${CMAKE_INSTALL_PREFIX}
862
  )
863
  INSTALL(FILES
864
    Scribus.app/Contents/Resources/Scribus.icns
865
    Scribus.app/Contents/Resources/Scribus-doc.icns
866
    DESTINATION ${CMAKE_INSTALL_PREFIX}/Resources
867
  )
868
ENDIF(APPLEBUNDLE)
869
870
##############################################################################################################
871
########## Install/CPack Setup                                                                      ##########
872
873
# If the cmake version includes cpack, use it for tarball building
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
874
IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
875
  SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Scribus is an open source publishing application for Linux, Mac OSX and Windows")
876
  SET(CPACK_PACKAGE_VENDOR "Scribus Team")
877
  SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
878
  SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/README")
879
  SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
880
  SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
881
  SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
882
  SET(CPACK_PACKAGE_INSTALL_DIRECTORY "Scribus ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
883
  SET(CPACK_PACKAGE_EXECUTABLES "scribus${TAG_VERSION}")
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
884
  SET(CPACK_SOURCE_PACKAGE_FILE_NAME "scribus-${VERSION}${VERSION_SUFFIX}")
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
885
  SET(CPACK_SOURCE_GENERATOR TBZ2)
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
886
  SET(CPACK_SYSTEM_NAME "")
887
  SET(CPACK_TOPLEVEL_TAG "")
888
  SET(CPACK_SOURCE_IGNORE_FILES
889
    CMakeCache.txt
1.1.8 by Oleksandr Moskalenko
Import upstream version 1.4.2.dfsg+r18267
890
	scribus-1.4.3.tar.gz
891
	scribus-1.4.3.tar.Z
892
	scribus-1.4.3.tar.xz
893
	scribus-1.4.3.gz
894
	scribus-1.4.3.tar.bz2
895
	scribus-1.4.3.tar.7z
1.1.4 by Oleksandr Moskalenko
Import upstream version 1.3.9.dfsg+svn20110210
896
    "~$"
897
    "\\\\.cvsignore$"
898
    "\\\\.o$"
899
    "\\\\.svn-base$"
900
    "\\\\.svn$"
901
    "^${PROJECT_SOURCE_DIR}.*/CVS/"
902
    "^${PROJECT_SOURCE_DIR}/debian/"
903
    "^${PROJECT_SOURCE_DIR}/old/"
904
    "^${PROJECT_SOURCE_DIR}.*/CVSROOT/"
905
    "^${PROJECT_SOURCE_DIR}/admin/"
906
  )
1.1.2 by Oleksandr Moskalenko
Import upstream version 1.3.3.12.dfsg
907
  INCLUDE(CPack)
908
ENDIF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")