~ubuntu-branches/ubuntu/raring/kvirc/raring

« back to all changes in this revision

Viewing changes to .pc/30_upstream_build-g/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Raúl Sánchez Siles
  • Date: 2012-07-19 21:56:08 UTC
  • mfrom: (22.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20120719215608-gwlu1pzkkm9wxsyz
Tags: 4:4.1.3+20111124.svn5988-2
* Updated debhelper build-depends to better cope with multiarch.
* Fix "must not be "Multi-Arch: same"" kvirc is Multi-Arch: foreign
  (Closes: #658058)
* Actually provide valid -dbg package. Added 30_upstream_build-g
* Fix "Hardening flags missing". Applying suggested changes.
  (Closes: #669189) Thanks to Simon Ruderich.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
###############################################################################
 
2
##
 
3
## KVIrc CMake global configuration file.
 
4
##
 
5
###############################################################################
 
6
 
 
7
###############################################################################
 
8
# GLOBAL DEFS
 
9
###############################################################################
 
10
 
 
11
# Name of the project
 
12
PROJECT(kvirc)
 
13
 
 
14
# Set conventional loops
 
15
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
 
16
 
 
17
# Minimum cmake version
 
18
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4)
 
19
 
 
20
if(POLICY CMP0017)
 
21
        cmake_policy(SET CMP0017 NEW)
 
22
endif(POLICY CMP0017)
 
23
 
 
24
# Check modules first in local dir
 
25
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
 
26
 
 
27
# Some vars
 
28
SET(PACKAGE "kvirc")
 
29
SET(NICENAME "KVIrc")
 
30
SET(VERSION_MAJOR "4")
 
31
SET(VERSION_BRANCH "4.1")
 
32
SET(VERSION_RELEASE "4.1.3")
 
33
SET(VERSION_CODENAME "Equilibrium")
 
34
# REMINDER: "Aria" is a candidate
 
35
 
 
36
STRING(REGEX MATCH "[0-9]+$" VERSION_MINOR ${VERSION_BRANCH})
 
37
 
 
38
SET(CMAKE_KVIRC_VERSION_MAJOR ${VERSION_MAJOR})
 
39
SET(CMAKE_KVIRC_VERSION_BRANCH ${VERSION_BRANCH})
 
40
SET(CMAKE_KVIRC_VERSION_RELEASE ${VERSION_RELEASE})
 
41
SET(CMAKE_KVIRC_VERSION_CODENAME ${VERSION_CODENAME})
 
42
SET(CMAKE_KVIRC_BUILD_COMMAND ${CMAKE_COMMAND})
 
43
SET(CMAKE_KVIRC_BUILD_FLAGS)
 
44
SET(CMAKE_KVIRC_BUILD_SYSTEM ${CMAKE_SYSTEM})
 
45
SET(CMAKE_KVIRC_BUILD_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
 
46
SET(CMAKE_KVIRC_BUILD_SYSTEM_VERSION ${CMAKE_SYSTEM_VERSION})
 
47
SET(CMAKE_KVIRC_BUILD_CPU ${CMAKE_SYSTEM_PROCESSOR})
 
48
SET(CMAKE_KVIRC_BUILD_COMPILER ${CMAKE_CXX_COMPILER})
 
49
SET(CMAKE_KVIRC_BUILD_COMPILER_FLAGS ${CMAKE_CXX_FLAGS})
 
50
 
 
51
# Suffix for Linux
 
52
SET(LIB_SUFFIX
 
53
        CACHE STRING "Define suffix of directory name (32/64)"
 
54
)
 
55
 
 
56
# Get revision number from SVN
 
57
SET(MANUAL_REVISION
 
58
        CACHE STRING "Manually set the revision number"
 
59
)
 
60
 
 
61
STRING(COMPARE EQUAL "${MANUAL_REVISION}" "" MANUAL_REVISION_UNSET)
 
62
IF(MANUAL_REVISION_UNSET)
 
63
        # No manually forced revision number, gotta guess one now
 
64
        IF(EXISTS "${CMAKE_SOURCE_DIR}/.svn" AND IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.svn")
 
65
                # We're in a svn structure, let's get the revision number using subversion
 
66
                FIND_PACKAGE(Subversion)
 
67
                IF(Subversion_FOUND)
 
68
                        MESSAGE(STATUS "Found Subversion ${Subversion_VERSION_SVN}")
 
69
                        Subversion_WC_INFO(${PROJECT_SOURCE_DIR} KVIrc)
 
70
                        IF(DEFINED KVIrc_WC_REVISION)
 
71
                                SET(CMAKE_KVIRC_BUILD_REVISION ${KVIrc_WC_REVISION})
 
72
                                MESSAGE(STATUS "Current revision is ${KVIrc_WC_REVISION}")
 
73
                        ELSE()
 
74
                                MESSAGE(STATUS "No Subversion working copy found")
 
75
                        ENDIF()
 
76
                ELSE()
 
77
                        MESSAGE("Subversion not found. No revision number will be used")
 
78
                ENDIF()
 
79
        ELSE()
 
80
                IF(EXISTS "${CMAKE_SOURCE_DIR}/.svnrevision")
 
81
                        # We're in a release package created using makedist.sh, so we should include a .svnrevision file
 
82
                        FILE(READ "${CMAKE_SOURCE_DIR}/.svnrevision" DISTSVNREVISION)
 
83
                        STRING(STRIP "${DISTSVNREVISION}" CMAKE_KVIRC_BUILD_REVISION)
 
84
                        MESSAGE(STATUS "SVN revision is ${CMAKE_KVIRC_BUILD_REVISION}")
 
85
                ELSE()
 
86
                        MESSAGE(STATUS "No revision number found.")
 
87
                ENDIF()
 
88
        ENDIF()
 
89
 
 
90
ELSE()
 
91
        # Manually forced revision number
 
92
        SET(CMAKE_KVIRC_BUILD_REVISION ${MANUAL_REVISION})
 
93
        MESSAGE(STATUS "Current revision has been manually set to ${MANUAL_REVISION}")
 
94
ENDIF()
 
95
 
 
96
 
 
97
# Simplify eventual mixed revisions and strange tweaks with letters in it
 
98
STRING(REGEX REPLACE ":[0-9a-zA-Z]+" "" CMAKE_KVIRC_BUILD_REVISION "${CMAKE_KVIRC_BUILD_REVISION}")
 
99
STRING(REGEX REPLACE "[^0-9]+" "" CMAKE_KVIRC_BUILD_REVISION "${CMAKE_KVIRC_BUILD_REVISION}")
 
100
 
 
101
 
 
102
# Set man dir
 
103
SET(MANDIR
 
104
        CACHE STRING "Define man directory starting from $CMAKE_INSTALL_PREFIX"
 
105
)
 
106
 
 
107
STRING(COMPARE EQUAL "${MANDIR}" "" MANDIR_UNSET)
 
108
IF(MANDIR_UNSET)
 
109
        SET(MANDIR_PREFIX "share/man")
 
110
ELSE()
 
111
        SET(MANDIR_PREFIX "man")
 
112
ENDIF()
 
113
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS MANDIR=${MANDIR_PREFIX})
 
114
 
 
115
# Get the build date
 
116
TRY_RUN(TEST_DID_RUN TEST_DID_COMPILE "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/datetime.cpp" OUTPUT_VARIABLE TEST_BUILD_DATE)
 
117
IF(TEST_DID_COMPILE)
 
118
        STRING(REGEX MATCH "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [A-Z][A-Z][A-Z]" CMAKE_KVIRC_BUILD_DATE "${TEST_BUILD_DATE}")
 
119
ELSE()
 
120
        SET(CMAKE_KVIRC_BUILD_DATE "ERROR")
 
121
ENDIF()
 
122
 
 
123
# Set var to link with, for later use
 
124
SET(LIBS)
 
125
SET(ADDITIONAL_LINK_FLAGS)
 
126
 
 
127
# Install path
 
128
IF(UNIX)
 
129
        IF(APPLE)
 
130
                # MacOS X
 
131
                # Due to the special bundle structure ignore
 
132
                # the prefix eventually set by the user.
 
133
                SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/KVIrc.app)
 
134
        ELSE()
 
135
                # Linux / BSD
 
136
                IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 
137
                        #fix package build
 
138
                        IF(PREFIX)
 
139
                                SET(CMAKE_INSTALL_PREFIX ${PREFIX})
 
140
                        ELSE()
 
141
                                SET(CMAKE_INSTALL_PREFIX /usr/local)
 
142
                        ENDIF()
 
143
                ENDIF()
 
144
        ENDIF()
 
145
ELSEIF(WIN32)
 
146
        SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
 
147
ENDIF()
 
148
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX})
 
149
 
 
150
 
 
151
###############################################################################
 
152
#
 
153
# Release type
 
154
#
 
155
###############################################################################
 
156
OPTION(WANT_ENV_FLAGS "Don't try to set CMAKE_C(XX)_FLAGS; instead, use the ones from environment variables" OFF)
 
157
 
 
158
OPTION(WANT_DEBUG "Compile debug symbols" OFF)
 
159
IF(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo OR DEBUG OR WITH_DEBUG)
 
160
        SET(WANT_DEBUG ON CACHE BOOL "Compile debug symbols" FORCE)
 
161
        SET(COMPILE_DEBUG_MODE 1)
 
162
ENDIF()
 
163
 
 
164
OPTION(WANT_STRIP "Strip binaries (discard symbols from object files)" OFF)
 
165
 
 
166
IF(WANT_ENV_FLAGS)
 
167
        SET(CMAKE_BUILD_TYPE Undefined)
 
168
        SET(CMAKE_STATUS_DEBUG_SUPPORT "Environment-driven")
 
169
ELSE()
 
170
        IF(WANT_DEBUG)
 
171
                SET(WANT_STRIP OFF CACHE BOOL "Strip binaries (discard symbols from object files)" FORCE)
 
172
                SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
 
173
                SET(CMAKE_STATUS_DEBUG_SUPPORT "Yes")
 
174
                IF(CMAKE_COMPILER_IS_GNUCXX)
 
175
                        #force gdb format of debug symbols
 
176
                        SET(CMAKE_CXX_FLAGS "-O0 -ggdb -pipe --exec-charset=UTF-8 --input-charset=UTF-8 --no-implement-inlines --unit-at-a-time --fast-math")
 
177
                        SET(CMAKE_C_FLAGS "-O0 -ggdb -pipe --exec-charset=UTF-8 --input-charset=UTF-8 --no-implement-inlines --unit-at-a-time --fast-math")
 
178
                        INCLUDE(CheckCXXCompilerFlag)
 
179
                        CHECK_CXX_COMPILER_FLAG("-fvisibility=hidden" CXX_HAS_VH_FLAG)
 
180
                        CHECK_CXX_COMPILER_FLAG("-fvisibility-inlines-hidden" CXX_HAS_VIH_FLAG)
 
181
                        #gcc doesn't support visibility on PE/win32
 
182
                        IF(NOT MINGW)
 
183
                                IF(CXX_HAS_VH_FLAG)
 
184
                                        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
 
185
                                        SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
 
186
                                ENDIF()
 
187
                                IF(CXX_HAS_VIH_FLAG)
 
188
                                        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
 
189
                                        SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
 
190
                                ENDIF()
 
191
                        ENDIF()
 
192
                ELSE()
 
193
                        IF(MSVC)
 
194
                                #CMake default options are conflicting for some modules, such as perl
 
195
                                STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
 
196
                                STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
 
197
                                STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
 
198
                                STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
 
199
                                #this is the equivalent of -O0 -g according to msdn
 
200
                                SET(CMAKE_CXX_FLAGS "/Od /Zi")
 
201
                                SET(CMAKE_C_FLAGS "/Od /Zi")
 
202
                        ELSE()
 
203
                                SET(CMAKE_CXX_FLAGS "-O0 -g")
 
204
                                SET(CMAKE_C_FLAGS "-O0 -g")
 
205
                        ENDIF()
 
206
                ENDIF()
 
207
        ELSE()
 
208
                IF(WANT_STRIP)
 
209
                        FIND_PROGRAM(STRIP_EXECUTABLE NAMES strip)
 
210
                        IF(STRIP_EXECUTABLE)
 
211
                                SET(CMAKE_STATUS_DEBUG_SUPPORT "No (Stripped)")
 
212
                                SET(CMAKE_BUILD_TYPE Release-stripped CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
 
213
                        ELSE()
 
214
                                SET(CMAKE_STATUS_DEBUG_SUPPORT "No (Release)")
 
215
                                SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
 
216
                        ENDIF()
 
217
                ELSE()
 
218
                        SET(CMAKE_STATUS_DEBUG_SUPPORT "No (Release)")
 
219
                        SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
 
220
                ENDIF()
 
221
                IF(CMAKE_COMPILER_IS_GNUCXX)
 
222
                        #force gdb options
 
223
                        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fomit-frame-pointer -DNDEBUG --no-enforce-eh-specs -pipe --exec-charset=UTF-8 --input-charset=UTF-8 --no-implement-inlines --unit-at-a-time --fast-math")
 
224
                        SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -fomit-frame-pointer -DNDEBUG --no-enforce-eh-specs -pipe --exec-charset=UTF-8 --input-charset=UTF-8 --no-implement-inlines --unit-at-a-time --fast-math")
 
225
                        INCLUDE(CheckCXXCompilerFlag)
 
226
                        CHECK_CXX_COMPILER_FLAG("-fvisibility-inlines-hidden" CXX_HAS_VIH_FLAG)
 
227
                        #gcc doesn't support visibility on PE/win32
 
228
                        IF(CXX_HAS_VIH_FLAG AND NOT MINGW)
 
229
                                SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
 
230
                                SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
 
231
                        ENDIF()
 
232
                ELSE()
 
233
                        IF(MSVC)
 
234
                                #CMake default options are conflicting for some modules, such as perl
 
235
                                STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})
 
236
                                STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG_INIT ${CMAKE_C_FLAGS_DEBUG_INIT})
 
237
                                STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
 
238
                                STRING(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
 
239
                                SET(CMAKE_CXX_FLAGS "/Ox")
 
240
                                SET(CMAKE_C_FLAGS "/Ox")
 
241
                        ELSE()
 
242
                                SET(CMAKE_CXX_FLAGS "-O3")
 
243
                                SET(CMAKE_C_FLAGS "-O3")
 
244
                        ENDIF()
 
245
                ENDIF()
 
246
        ENDIF()
 
247
ENDIF()
 
248
 
 
249
############################################################################
 
250
# Check for KDE4
 
251
# This has been moved to the top of CMakeLists.txt, since FindKde4 overwrite
 
252
# cmake's module search paths, forcing us to use their version of these
 
253
# modules (eg: FindOpenSSL, see bug #655)
 
254
############################################################################
 
255
 
 
256
OPTION(WANT_KDE4 "Whether to use KDE4 support" ON)
 
257
IF(WANT_KDE4)
 
258
        FIND_PACKAGE(KDE4)
 
259
        IF(KDE4_FOUND)
 
260
                INCLUDE_DIRECTORIES(${KDE4_INCLUDES})
 
261
                ADD_DEFINITIONS(${KDE4_DEFINITIONS})
 
262
                SET(COMPILE_KDE_SUPPORT 1)
 
263
                LIST(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KPARTS_LIBRARY} ${KDE4_KFILE_LIBRARY} ${KDE4_KIO_LIBRARY} ${KDE4_SOLID_LIBRARY})
 
264
                SET(CMAKE_STATUS_KDE4_SUPPORT "Yes")
 
265
 
 
266
                # The KDE4 cmake module has a VERY WEIRD behaviour: it adds -Wl,--no-undefined
 
267
                # to the CMAKE_MODULE_LINKER_FLAGS .. which is BAD
 
268
                STRING(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS})
 
269
        ELSE()
 
270
                SET(CMAKE_STATUS_KDE4_SUPPORT "Not available")
 
271
        ENDIF()
 
272
ELSE()
 
273
        SET(CMAKE_STATUS_KDE4_SUPPORT "No")
 
274
ENDIF()
 
275
 
 
276
###############################################################################
 
277
#
 
278
# Verbose Makefile
 
279
#
 
280
###############################################################################
 
281
 
 
282
OPTION(WANT_VERBOSE "Generate verbose Makefiles" OFF)
 
283
IF(WANT_VERBOSE)
 
284
        SET(CMAKE_VERBOSE_MAKEFILE ON)
 
285
        SET(CMAKE_STATUS_VERBOSE_SUPPORT "Yes")
 
286
        LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS VERBOSE)
 
287
ELSE()
 
288
        SET(CMAKE_STATUS_VERBOSE_SUPPORT "No")
 
289
ENDIF()
 
290
 
 
291
 
 
292
###############################################################################
 
293
#
 
294
# Version compatibility switch: appends VERSION_MAJOR to kvirc and kvilib
 
295
#
 
296
###############################################################################
 
297
 
 
298
OPTION(WANT_COEXISTENCE "Append version to binaries to maintain compatibility with older versions" OFF)
 
299
IF(WANT_COEXISTENCE)
 
300
        SET(KVIRC_BINARYNAME ${PACKAGE}${VERSION_MAJOR})
 
301
        SET(KVILIB_BINARYNAME kvilib${VERSION_MAJOR})
 
302
        SET(CMAKE_STATUS_COEXISTENCE_VER "Yes")
 
303
ELSE()
 
304
        SET(KVIRC_BINARYNAME ${PACKAGE})
 
305
        SET(KVILIB_BINARYNAME kvilib)
 
306
        SET(CMAKE_STATUS_COEXISTENCE_VER "No")
 
307
ENDIF()
 
308
 
 
309
###############################################################################
 
310
#
 
311
# Module install path: kvirc needs to know where they are installed
 
312
#
 
313
###############################################################################
 
314
 
 
315
IF(UNIX)
 
316
        IF(APPLE)
 
317
                SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/Contents/Resources/")
 
318
        ELSE()
 
319
                # Assume linux
 
320
                SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/share/kvirc/${VERSION_BRANCH}/")
 
321
                SET(CMAKE_KVIRC_MODULES_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/kvirc/${VERSION_BRANCH}/modules")
 
322
                LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS LIB_SUFFIX=${LIB_SUFFIX})
 
323
        ENDIF()
 
324
ELSEIF(WIN32)
 
325
        SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/")
 
326
        SET(CMAKE_KVIRC_MODULES_DIR "${CMAKE_INSTALL_PREFIX}/modules/")
 
327
ENDIF()
 
328
 
 
329
###############################################################################
 
330
#
 
331
# System checks
 
332
#
 
333
###############################################################################
 
334
 
 
335
INCLUDE(CheckTypeSize)
 
336
CHECK_TYPE_SIZE("short" CMAKE_SYSTEM_SIZE_OF_SHORT_INT)
 
337
CHECK_TYPE_SIZE("int" CMAKE_SYSTEM_SIZE_OF_INT)
 
338
CHECK_TYPE_SIZE("long" CMAKE_SYSTEM_SIZE_OF_LONG_INT)
 
339
CHECK_TYPE_SIZE("long long" CMAKE_SYSTEM_SIZE_OF_LONG_LONG_INT)
 
340
 
 
341
INCLUDE(CheckIncludeFiles)
 
342
CHECK_INCLUDE_FILES(sys/types.h SYSTEM_HAS_SYS_TYPES_H)
 
343
CHECK_INCLUDE_FILES(strings.h SYSTEM_HAS_STRINGS_H)
 
344
 
 
345
# "dynamic labels" compiler support
 
346
TRY_RUN(TEST_DID_RUN_DYNLABELS TEST_DID_COMPILE_DYNLABELS "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/dynlabels.cpp")
 
347
IF(TEST_DID_COMPILE_DYNLABELS)
 
348
        STRING(COMPARE EQUAL "${TEST_DID_RUN_DYNLABELS}" "0" TEST_DID_RUN_DYNLABELS_SUCCESS)
 
349
        IF(TEST_DID_RUN_DYNLABELS_SUCCESS)
 
350
                SET(COMPILE_USE_DYNAMIC_LABELS 1)
 
351
        ELSE()
 
352
                SET(COMPILE_USE_DYNAMIC_LABELS 0)
 
353
        ENDIF()
 
354
ELSE()
 
355
        SET(COMPILE_USE_DYNAMIC_LABELS 0)
 
356
ENDIF()
 
357
 
 
358
###############################################################################
 
359
# Option for precompiled headers usage (currently broken because of bad gcc support)
 
360
###############################################################################
 
361
#
 
362
#OPTION(WANT_PCH "Whether to use pre-compiled headers" ON)
 
363
#IF(WANT_PCH)
 
364
#       FIND_PACKAGE(PCHSupport)
 
365
#       IF(PCHSupport_FOUND)
 
366
#               SET(CMAKE_STATUS_PCH_SUPPORT "Yes")
 
367
#               LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS -DUSE_PCH=1)
 
368
#       ELSE()
 
369
#               SET(CMAKE_STATUS_PCH_SUPPORT "Not available")
 
370
#       ENDIF()
 
371
#ELSE()
 
372
#       ADD_DEFINITIONS(-DUSE_PCH=0)
 
373
#       SET(CMAKE_STATUS_PCH_SUPPORT "User disabled")
 
374
#ENDIF()
 
375
#
 
376
 
 
377
###############################################################################
 
378
#
 
379
# Library and tool checks, in order. First the required ones
 
380
# in order of dependancy, then the optional ones.
 
381
#
 
382
###############################################################################
 
383
 
 
384
# ingore sigalarm (useful with solaris threads)
 
385
OPTION(WANT_IGNORE_SIGALARM "Ignore SIGALARM signal" OFF)
 
386
# Check for threads
 
387
FIND_PACKAGE(Threads REQUIRED)
 
388
IF(CMAKE_USE_WIN32_THREADS_INIT OR CMAKE_USE_PTHREADS_INIT)
 
389
        IF(CMAKE_USE_WIN32_THREADS_INIT)
 
390
                # No need to link to any specific library
 
391
                SET(COMPILE_THREADS_USE_WIN32 1)
 
392
                SET(CMAKE_STATUS_THREADS_SUPPORT "Win32")
 
393
                LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS Threads=Win32)
 
394
        ELSE()
 
395
                IF(CMAKE_HAVE_THREADS_LIBRARY)
 
396
                        LIST(APPEND LIBS ${CMAKE_THREAD_LIBS_INIT})
 
397
                ENDIF()
 
398
                SET(COMPILE_THREADS_USE_POSIX 1)
 
399
                LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS Threads=POSIX)
 
400
                # FIXME: Solaris threads ?
 
401
                #SET(COMPILE_THREADS_USE_SOLARIS_LIBTHREAD 1)
 
402
                #SET(CMAKE_STATUS_THREADS_SUPPORT "SOLARIS")
 
403
                #LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS Threads=SOLARIS)
 
404
                IF(WANT_IGNORE_SIGALARM)
 
405
                        SET(CMAKE_STATUS_THREADS_SUPPORT "POSIX (ignoring SIGALARM)")
 
406
                        SET(COMPILE_IGNORE_SIGALARM 1)
 
407
                ELSE()
 
408
                        SET(CMAKE_STATUS_THREADS_SUPPORT "POSIX")
 
409
                ENDIF()
 
410
        ENDIF()
 
411
ELSE()
 
412
        SET(CMAKE_STATUS_THREADS_SUPPORT "Not used")
 
413
ENDIF()
 
414
 
 
415
# Check for ZLib
 
416
FIND_PACKAGE(ZLIB REQUIRED)
 
417
IF(ZLIB_FOUND)
 
418
        INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
 
419
        LIST(APPEND LIBS ${ZLIB_LIBRARIES})
 
420
        SET(COMPILE_ZLIB_SUPPORT 1)
 
421
ENDIF()
 
422
 
 
423
############################################################################
 
424
# Check for Qt4
 
425
############################################################################
 
426
 
 
427
# We require at least Qt 4.6.x
 
428
FIND_PACKAGE(Qt4 4.6.0 REQUIRED)
 
429
IF(QT4_FOUND)
 
430
        SET(QT_USE_QTSQL true)
 
431
        SET(QT_USE_QTXML true)
 
432
        SET(QT_USE_QTNETWORK true)
 
433
 
 
434
        # Qt-DBus support
 
435
        OPTION(WANT_QTDBUS "Whether to compile Qt-DBus support" ON)
 
436
        IF(WANT_QTDBUS)
 
437
                IF(QT_QTDBUS_FOUND)
 
438
                        SET(QT_USE_QTDBUS true)
 
439
                        SET(CMAKE_STATUS_QTDBUS_SUPPORT "Yes")
 
440
                        SET(COMPILE_DBUS_SUPPORT 1)
 
441
                ELSE()
 
442
                        SET(CMAKE_STATUS_QTDBUS_SUPPORT "Not available")
 
443
                ENDIF()
 
444
        ELSE()
 
445
                SET(CMAKE_STATUS_QTDBUS_SUPPORT "No")
 
446
        ENDIF()
 
447
 
 
448
        # Qt-WebKit support
 
449
        OPTION(WANT_QTWEBKIT "Whether to compile Qt-WebKit support" ON)
 
450
        IF(WANT_QTWEBKIT)
 
451
                IF(QT_QTWEBKIT_FOUND)
 
452
                        SET(QT_USE_QTWEBKIT true)
 
453
                        SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "Yes")
 
454
                        SET(COMPILE_WEBKIT_SUPPORT 1)
 
455
                ELSE()
 
456
                        SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "Not available")
 
457
                ENDIF()
 
458
        ELSE()
 
459
                SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "No")
 
460
        ENDIF()
 
461
        # Qt-WebKit support
 
462
        OPTION(WANT_QTSVG "Whether to compile Qt-Svg support" ON)
 
463
        IF(WANT_QTSVG)
 
464
                IF(QT_QTSVG_FOUND)
 
465
                        SET(QT_USE_QTSVG true)
 
466
                        SET(CMAKE_STATUS_QTSVG_SUPPORT "Yes")
 
467
                        SET(COMPILE_SVG_SUPPORT 1)
 
468
                ELSE()
 
469
                        SET(CMAKE_STATUS_QTSVG_SUPPORT "Not available")
 
470
                ENDIF()
 
471
        ELSE()
 
472
                SET(CMAKE_STATUS_QTSVG_SUPPORT "No")
 
473
        ENDIF()
 
474
 
 
475
 
 
476
 
 
477
        INCLUDE(${QT_USE_FILE})
 
478
        INCLUDE_DIRECTORIES(${QT_INCLUDES})
 
479
        LIST(APPEND LIBS ${QT_LIBRARIES})
 
480
ENDIF()
 
481
 
 
482
# Check for X11
 
483
IF(UNIX)
 
484
        IF(APPLE)
 
485
                SET(CMAKE_STATUS_X11_SUPPORT "Not used")
 
486
        ELSE()
 
487
                # Assume linux
 
488
                FIND_PACKAGE(X11)
 
489
                IF(X11_FOUND)
 
490
                        SET(COMPILE_X11_SUPPORT 1)
 
491
                        IF(X11_Xscreensaver_FOUND)
 
492
                                SET(COMPILE_XSS_SUPPORT 1)
 
493
                                SET(CMAKE_STATUS_X11_SUPPORT "Yes, with scrnsaverproto")
 
494
                                INCLUDE_DIRECTORIES(${X11_Xscreensaver_INCLUDE_PATH})
 
495
                                LIST(APPEND LIBS ${X11_Xscreensaver_LIB})
 
496
                        ELSE()
 
497
                                SET(CMAKE_STATUS_X11_SUPPORT "Yes")
 
498
                        ENDIF()
 
499
 
 
500
                        INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR})
 
501
                        LIST(APPEND LIBS ${X11_LIBRARIES})
 
502
                        # Seems like ${X11_LIBRARIES} doesn't add -lXrender, which is needed
 
503
                        # for building with --no-add-needed/binutils-gold, see
 
504
                        # <http://bugs.debian.org/555068> for details.
 
505
                        IF(X11_Xrender_FOUND)
 
506
                                LIST(APPEND LIBS ${X11_Xrender_LIB})
 
507
                        ENDIF(X11_Xrender_FOUND)
 
508
                ELSE()
 
509
                        SET(CMAKE_STATUS_X11_SUPPORT "Not available")
 
510
                ENDIF()
 
511
        ENDIF()
 
512
ELSE()
 
513
        SET(CMAKE_STATUS_X11_SUPPORT "Not needed")
 
514
ENDIF()
 
515
 
 
516
# Phonon support
 
517
OPTION(WANT_PHONON "Whether to compile Phonon support" ON)
 
518
IF(WANT_PHONON)
 
519
        FIND_PACKAGE(Phonon)
 
520
        IF(PHONON_FOUND)
 
521
                SET(COMPILE_PHONON_SUPPORT 1)
 
522
                LIST(APPEND LIBS ${PHONON_LIBRARY})
 
523
                LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Phonon")
 
524
        ENDIF()
 
525
ENDIF()
 
526
 
 
527
# esd
 
528
OPTION(WANT_ESD "Whether to compile ESD support" ON)
 
529
IF(WANT_ESD)
 
530
        FIND_PACKAGE(ESD)
 
531
        IF(ESD_FOUND)
 
532
                SET(COMPILE_ESD_SUPPORT 1)
 
533
                LIST(APPEND LIBS ${ESD_LIBRARY})
 
534
                LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Esd")
 
535
        ENDIF()
 
536
ENDIF()
 
537
 
 
538
# oss + audiofile
 
539
OPTION(WANT_OSS "Whether to compile OSS support" ON)
 
540
OPTION(WANT_AUDIOFILE "Whether to compile Audiofile support" ON)
 
541
 
 
542
IF(WANT_OSS)
 
543
        FIND_PACKAGE(OSS)
 
544
        IF(OSS_FOUND)
 
545
                SET(COMPILE_OSS_SUPPORT 1)
 
546
        ENDIF()
 
547
 
 
548
        IF(WANT_AUDIOFILE)
 
549
                FIND_PACKAGE(Audiofile)
 
550
                IF(AUDIOFILE_FOUND)
 
551
                        SET(COMPILE_AUDIOFILE_SUPPORT 1)
 
552
                        LIST(APPEND LIBS ${AUDIOFILE_LIBRARY})
 
553
                        LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Oss+AudioFile")
 
554
                ENDIF()
 
555
        ELSE()
 
556
                LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Oss")
 
557
        ENDIF()
 
558
ENDIF()
 
559
 
 
560
#winmm - win32
 
561
IF(WIN32)
 
562
        LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "WinMM")
 
563
ENDIF()
 
564
 
 
565
############################################################################
 
566
# Check for MacOS X universal binary
 
567
############################################################################
 
568
 
 
569
IF(APPLE)
 
570
        OPTION(WANT_UNIVERSAL_BINARY "Whether to compile an Universal Binary on MacOSX" OFF)
 
571
        IF(WANT_UNIVERSAL_BINARY)
 
572
                SET(CMAKE_OSX_ARCHITECTURES ppc;i386)
 
573
                SET(CMAKE_STATUS_BUILD_UNIVERSAL_BINARY "User enabled")
 
574
                #FIXME: This should be handled with CMAKE_OSX_SYSROOT (TOM)
 
575
                #SET(CMAKE_SHARED_LINKER_FLAGS "-mmacosx-version-min=10.4")
 
576
                #SET(CMAKE_EXE_LINKER_FLAGS "-mmacosx-version-min=10.4")
 
577
        ELSE()
 
578
                SET(CMAKE_STATUS_BUILD_UNIVERSAL_BINARY "No")
 
579
        ENDIF()
 
580
ELSE()
 
581
        SET(CMAKE_STATUS_BUILD_UNIVERSAL_BINARY "Not available")
 
582
ENDIF()
 
583
 
 
584
############################################################################
 
585
# OpenSSL support (Secure Sockets, Certificates, Digests etc...)
 
586
############################################################################
 
587
 
 
588
OPTION(WANT_OPENSSL "Whether to compile OpenSSL support" ON)
 
589
 
 
590
IF(WANT_OPENSSL)
 
591
        FIND_PACKAGE(OpenSSL)
 
592
        IF(OPENSSL_FOUND)
 
593
                IF(WIN32)
 
594
                        # On windows/mingw we need libeay32 too...
 
595
                        FIND_LIBRARY(LIB_EAY NAMES libeay32MD eay libeay libeay32)
 
596
                        IF(LIB_EAY)
 
597
                                INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
 
598
                                # The following are here in order to pick the applink.c file
 
599
                                # The documentation says that it should be included in OPENSSL_INCLUDE_DIR/openssl
 
600
                                # but in the package I have now it's actually in OPENSSL_INCLUDE_DIR/../ms .
 
601
                                INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}/openssl)
 
602
                                INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}/../ms)
 
603
                                LIST(APPEND LIBS ${OPENSSL_LIBRARIES} ${LIB_EAY})
 
604
                                SET(COMPILE_SSL_SUPPORT 1)
 
605
                                SET(CMAKE_STATUS_SSL_SUPPORT "Yes")
 
606
                        ELSE()
 
607
                                SET(CMAKE_STATUS_SSL_SUPPORT "Not available, libeay missing")
 
608
                        ENDIF()
 
609
                ELSE()
 
610
                        INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
 
611
                        LIST(APPEND LIBS ${OPENSSL_LIBRARIES})
 
612
                        SET(COMPILE_SSL_SUPPORT 1)
 
613
                        SET(CMAKE_STATUS_SSL_SUPPORT "Yes")
 
614
                        # CMake FindOpenSSL is incomplete and does not add -lcrypto to LIBS...
 
615
                        LIST(APPEND LIBS -lcrypto)
 
616
                ENDIF()
 
617
        ELSE()
 
618
                SET(CMAKE_STATUS_SSL_SUPPORT "Not available")
 
619
        ENDIF()
 
620
ELSE()
 
621
        SET(CMAKE_STATUS_SSL_SUPPORT "No")
 
622
ENDIF()
 
623
 
 
624
############################################################################
 
625
# Crypt engines support
 
626
############################################################################
 
627
 
 
628
OPTION(WANT_CRYPT "Compile Cryptographic Support and Engines" ON)
 
629
IF(WANT_CRYPT)
 
630
        SET(COMPILE_CRYPT_SUPPORT 1)
 
631
        SET(CMAKE_STATUS_CRYPT_SUPPORT "Yes")
 
632
ELSE()
 
633
        SET(CMAKE_STATUS_CRYPT_SUPPORT "No")
 
634
ENDIF()
 
635
 
 
636
############################################################################
 
637
# IPv6 support
 
638
############################################################################
 
639
 
 
640
OPTION(WANT_IPV6 "Compile IPv6 Support" ON)
 
641
IF(WANT_IPV6)
 
642
        SET(COMPILE_IPV6_SUPPORT 1)
 
643
        SET(CMAKE_STATUS_IPV6_SUPPORT "Yes")
 
644
ELSE()
 
645
        SET(CMAKE_STATUS_IPV6_SUPPORT "No")
 
646
ENDIF()
 
647
 
 
648
############################################################################
 
649
# Do we want pseudo-transparency ?
 
650
############################################################################
 
651
 
 
652
OPTION(WANT_TRANSPARENCY "Compile Transparency Support" ON)
 
653
IF(WANT_TRANSPARENCY)
 
654
        SET(COMPILE_PSEUDO_TRANSPARENCY 1)
 
655
        SET(CMAKE_STATUS_TRANSPARENCY_SUPPORT "Yes")
 
656
ELSE()
 
657
        SET(CMAKE_STATUS_TRANSPARENCY_SUPPORT "No")
 
658
ENDIF()
 
659
 
 
660
# Check for Perl support
 
661
# (note: needed for user documentation generation)
 
662
OPTION(WANT_PERL "Compile Perl Support" ON)
 
663
 
 
664
#perl is needed for documentation, too
 
665
FIND_PACKAGE(Perl)
 
666
 
 
667
IF(WANT_PERL)
 
668
        IF(PERL_FOUND)
 
669
                SET(COMPILE_PERL_SUPPORT 1)
 
670
                SET(CMAKE_STATUS_PERL_SUPPORT "Yes, used for scripting+doc")
 
671
 
 
672
                # Get the right flags to link with
 
673
                EXECUTE_PROCESS(
 
674
                        COMMAND ${PERL_EXECUTABLE} -MExtUtils::Embed -e ldopts
 
675
                        OUTPUT_VARIABLE PERL_LINK_FLAGS
 
676
                )
 
677
 
 
678
                # Remove new line characters
 
679
                STRING(REGEX REPLACE "(\r?\n)+$" "" PERL_LINK_FLAGS "${PERL_LINK_FLAGS}")
 
680
                SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} ${PERL_LINK_FLAGS}")
 
681
                # Remove leading and trailing spaces (string strip)
 
682
                STRING(REGEX REPLACE "(^( )+|( )+$)" "" ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}")
 
683
        ELSE()
 
684
                SET(CMAKE_STATUS_PERL_SUPPORT "No")
 
685
        ENDIF()
 
686
ELSE()
 
687
        IF(PERL_FOUND)
 
688
                SET(CMAKE_STATUS_PERL_SUPPORT "Used for doc, but scripting disabled by user")
 
689
        ELSE()
 
690
                SET(CMAKE_STATUS_PERL_SUPPORT "No")
 
691
        ENDIF()
 
692
ENDIF()
 
693
 
 
694
# Check for Python support
 
695
OPTION(WANT_PYTHON "Compile Python Support" ON)
 
696
IF(WANT_PYTHON)
 
697
        FIND_PACKAGE(Python)
 
698
        IF(PYTHON_FOUND)
 
699
                SET(COMPILE_PYTHON_SUPPORT 1)
 
700
                SET(CMAKE_STATUS_PYTHON_SUPPORT "Yes")
 
701
 
 
702
                #under win32/mingw, if no link flag is needed ${PYTHON_LFLAGS} is set to a braindead "None"
 
703
                STRING(REPLACE "None" "" PYTHON_LFLAGS "${PYTHON_LFLAGS}")
 
704
                SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} ${PYTHON_LFLAGS}")
 
705
                # Remove leading and trailing spaces (string strip)
 
706
                STRING(REGEX REPLACE "(^( )+|( )+$)" "" ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}")
 
707
                LIST(APPEND LIBS ${PYTHON_LIBRARY})
 
708
 
 
709
                INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
 
710
        ELSE()
 
711
                SET(CMAKE_STATUS_PYTHON_SUPPORT "No, not found.")
 
712
        ENDIF()
 
713
ELSE()
 
714
        SET(CMAKE_STATUS_PYTHON_SUPPORT "No")
 
715
ENDIF()
 
716
 
 
717
############################################################################
 
718
# IPC (inter-process communication) support
 
719
############################################################################
 
720
OPTION(WANT_IPC "Compile Inter-Process Communication Support" ON)
 
721
IF(WANT_IPC)
 
722
        SET(CMAKE_STATUS_IPC_SUPPORT "Yes")
 
723
ELSE()
 
724
        SET(COMPILE_NO_IPC 1)
 
725
        SET(CMAKE_STATUS_IPC_SUPPORT "No")
 
726
ENDIF()
 
727
 
 
728
 
 
729
############################################################################
 
730
# NETWORK FUNCTIONS support
 
731
############################################################################
 
732
 
 
733
INCLUDE(CheckFunctionExists)
 
734
CHECK_FUNCTION_EXISTS("inet_ntoa" HAVE_INET_NTOA_EXISTS)
 
735
# what systems lacks this!?
 
736
IF(HAVE_INET_NTOA_EXISTS)
 
737
        SET(HAVE_INET_NTOA 1)
 
738
ENDIF()
 
739
 
 
740
CHECK_FUNCTION_EXISTS("inet_aton" HAVE_INET_ATON_EXISTS)
 
741
# what systems lacks this!?
 
742
IF(HAVE_INET_ATON_EXISTS)
 
743
        SET(HAVE_INET_ATON 1)
 
744
ENDIF()
 
745
 
 
746
# Check GET_INTERFACE_ADDRESS support
 
747
FIND_PATH(GET_INTERFACE_ADDRESS_INCLUDE_DIR net/if.h)
 
748
IF(GET_INTERFACE_ADDRESS_INCLUDE_DIR)
 
749
        SET(COMPILE_GET_INTERFACE_ADDRESS 1)
 
750
ENDIF()
 
751
 
 
752
############################################################################
 
753
# SetEnv/PutEnv support
 
754
############################################################################
 
755
CHECK_FUNCTION_EXISTS("setenv" HAVE_SETENV_EXISTS)
 
756
# what systems lacks this!?
 
757
IF(HAVE_SETENV_EXISTS)
 
758
        SET(HAVE_SETENV 1)
 
759
ENDIF()
 
760
 
 
761
CHECK_FUNCTION_EXISTS("putenv" HAVE_PUTENV_EXISTS)
 
762
# what systems lacks this!?
 
763
IF(HAVE_PUTENV_EXISTS)
 
764
        SET(HAVE_PUTENV 1)
 
765
ENDIF()
 
766
 
 
767
############################################################################
 
768
# GSM support
 
769
############################################################################
 
770
OPTION(WANT_GSM "Compile GSM Support" ON)
 
771
IF(WANT_GSM)
 
772
        SET(COMPILE_USE_GSM 1)
 
773
        SET(CMAKE_STATUS_GSM_SUPPORT "Yes")
 
774
ELSE()
 
775
        SET(CMAKE_STATUS_GSM_SUPPORT "No")
 
776
ENDIF()
 
777
 
 
778
############################################################################
 
779
# DCC canvas support
 
780
############################################################################
 
781
 
 
782
OPTION(WANT_DCC_CANVAS "Compile DCC Canvas Support" OFF)
 
783
IF(WANT_DCC_CANVAS)
 
784
        SET(CMAKE_STATUS_DCC_CANVAS_SUPPORT "Yes")
 
785
        SET(COMPILE_DCC_CANVAS 1)
 
786
ELSE()
 
787
        SET(CMAKE_STATUS_DCC_CANVAS_SUPPORT "No")
 
788
ENDIF()
 
789
 
 
790
############################################################################
 
791
# DCC voice support
 
792
############################################################################
 
793
CHECK_INCLUDE_FILE(linux/soundcard.h CMAKE_HAVE_LINUX_SOUNDCARD_H)
 
794
CHECK_INCLUDE_FILE(sys/soundcard.h CMAKE_HAVE_SYS_SOUNDCARD_H)
 
795
CHECK_INCLUDE_FILE(soundcard.h CMAKE_HAVE_SOUNDCARD_H)
 
796
 
 
797
OPTION(WANT_DCC_VOICE "Compile DCC Voice Support" ON)
 
798
IF(WANT_DCC_VOICE)
 
799
        IF(CMAKE_HAVE_LINUX_SOUNDCARD_H)
 
800
                SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "Yes, found linux/soundcard.h")
 
801
                SET(HAVE_LINUX_SOUNDCARD_H 1)
 
802
        ELSEIF(CMAKE_HAVE_SYS_SOUNDCARD_H)
 
803
                SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "Yes, found sys/soundcard.h")
 
804
                SET(HAVE_SYS_SOUNDCARD_H 1)
 
805
        ELSEIF(CMAKE_HAVE_SOUNDCARD_H)
 
806
                SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "Yes, found soundcard.h")
 
807
                SET(HAVE_SOUNDCARD_H 1)
 
808
        ELSE()
 
809
                SET(COMPILE_DISABLE_DCC_VOICE 1)
 
810
                SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "No, soundcard.h not found")
 
811
        ENDIF()
 
812
ELSE()
 
813
        SET(COMPILE_DISABLE_DCC_VOICE 1)
 
814
        SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "No")
 
815
ENDIF()
 
816
 
 
817
############################################################################
 
818
# Dcc video support + extended webcam support (LibV4L2)
 
819
############################################################################
 
820
OPTION(WANT_DCC_VIDEO "Compile DCC Video Support" OFF)
 
821
 
 
822
IF(WANT_DCC_VIDEO)
 
823
        FIND_PATH(V4L_DEV1_INCLUDE_DIR NAMES linux/videodev.h)
 
824
        IF(V4L_DEV1_INCLUDE_DIR)
 
825
                SET(COMPILE_V4L1_CODE 1)
 
826
                SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Yes")
 
827
        ELSE()
 
828
                FIND_PATH(V4L_DEV2_INCLUDE_DIR NAMES linux/videodev2.h)
 
829
                IF(V4L_DEV2_INCLUDE_DIR)
 
830
                        SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Yes")
 
831
                        SET(COMPILE_V4L1_CODE 0)
 
832
                ELSE()
 
833
                        SET(COMPILE_DISABLE_AVDEVICE 1)
 
834
                        SET(COMPILE_DISABLE_DCC_VIDEO 1)
 
835
                        SET(COMPILE_V4L1_CODE 0)
 
836
                        SET(HAVE_LIBV4L2 0)
 
837
                        SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Not available")
 
838
                ENDIF()
 
839
        ENDIF()
 
840
 
 
841
        IF(NOT COMPILE_DISABLE_AVDEVICE)
 
842
                FIND_PACKAGE(LibV4L2)
 
843
                IF(LIBV4L2_FOUND)
 
844
                        SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Yes, with LibV4L2")
 
845
                        SET(HAVE_LIBV4L2 1)
 
846
                        SET(V4L2_CAP_VIDEO_CAPTURE 1)
 
847
                        LIST(APPEND LIBS ${LIBV4L2_LIBRARY})
 
848
                ENDIF()
 
849
        ENDIF()
 
850
ELSE()
 
851
        SET(COMPILE_DISABLE_AVDEVICE 1)
 
852
        SET(COMPILE_DISABLE_DCC_VIDEO 1)
 
853
        SET(COMPILE_V4L1_CODE 0)
 
854
        SET(HAVE_LIBV4L2 0)
 
855
        SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "No")
 
856
ENDIF()
 
857
 
 
858
############################################################################
 
859
# Ogg/Vorbis and Ogg/Theora support
 
860
############################################################################
 
861
OPTION(WANT_OGG_THEORA "Compile Ogg/Vorbis+Theora Support" OFF)
 
862
 
 
863
IF(WANT_OGG_THEORA)
 
864
        FIND_PACKAGE(Theora)
 
865
        IF(THEORA_FOUND)
 
866
                SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "Yes")
 
867
                LIST(APPEND LIBS ${THEORA_LIBRARY})
 
868
                INCLUDE_DIRECTORIES(${THEORA_INCLUDE_DIR})
 
869
        ELSE()
 
870
                SET(COMPILE_DISABLE_OGG_THEORA 1)
 
871
                SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "No")
 
872
        ENDIF()
 
873
ELSE()
 
874
        SET(COMPILE_DISABLE_OGG_THEORA 1)
 
875
        SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "No")
 
876
ENDIF()
 
877
 
 
878
############################################################################
 
879
# Memory profiling support
 
880
############################################################################
 
881
OPTION(WANT_MEMORY_PROFILE "Compile Memory Profiling Support" OFF)
 
882
IF(WANT_MEMORY_PROFILE)
 
883
        SET(COMPILE_MEMORY_PROFILE 1)
 
884
        SET(CMAKE_STATUS_MEMORY_PROFILE_SUPPORT "User enabled")
 
885
ELSE()
 
886
        SET(CMAKE_STATUS_MEMORY_PROFILE_SUPPORT "No")
 
887
ENDIF()
 
888
 
 
889
 
 
890
############################################################################
 
891
# Memory checks support
 
892
############################################################################
 
893
OPTION(WANT_MEMORY_CHECKS "Compile Memory Checking Support" OFF)
 
894
IF(WANT_MEMORY_CHECKS)
 
895
        SET(COMPILE_MEMORY_CHECKS 1)
 
896
        SET(CMAKE_STATUS_MEMORY_CHECKS_SUPPORT "User enabled")
 
897
ELSE()
 
898
        SET(CMAKE_STATUS_MEMORY_CHECKS_SUPPORT "No")
 
899
ENDIF()
 
900
 
 
901
############################################################################
 
902
# Win32 mingw/cmake build checks
 
903
############################################################################
 
904
IF(WIN32)
 
905
        ADD_DEFINITIONS(-D_WIN32_WINNT=0x501 -DWINVER=0x501)
 
906
ENDIF()
 
907
 
 
908
IF(MINGW)
 
909
        LIST(APPEND LIBS -lshlwapi)
 
910
        IF(WANT_DEBUG)
 
911
                SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc -fno-exceptions")
 
912
                                ADD_DEFINITIONS(-DMINGW)
 
913
        ELSE()
 
914
                SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc -mwindows -fno-exceptions")
 
915
                                ADD_DEFINITIONS(-DMINGW -mwindows)
 
916
        ENDIF()
 
917
        #remove leading and trailing spaces (string strip)
 
918
        STRING(REGEX REPLACE "(^( )+|( )+$)" "" ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}")
 
919
ENDIF()
 
920
 
 
921
IF(MSVC)
 
922
        ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
 
923
ENDIF()
 
924
 
 
925
############################################################################
 
926
# Very important checks
 
927
############################################################################
 
928
OPTION(WANT_PIZZA "Pizza for everyone" OFF)
 
929
IF(WANT_PIZZA)
 
930
        MESSAGE(STATUS "Checking for mozzarella...")
 
931
        MESSAGE(STATUS "Checking for mozzarella - found")
 
932
        MESSAGE(STATUS "Checking for tomatoes...")
 
933
        MESSAGE(STATUS "Checking for tomatoes... - found")
 
934
        MESSAGE(STATUS "Starting up the oven...")
 
935
        MESSAGE(STATUS "Starting up the oven... - done")
 
936
ENDIF()
 
937
 
 
938
OPTION(WANT_BEER "Add some PaleALE to the compilation" OFF)
 
939
IF(WANT_BEER)
 
940
        MESSAGE(STATUS "Checking for beer...")
 
941
        MESSAGE(STATUS "Checking for beer... - found")
 
942
        MESSAGE(STATUS "Opening the beer...")
 
943
        MESSAGE(STATUS "Opening the beer... -  done")
 
944
ENDIF()
 
945
 
 
946
 
 
947
###############################################################################
 
948
#
 
949
# Translation (GetText) checks
 
950
#
 
951
###############################################################################
 
952
OPTION(WANT_GETTEXT "Whether to use GetText to generate translations" ON)
 
953
IF(WANT_GETTEXT)
 
954
        FIND_PROGRAM(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
 
955
        FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
 
956
        FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
 
957
        FIND_PROGRAM(SED_EXECUTABLE sed)
 
958
 
 
959
        IF(GETTEXT_MSGFMT_EXECUTABLE)
 
960
                ADD_CUSTOM_TARGET("kvirc-translations" ALL)
 
961
                SET(CMAKE_STATUS_GETTEXT_SUPPORT "Yes")
 
962
                SET(USE_GETTEXT_TRANSLATIONS 1)
 
963
        ELSE()
 
964
                SET(CMAKE_STATUS_GETTEXT_SUPPORT "No")
 
965
                SET(USE_GETTEXT_TRANSLATIONS 0)
 
966
        ENDIF()
 
967
        IF(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_XGETTEXT_EXECUTABLE)
 
968
                # messages-update target;
 
969
                ADD_CUSTOM_TARGET(messages-update)
 
970
                # messages-extract target;
 
971
                ADD_CUSTOM_TARGET(messages-extract)
 
972
                ADD_DEPENDENCIES(messages-update messages-extract)
 
973
                SET(USE_GETTEXT_EXTRA 1)
 
974
                SET(GETTEXT_EXTRA_STATUS ", + extra")
 
975
        ELSE()
 
976
                SET(USE_GETTEXT_EXTRA 0)
 
977
                SET(GETTEXT_EXTRA_STATUS)
 
978
        ENDIF()
 
979
 
 
980
        IF(SED_EXECUTABLE)
 
981
                # wipes absolute paths from .pot? files, by mren
 
982
                ADD_CUSTOM_TARGET(messages-tidy)
 
983
                FILE(GLOB_RECURSE FILES_TO_TIDY ${CMAKE_SOURCE_DIR}/po/*.po)
 
984
                FILE(GLOB_RECURSE POTS_TO_TIDY ${CMAKE_SOURCE_DIR}/po/*.pot)
 
985
                LIST(APPEND FILES_TO_TIDY ${POTS_TO_TIDY})
 
986
                FOREACH(curFile ${FILES_TO_TIDY})
 
987
                        ADD_CUSTOM_COMMAND(TARGET messages-tidy
 
988
                        COMMENT "Tidying ${curFile}..."
 
989
                        COMMAND ${SED_EXECUTABLE} -i -e "s|^#:.*/\\(src/.*\\)$|#: \\1|g" "${curFile}"
 
990
                        VERBATIM
 
991
                        DEPENDS ${curFile}
 
992
                        )
 
993
                ENDFOREACH()
 
994
                IF(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_XGETTEXT_EXECUTABLE)
 
995
                        ADD_DEPENDENCIES(messages-update messages-tidy)
 
996
                ENDIF()
 
997
                SET(CMAKE_STATUS_MESSAGE_TIDY "Yes")
 
998
        ELSE()
 
999
                SET(CMAKE_STATUS_MESSAGE_TIDY "Sed not found")
 
1000
        ENDIF()
 
1001
 
 
1002
ELSE()
 
1003
        SET(CMAKE_STATUS_GETTEXT_SUPPORT "No")
 
1004
ENDIF()
 
1005
 
 
1006
 
 
1007
#Unused by now
 
1008
#CMakeUnixFindMake.cmake
 
1009
#FindCygwin.cmake
 
1010
#CMakeFindXCode.cmake
 
1011
#CheckLibraryExists.cmake
 
1012
 
 
1013
# Search for subdirectories
 
1014
SUBDIRS(src data po scripts doc)
 
1015
 
 
1016
#install additional resources for win32
 
1017
IF(WIN32)
 
1018
        ADD_SUBDIRECTORY(win32build)
 
1019
ENDIF()
 
1020
###############################################################################
 
1021
#
 
1022
# The API documentation target
 
1023
#
 
1024
###############################################################################
 
1025
 
 
1026
 
 
1027
OPTION(WANT_DOXYGEN "Whether to use Doxygen to generate documentation" ON)
 
1028
IF(WANT_DOXYGEN)
 
1029
        FIND_PACKAGE(Doxygen)
 
1030
        IF(DOXYGEN_FOUND)
 
1031
                SET(CMAKE_STATUS_DOXYGEN_SUPPORT "Yes")
 
1032
                ADD_CUSTOM_TARGET(
 
1033
                        devdocs
 
1034
                        @echo Generating api documentation
 
1035
                )
 
1036
 
 
1037
                ADD_CUSTOM_COMMAND(
 
1038
                        COMMENT "generate the api documentation"
 
1039
                        COMMAND mkdir -p ${CMAKE_BINARY_DIR}/doc/api
 
1040
                        COMMAND cd ${CMAKE_BINARY_DIR}/admin && ${DOXYGEN_EXECUTABLE} Doxyfile
 
1041
                        TARGET devdocs
 
1042
                )
 
1043
        ELSE()
 
1044
                SET(CMAKE_STATUS_DOXYGEN_SUPPORT "No")
 
1045
        ENDIF()
 
1046
ELSE()
 
1047
        SET(CMAKE_STATUS_DOXYGEN_SUPPORT "No")
 
1048
ENDIF()
 
1049
 
 
1050
###############################################################################
 
1051
#
 
1052
# The User documentation target (kvirc internal help)
 
1053
#
 
1054
###############################################################################
 
1055
 
 
1056
#currently WIP
 
1057
#OPTION(WANT_USERDOCS "Whether to generate user documentation (aka internal help)" ON)
 
1058
#IF(WANT_USERDOCS)
 
1059
#       SET(CMAKE_STATUS_GEN_USERDOC "Yes")
 
1060
#ELSE()
 
1061
#       SET(CMAKE_STATUS_GEN_USERDOC "User disabled")
 
1062
#ENDIF()
 
1063
 
 
1064
###############################################################################
 
1065
#
 
1066
# We want the "distclean" target
 
1067
#
 
1068
###############################################################################
 
1069
 
 
1070
IF(UNIX)
 
1071
        ADD_CUSTOM_TARGET(
 
1072
                distclean
 
1073
                @echo Cleaning for source distribution
 
1074
        )
 
1075
        SET(
 
1076
                DISTCLEANED
 
1077
                cmake.depends
 
1078
                cmake.check_depends
 
1079
                CMakeCache.txt
 
1080
                cmake.check_cache
 
1081
                progress.make
 
1082
                install_manifest.txt
 
1083
                #*.cmake
 
1084
                Makefile
 
1085
                core core.*
 
1086
                gmon.out
 
1087
                *~
 
1088
        )
 
1089
        ADD_CUSTOM_COMMAND(
 
1090
                TARGET  distclean POST_BUILD
 
1091
                DEPENDS clean
 
1092
                COMMENT "distribution clean"
 
1093
                COMMAND rm
 
1094
                ARGS    -Rf CMakeTmp CMakeFiles doc/api ${DISTCLEANED}
 
1095
        )
 
1096
ENDIF()
 
1097
 
 
1098
 
 
1099
###############################################################################
 
1100
# CONFIGURE FILES
 
1101
###############################################################################
 
1102
 
 
1103
# System configuration is now splitted in 2 files
 
1104
# kvi_sysconfig.h contains the "saveable" configuration: stuff that
 
1105
# may be preserved between multiple cmake runs (and thus may save compilation time)
 
1106
# kvi_sysbuildinfo.h contains the configuration that changes at every
 
1107
# cmake run and must be recompiled every time. Extra care is taken
 
1108
# inside the sources to include kvi_sysbuildinfo.h in only ONE file (so only
 
1109
# linking of kvilib is done if only kvi_sysbuildinfo.h changes.
 
1110
 
 
1111
IF(EXISTS ${PROJECT_BINARY_DIR}/kvi_sysconfig.h)
 
1112
        # an old config exists; let's check if it's actual:
 
1113
        CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysconfig.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysconfig.h.new)
 
1114
        FILE(READ ${PROJECT_BINARY_DIR}/kvi_sysconfig.h OLD_CONFIG_CONTENTS)
 
1115
        FILE(READ ${PROJECT_BINARY_DIR}/kvi_sysconfig.h.new NEW_CONFIG_CONTENTS)
 
1116
        STRING(COMPARE EQUAL "${OLD_CONFIG_CONTENTS}" "${NEW_CONFIG_CONTENTS}" CONFIG_IS_UPTODATE)
 
1117
        IF(${CONFIG_IS_UPTODATE})
 
1118
                # we don't overwrite the kvi_sysconfig.h file to gain compilation time
 
1119
                FILE(REMOVE ${PROJECT_BINARY_DIR}/kvi_sysconfig.h.new)
 
1120
        ELSE()
 
1121
                # let's overwrite the kvi_sysconfig.h file (config has changed)
 
1122
                # FIXME: this is tricky, better use ${CMAKE_COMMAND} -E
 
1123
                FILE(REMOVE ${PROJECT_BINARY_DIR}/kvi_sysconfig.h.new)
 
1124
                CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysconfig.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysconfig.h)
 
1125
        ENDIF()
 
1126
ELSE()
 
1127
        # no old config
 
1128
        CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysconfig.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysconfig.h)
 
1129
ENDIF()
 
1130
 
 
1131
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysbuildinfo.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysbuildinfo.h)
 
1132
 
 
1133
 
 
1134
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
 
1135
 
 
1136
 
 
1137
 
 
1138
IF(WANT_COEXISTENCE)
 
1139
        CONFIGURE_FILE(${kvirc_SOURCE_DIR}/cmake/kvirc-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/scripts/config/kvirc${VERSION_MAJOR}-config @ONLY)
 
1140
ELSE()
 
1141
        CONFIGURE_FILE(${kvirc_SOURCE_DIR}/cmake/kvirc-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/scripts/config/kvirc-config @ONLY)
 
1142
ENDIF()
 
1143
 
 
1144
#CONFIGURE_FILE(${kvirc_SOURCE_DIR}/cmake/FindKVIrc.cmake.in ${kvirc_BINARY_DIR}/FindKVIrc.cmake @ONLY)
 
1145
 
 
1146
IF(WANT_DOXYGEN)
 
1147
        IF(DOXYGEN_FOUND)
 
1148
                CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/Doxyfile.cmake ${CMAKE_BINARY_DIR}/admin/Doxyfile @ONLY)
 
1149
        ENDIF()
 
1150
ENDIF()
 
1151
 
 
1152
###############################################################################
 
1153
# Mark as advanced some variables we really don't want to see in "simple" mode
 
1154
# All of them *should* be auto-detected.
 
1155
###############################################################################
 
1156
 
 
1157
MARK_AS_ADVANCED(FORCE QT_QMAKE_EXECUTABLE)
 
1158
MARK_AS_ADVANCED(FORCE GETTEXT_MSGFMT_EXECUTABLE)
 
1159
MARK_AS_ADVANCED(FORCE GETTEXT_MSGMERGE_EXECUTABLE)
 
1160
MARK_AS_ADVANCED(FORCE LIBRARY_OUTPUT_PATH)
 
1161
MARK_AS_ADVANCED(FORCE CMAKE_BACKWARDS_COMPATIBILITY)
 
1162
MARK_AS_ADVANCED(FORCE EXECUTABLE_OUTPUT_PATH)
 
1163
 
 
1164
###############################################################################
 
1165
# ADD LINK FLAGS TO LIBS: THIS HAVE TO BE DONE AT LAST
 
1166
###############################################################################
 
1167
 
 
1168
LIST(APPEND LIBS "${ADDITIONAL_LINK_FLAGS}")
 
1169
###############################################################################
 
1170
# FINAL OUTPUT
 
1171
###############################################################################
 
1172
 
 
1173
# Binary path
 
1174
IF(UNIX)
 
1175
        IF(APPLE)
 
1176
                SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/Contents/MacOS/${KVIRC_BINARYNAME})
 
1177
        ELSE()
 
1178
                # Assume linux
 
1179
                SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/bin/${KVIRC_BINARYNAME})
 
1180
        ENDIF()
 
1181
ELSEIF(WIN32)
 
1182
        SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/${KVIRC_BINARYNAME})
 
1183
ENDIF()
 
1184
 
 
1185
# KviLib path
 
1186
IF(UNIX)
 
1187
        IF(APPLE)
 
1188
                SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/Contents/Frameworks/)
 
1189
        ELSE()
 
1190
                # Assume linux
 
1191
                SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/)
 
1192
        ENDIF()
 
1193
ELSEIF(WIN32)
 
1194
        SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/)
 
1195
ENDIF()
 
1196
 
 
1197
# Modules path
 
1198
IF(UNIX)
 
1199
        IF(APPLE)
 
1200
                SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/Contents/Frameworks/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
 
1201
        ELSE()
 
1202
                # Assume linux
 
1203
                SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
 
1204
        ENDIF()
 
1205
ELSEIF(WIN32)
 
1206
        SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
 
1207
ENDIF()
 
1208
 
 
1209
# Man path
 
1210
IF(UNIX)
 
1211
        IF(APPLE)
 
1212
                # does MacOS X use man pages?
 
1213
        ELSE()
 
1214
                # Assume linux
 
1215
                SET(KVIRC_MAN_PATH ${CMAKE_INSTALL_PREFIX}/${MANDIR_PREFIX}/)
 
1216
        ENDIF()
 
1217
ELSE()
 
1218
                SET(KVIRC_MAN_PATH "Not available")
 
1219
ENDIF()
 
1220
 
 
1221
MESSAGE(STATUS " ")
 
1222
MESSAGE(STATUS "Ok, this is the configuration I've worked out:")
 
1223
IF(${CONFIG_IS_UPTODATE})
 
1224
        MESSAGE(STATUS "(I found an old config that was exactly the same and kept it to save compilation time)")
 
1225
ENDIF()
 
1226
MESSAGE(STATUS " ")
 
1227
MESSAGE(STATUS "Paths:")
 
1228
MESSAGE(STATUS "   Binary Path                 : ${KVIRC_BIN_PATH}")
 
1229
MESSAGE(STATUS "   Library Path                : ${KVIRC_LIB_PATH}")
 
1230
MESSAGE(STATUS "   Modules Path                : ${KVIRC_MOD_PATH}")
 
1231
MESSAGE(STATUS "   Man Path                    : ${KVIRC_MAN_PATH}")
 
1232
MESSAGE(STATUS "Compilation:")
 
1233
MESSAGE(STATUS "   Debug                       : ${CMAKE_STATUS_DEBUG_SUPPORT}")
 
1234
MESSAGE(STATUS "   Verbose Output              : ${CMAKE_STATUS_VERBOSE_SUPPORT}")
 
1235
MESSAGE(STATUS "   Coexistence Support         : ${CMAKE_STATUS_COEXISTENCE_VER}")
 
1236
MESSAGE(STATUS "   Threading Support           : ${CMAKE_STATUS_THREADS_SUPPORT}")
 
1237
MESSAGE(STATUS "   Apple Universal Binary      : ${CMAKE_STATUS_BUILD_UNIVERSAL_BINARY}")
 
1238
MESSAGE(STATUS "   Memory Profile Support      : ${CMAKE_STATUS_MEMORY_PROFILE_SUPPORT}")
 
1239
MESSAGE(STATUS "   Memory Checks Support       : ${CMAKE_STATUS_MEMORY_CHECKS_SUPPORT}")
 
1240
MESSAGE(STATUS "Features:")
 
1241
MESSAGE(STATUS "   X11 Support                 : ${CMAKE_STATUS_X11_SUPPORT}")
 
1242
#MESSAGE(STATUS "   PCH Support                : ${CMAKE_STATUS_PCH_SUPPORT}")
 
1243
MESSAGE(STATUS "   Qt-DBus Support             : ${CMAKE_STATUS_QTDBUS_SUPPORT}")
 
1244
MESSAGE(STATUS "   Qt-WebKit Support           : ${CMAKE_STATUS_QTWEBKIT_SUPPORT}")
 
1245
MESSAGE(STATUS "   Qt-Svg Support              : ${CMAKE_STATUS_QTSVG_SUPPORT}")
 
1246
MESSAGE(STATUS "   KDE4 Support                : ${CMAKE_STATUS_KDE4_SUPPORT}")
 
1247
MESSAGE(STATUS "   IPv6 Support                : ${CMAKE_STATUS_IPV6_SUPPORT}")
 
1248
MESSAGE(STATUS "   Pseudo-Transparency Support : ${CMAKE_STATUS_TRANSPARENCY_SUPPORT}")
 
1249
MESSAGE(STATUS "   IPC Support                 : ${CMAKE_STATUS_IPC_SUPPORT}")
 
1250
MESSAGE(STATUS "   Audio Backends              : ${CMAKE_STATUS_AUDIO_BACKENDS}")
 
1251
MESSAGE(STATUS "Cryptography:")
 
1252
MESSAGE(STATUS "   Crypt Support And Engines   : ${CMAKE_STATUS_CRYPT_SUPPORT}")
 
1253
MESSAGE(STATUS "   OpenSSL Support             : ${CMAKE_STATUS_SSL_SUPPORT}")
 
1254
MESSAGE(STATUS "Scripting:")
 
1255
MESSAGE(STATUS "   Perl Support                : ${CMAKE_STATUS_PERL_SUPPORT}")
 
1256
MESSAGE(STATUS "   Python Support              : ${CMAKE_STATUS_PYTHON_SUPPORT}")
 
1257
MESSAGE(STATUS "DCC features:")
 
1258
MESSAGE(STATUS "   DCC Canvas Support          : ${CMAKE_STATUS_DCC_CANVAS_SUPPORT}")
 
1259
MESSAGE(STATUS "   DCC Voice Support           : ${CMAKE_STATUS_DCC_VOICE_SUPPORT}")
 
1260
MESSAGE(STATUS "   GSM Support                 : ${CMAKE_STATUS_GSM_SUPPORT}")
 
1261
MESSAGE(STATUS "   DCC Video Support           : ${CMAKE_STATUS_DCC_VIDEO_SUPPORT}")
 
1262
MESSAGE(STATUS "   Ogg/Theora Support          : ${CMAKE_STATUS_OGG_THEORA_SUPPORT}")
 
1263
MESSAGE(STATUS "Documentation:")
 
1264
MESSAGE(STATUS "   GetText Support             : ${CMAKE_STATUS_GETTEXT_SUPPORT}${GETTEXT_EXTRA_STATUS}")
 
1265
MESSAGE(STATUS "   GetText Messages Tidying    : ${CMAKE_STATUS_MESSAGE_TIDY}")
 
1266
#MESSAGE(STATUS "   Generate int. help files    : ${CMAKE_STATUS_GEN_USERDOC}")
 
1267
MESSAGE(STATUS "   Doxygen Support             : ${CMAKE_STATUS_DOXYGEN_SUPPORT}")
 
1268
MESSAGE(STATUS " ")
 
1269
MESSAGE(STATUS "Build Date                     : ${CMAKE_KVIRC_BUILD_DATE}")
 
1270
MESSAGE(STATUS " ")
 
1271
IF(MSVC)
 
1272
        MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'nmake' now...")
 
1273
ELSEIF(MINGW)
 
1274
        MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'mingw32-make' now...")
 
1275
ELSE()
 
1276
        MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'make' now...")
 
1277
ENDIF()
 
1278
MESSAGE(STATUS " ")