1
###############################################################################
3
## KVIrc CMake global configuration file.
5
###############################################################################
7
###############################################################################
9
###############################################################################
14
# Set conventional loops
15
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
17
# Minimum cmake version
18
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4)
21
cmake_policy(SET CMP0017 NEW)
24
# Check modules first in local dir
25
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
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
36
STRING(REGEX MATCH "[0-9]+$" VERSION_MINOR ${VERSION_BRANCH})
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})
53
CACHE STRING "Define suffix of directory name (32/64)"
56
# Get revision number from SVN
58
CACHE STRING "Manually set the revision number"
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)
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}")
74
MESSAGE(STATUS "No Subversion working copy found")
77
MESSAGE("Subversion not found. No revision number will be used")
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}")
86
MESSAGE(STATUS "No revision number found.")
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}")
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}")
104
CACHE STRING "Define man directory starting from $CMAKE_INSTALL_PREFIX"
107
STRING(COMPARE EQUAL "${MANDIR}" "" MANDIR_UNSET)
109
SET(MANDIR_PREFIX "share/man")
111
SET(MANDIR_PREFIX "man")
113
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS MANDIR=${MANDIR_PREFIX})
116
TRY_RUN(TEST_DID_RUN TEST_DID_COMPILE "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/datetime.cpp" OUTPUT_VARIABLE TEST_BUILD_DATE)
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}")
120
SET(CMAKE_KVIRC_BUILD_DATE "ERROR")
123
# Set var to link with, for later use
125
SET(ADDITIONAL_LINK_FLAGS)
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)
136
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
139
SET(CMAKE_INSTALL_PREFIX ${PREFIX})
141
SET(CMAKE_INSTALL_PREFIX /usr/local)
146
SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
148
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX})
151
###############################################################################
155
###############################################################################
156
OPTION(WANT_ENV_FLAGS "Don't try to set CMAKE_C(XX)_FLAGS; instead, use the ones from environment variables" OFF)
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)
164
OPTION(WANT_STRIP "Strip binaries (discard symbols from object files)" OFF)
167
SET(CMAKE_BUILD_TYPE Undefined)
168
SET(CMAKE_STATUS_DEBUG_SUPPORT "Environment-driven")
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
184
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
185
SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
188
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
189
SET(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
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")
203
SET(CMAKE_CXX_FLAGS "-O0 -g")
204
SET(CMAKE_C_FLAGS "-O0 -g")
209
FIND_PROGRAM(STRIP_EXECUTABLE NAMES strip)
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)
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)
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)
221
IF(CMAKE_COMPILER_IS_GNUCXX)
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")
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")
242
SET(CMAKE_CXX_FLAGS "-O3")
243
SET(CMAKE_C_FLAGS "-O3")
249
############################################################################
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
############################################################################
256
OPTION(WANT_KDE4 "Whether to use KDE4 support" ON)
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")
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})
270
SET(CMAKE_STATUS_KDE4_SUPPORT "Not available")
273
SET(CMAKE_STATUS_KDE4_SUPPORT "No")
276
###############################################################################
280
###############################################################################
282
OPTION(WANT_VERBOSE "Generate verbose Makefiles" OFF)
284
SET(CMAKE_VERBOSE_MAKEFILE ON)
285
SET(CMAKE_STATUS_VERBOSE_SUPPORT "Yes")
286
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS VERBOSE)
288
SET(CMAKE_STATUS_VERBOSE_SUPPORT "No")
292
###############################################################################
294
# Version compatibility switch: appends VERSION_MAJOR to kvirc and kvilib
296
###############################################################################
298
OPTION(WANT_COEXISTENCE "Append version to binaries to maintain compatibility with older versions" OFF)
300
SET(KVIRC_BINARYNAME ${PACKAGE}${VERSION_MAJOR})
301
SET(KVILIB_BINARYNAME kvilib${VERSION_MAJOR})
302
SET(CMAKE_STATUS_COEXISTENCE_VER "Yes")
304
SET(KVIRC_BINARYNAME ${PACKAGE})
305
SET(KVILIB_BINARYNAME kvilib)
306
SET(CMAKE_STATUS_COEXISTENCE_VER "No")
309
###############################################################################
311
# Module install path: kvirc needs to know where they are installed
313
###############################################################################
317
SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/Contents/Resources/")
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})
325
SET(CMAKE_KVIRC_RESOURCES_DIR "${CMAKE_INSTALL_PREFIX}/")
326
SET(CMAKE_KVIRC_MODULES_DIR "${CMAKE_INSTALL_PREFIX}/modules/")
329
###############################################################################
333
###############################################################################
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)
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)
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)
352
SET(COMPILE_USE_DYNAMIC_LABELS 0)
355
SET(COMPILE_USE_DYNAMIC_LABELS 0)
358
###############################################################################
359
# Option for precompiled headers usage (currently broken because of bad gcc support)
360
###############################################################################
362
#OPTION(WANT_PCH "Whether to use pre-compiled headers" ON)
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)
369
# SET(CMAKE_STATUS_PCH_SUPPORT "Not available")
372
# ADD_DEFINITIONS(-DUSE_PCH=0)
373
# SET(CMAKE_STATUS_PCH_SUPPORT "User disabled")
377
###############################################################################
379
# Library and tool checks, in order. First the required ones
380
# in order of dependancy, then the optional ones.
382
###############################################################################
384
# ingore sigalarm (useful with solaris threads)
385
OPTION(WANT_IGNORE_SIGALARM "Ignore SIGALARM signal" OFF)
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)
395
IF(CMAKE_HAVE_THREADS_LIBRARY)
396
LIST(APPEND LIBS ${CMAKE_THREAD_LIBS_INIT})
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)
408
SET(CMAKE_STATUS_THREADS_SUPPORT "POSIX")
412
SET(CMAKE_STATUS_THREADS_SUPPORT "Not used")
416
FIND_PACKAGE(ZLIB REQUIRED)
418
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
419
LIST(APPEND LIBS ${ZLIB_LIBRARIES})
420
SET(COMPILE_ZLIB_SUPPORT 1)
423
############################################################################
425
############################################################################
427
# We require at least Qt 4.6.x
428
FIND_PACKAGE(Qt4 4.6.0 REQUIRED)
430
SET(QT_USE_QTSQL true)
431
SET(QT_USE_QTXML true)
432
SET(QT_USE_QTNETWORK true)
435
OPTION(WANT_QTDBUS "Whether to compile Qt-DBus support" ON)
438
SET(QT_USE_QTDBUS true)
439
SET(CMAKE_STATUS_QTDBUS_SUPPORT "Yes")
440
SET(COMPILE_DBUS_SUPPORT 1)
442
SET(CMAKE_STATUS_QTDBUS_SUPPORT "Not available")
445
SET(CMAKE_STATUS_QTDBUS_SUPPORT "No")
449
OPTION(WANT_QTWEBKIT "Whether to compile Qt-WebKit support" ON)
451
IF(QT_QTWEBKIT_FOUND)
452
SET(QT_USE_QTWEBKIT true)
453
SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "Yes")
454
SET(COMPILE_WEBKIT_SUPPORT 1)
456
SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "Not available")
459
SET(CMAKE_STATUS_QTWEBKIT_SUPPORT "No")
462
OPTION(WANT_QTSVG "Whether to compile Qt-Svg support" ON)
465
SET(QT_USE_QTSVG true)
466
SET(CMAKE_STATUS_QTSVG_SUPPORT "Yes")
467
SET(COMPILE_SVG_SUPPORT 1)
469
SET(CMAKE_STATUS_QTSVG_SUPPORT "Not available")
472
SET(CMAKE_STATUS_QTSVG_SUPPORT "No")
477
INCLUDE(${QT_USE_FILE})
478
INCLUDE_DIRECTORIES(${QT_INCLUDES})
479
LIST(APPEND LIBS ${QT_LIBRARIES})
485
SET(CMAKE_STATUS_X11_SUPPORT "Not used")
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})
497
SET(CMAKE_STATUS_X11_SUPPORT "Yes")
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)
509
SET(CMAKE_STATUS_X11_SUPPORT "Not available")
513
SET(CMAKE_STATUS_X11_SUPPORT "Not needed")
517
OPTION(WANT_PHONON "Whether to compile Phonon support" ON)
521
SET(COMPILE_PHONON_SUPPORT 1)
522
LIST(APPEND LIBS ${PHONON_LIBRARY})
523
LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Phonon")
528
OPTION(WANT_ESD "Whether to compile ESD support" ON)
532
SET(COMPILE_ESD_SUPPORT 1)
533
LIST(APPEND LIBS ${ESD_LIBRARY})
534
LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Esd")
539
OPTION(WANT_OSS "Whether to compile OSS support" ON)
540
OPTION(WANT_AUDIOFILE "Whether to compile Audiofile support" ON)
545
SET(COMPILE_OSS_SUPPORT 1)
549
FIND_PACKAGE(Audiofile)
551
SET(COMPILE_AUDIOFILE_SUPPORT 1)
552
LIST(APPEND LIBS ${AUDIOFILE_LIBRARY})
553
LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Oss+AudioFile")
556
LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "Oss")
562
LIST(APPEND CMAKE_STATUS_AUDIO_BACKENDS "WinMM")
565
############################################################################
566
# Check for MacOS X universal binary
567
############################################################################
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")
578
SET(CMAKE_STATUS_BUILD_UNIVERSAL_BINARY "No")
581
SET(CMAKE_STATUS_BUILD_UNIVERSAL_BINARY "Not available")
584
############################################################################
585
# OpenSSL support (Secure Sockets, Certificates, Digests etc...)
586
############################################################################
588
OPTION(WANT_OPENSSL "Whether to compile OpenSSL support" ON)
591
FIND_PACKAGE(OpenSSL)
594
# On windows/mingw we need libeay32 too...
595
FIND_LIBRARY(LIB_EAY NAMES libeay32MD eay libeay libeay32)
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")
607
SET(CMAKE_STATUS_SSL_SUPPORT "Not available, libeay missing")
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)
618
SET(CMAKE_STATUS_SSL_SUPPORT "Not available")
621
SET(CMAKE_STATUS_SSL_SUPPORT "No")
624
############################################################################
625
# Crypt engines support
626
############################################################################
628
OPTION(WANT_CRYPT "Compile Cryptographic Support and Engines" ON)
630
SET(COMPILE_CRYPT_SUPPORT 1)
631
SET(CMAKE_STATUS_CRYPT_SUPPORT "Yes")
633
SET(CMAKE_STATUS_CRYPT_SUPPORT "No")
636
############################################################################
638
############################################################################
640
OPTION(WANT_IPV6 "Compile IPv6 Support" ON)
642
SET(COMPILE_IPV6_SUPPORT 1)
643
SET(CMAKE_STATUS_IPV6_SUPPORT "Yes")
645
SET(CMAKE_STATUS_IPV6_SUPPORT "No")
648
############################################################################
649
# Do we want pseudo-transparency ?
650
############################################################################
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")
657
SET(CMAKE_STATUS_TRANSPARENCY_SUPPORT "No")
660
# Check for Perl support
661
# (note: needed for user documentation generation)
662
OPTION(WANT_PERL "Compile Perl Support" ON)
664
#perl is needed for documentation, too
669
SET(COMPILE_PERL_SUPPORT 1)
670
SET(CMAKE_STATUS_PERL_SUPPORT "Yes, used for scripting+doc")
672
# Get the right flags to link with
674
COMMAND ${PERL_EXECUTABLE} -MExtUtils::Embed -e ldopts
675
OUTPUT_VARIABLE PERL_LINK_FLAGS
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}")
684
SET(CMAKE_STATUS_PERL_SUPPORT "No")
688
SET(CMAKE_STATUS_PERL_SUPPORT "Used for doc, but scripting disabled by user")
690
SET(CMAKE_STATUS_PERL_SUPPORT "No")
694
# Check for Python support
695
OPTION(WANT_PYTHON "Compile Python Support" ON)
699
SET(COMPILE_PYTHON_SUPPORT 1)
700
SET(CMAKE_STATUS_PYTHON_SUPPORT "Yes")
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})
709
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
711
SET(CMAKE_STATUS_PYTHON_SUPPORT "No, not found.")
714
SET(CMAKE_STATUS_PYTHON_SUPPORT "No")
717
############################################################################
718
# IPC (inter-process communication) support
719
############################################################################
720
OPTION(WANT_IPC "Compile Inter-Process Communication Support" ON)
722
SET(CMAKE_STATUS_IPC_SUPPORT "Yes")
724
SET(COMPILE_NO_IPC 1)
725
SET(CMAKE_STATUS_IPC_SUPPORT "No")
729
############################################################################
730
# NETWORK FUNCTIONS support
731
############################################################################
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)
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)
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)
752
############################################################################
753
# SetEnv/PutEnv support
754
############################################################################
755
CHECK_FUNCTION_EXISTS("setenv" HAVE_SETENV_EXISTS)
756
# what systems lacks this!?
757
IF(HAVE_SETENV_EXISTS)
761
CHECK_FUNCTION_EXISTS("putenv" HAVE_PUTENV_EXISTS)
762
# what systems lacks this!?
763
IF(HAVE_PUTENV_EXISTS)
767
############################################################################
769
############################################################################
770
OPTION(WANT_GSM "Compile GSM Support" ON)
772
SET(COMPILE_USE_GSM 1)
773
SET(CMAKE_STATUS_GSM_SUPPORT "Yes")
775
SET(CMAKE_STATUS_GSM_SUPPORT "No")
778
############################################################################
780
############################################################################
782
OPTION(WANT_DCC_CANVAS "Compile DCC Canvas Support" OFF)
784
SET(CMAKE_STATUS_DCC_CANVAS_SUPPORT "Yes")
785
SET(COMPILE_DCC_CANVAS 1)
787
SET(CMAKE_STATUS_DCC_CANVAS_SUPPORT "No")
790
############################################################################
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)
797
OPTION(WANT_DCC_VOICE "Compile DCC Voice Support" ON)
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)
809
SET(COMPILE_DISABLE_DCC_VOICE 1)
810
SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "No, soundcard.h not found")
813
SET(COMPILE_DISABLE_DCC_VOICE 1)
814
SET(CMAKE_STATUS_DCC_VOICE_SUPPORT "No")
817
############################################################################
818
# Dcc video support + extended webcam support (LibV4L2)
819
############################################################################
820
OPTION(WANT_DCC_VIDEO "Compile DCC Video Support" OFF)
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")
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)
833
SET(COMPILE_DISABLE_AVDEVICE 1)
834
SET(COMPILE_DISABLE_DCC_VIDEO 1)
835
SET(COMPILE_V4L1_CODE 0)
837
SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Not available")
841
IF(NOT COMPILE_DISABLE_AVDEVICE)
842
FIND_PACKAGE(LibV4L2)
844
SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "Yes, with LibV4L2")
846
SET(V4L2_CAP_VIDEO_CAPTURE 1)
847
LIST(APPEND LIBS ${LIBV4L2_LIBRARY})
851
SET(COMPILE_DISABLE_AVDEVICE 1)
852
SET(COMPILE_DISABLE_DCC_VIDEO 1)
853
SET(COMPILE_V4L1_CODE 0)
855
SET(CMAKE_STATUS_DCC_VIDEO_SUPPORT "No")
858
############################################################################
859
# Ogg/Vorbis and Ogg/Theora support
860
############################################################################
861
OPTION(WANT_OGG_THEORA "Compile Ogg/Vorbis+Theora Support" OFF)
866
SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "Yes")
867
LIST(APPEND LIBS ${THEORA_LIBRARY})
868
INCLUDE_DIRECTORIES(${THEORA_INCLUDE_DIR})
870
SET(COMPILE_DISABLE_OGG_THEORA 1)
871
SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "No")
874
SET(COMPILE_DISABLE_OGG_THEORA 1)
875
SET(CMAKE_STATUS_OGG_THEORA_SUPPORT "No")
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")
886
SET(CMAKE_STATUS_MEMORY_PROFILE_SUPPORT "No")
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")
898
SET(CMAKE_STATUS_MEMORY_CHECKS_SUPPORT "No")
901
############################################################################
902
# Win32 mingw/cmake build checks
903
############################################################################
905
ADD_DEFINITIONS(-D_WIN32_WINNT=0x501 -DWINVER=0x501)
909
LIST(APPEND LIBS -lshlwapi)
911
SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc -fno-exceptions")
912
ADD_DEFINITIONS(-DMINGW)
914
SET(ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS} -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc -mwindows -fno-exceptions")
915
ADD_DEFINITIONS(-DMINGW -mwindows)
917
#remove leading and trailing spaces (string strip)
918
STRING(REGEX REPLACE "(^( )+|( )+$)" "" ADDITIONAL_LINK_FLAGS "${ADDITIONAL_LINK_FLAGS}")
922
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
925
############################################################################
926
# Very important checks
927
############################################################################
928
OPTION(WANT_PIZZA "Pizza for everyone" OFF)
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")
938
OPTION(WANT_BEER "Add some PaleALE to the compilation" OFF)
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")
947
###############################################################################
949
# Translation (GetText) checks
951
###############################################################################
952
OPTION(WANT_GETTEXT "Whether to use GetText to generate translations" ON)
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)
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)
964
SET(CMAKE_STATUS_GETTEXT_SUPPORT "No")
965
SET(USE_GETTEXT_TRANSLATIONS 0)
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")
976
SET(USE_GETTEXT_EXTRA 0)
977
SET(GETTEXT_EXTRA_STATUS)
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}"
994
IF(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_XGETTEXT_EXECUTABLE)
995
ADD_DEPENDENCIES(messages-update messages-tidy)
997
SET(CMAKE_STATUS_MESSAGE_TIDY "Yes")
999
SET(CMAKE_STATUS_MESSAGE_TIDY "Sed not found")
1003
SET(CMAKE_STATUS_GETTEXT_SUPPORT "No")
1008
#CMakeUnixFindMake.cmake
1010
#CMakeFindXCode.cmake
1011
#CheckLibraryExists.cmake
1013
# Search for subdirectories
1014
SUBDIRS(src data po scripts doc)
1016
#install additional resources for win32
1018
ADD_SUBDIRECTORY(win32build)
1020
###############################################################################
1022
# The API documentation target
1024
###############################################################################
1027
OPTION(WANT_DOXYGEN "Whether to use Doxygen to generate documentation" ON)
1029
FIND_PACKAGE(Doxygen)
1031
SET(CMAKE_STATUS_DOXYGEN_SUPPORT "Yes")
1034
@echo Generating api documentation
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
1044
SET(CMAKE_STATUS_DOXYGEN_SUPPORT "No")
1047
SET(CMAKE_STATUS_DOXYGEN_SUPPORT "No")
1050
###############################################################################
1052
# The User documentation target (kvirc internal help)
1054
###############################################################################
1057
#OPTION(WANT_USERDOCS "Whether to generate user documentation (aka internal help)" ON)
1059
# SET(CMAKE_STATUS_GEN_USERDOC "Yes")
1061
# SET(CMAKE_STATUS_GEN_USERDOC "User disabled")
1064
###############################################################################
1066
# We want the "distclean" target
1068
###############################################################################
1073
@echo Cleaning for source distribution
1082
install_manifest.txt
1090
TARGET distclean POST_BUILD
1092
COMMENT "distribution clean"
1094
ARGS -Rf CMakeTmp CMakeFiles doc/api ${DISTCLEANED}
1099
###############################################################################
1101
###############################################################################
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.
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)
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)
1128
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysconfig.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysconfig.h)
1131
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/kvi_sysbuildinfo.h.cmake ${PROJECT_BINARY_DIR}/kvi_sysbuildinfo.h)
1134
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
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)
1141
CONFIGURE_FILE(${kvirc_SOURCE_DIR}/cmake/kvirc-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/scripts/config/kvirc-config @ONLY)
1144
#CONFIGURE_FILE(${kvirc_SOURCE_DIR}/cmake/FindKVIrc.cmake.in ${kvirc_BINARY_DIR}/FindKVIrc.cmake @ONLY)
1148
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/Doxyfile.cmake ${CMAKE_BINARY_DIR}/admin/Doxyfile @ONLY)
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
###############################################################################
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)
1164
###############################################################################
1165
# ADD LINK FLAGS TO LIBS: THIS HAVE TO BE DONE AT LAST
1166
###############################################################################
1168
LIST(APPEND LIBS "${ADDITIONAL_LINK_FLAGS}")
1169
###############################################################################
1171
###############################################################################
1176
SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/Contents/MacOS/${KVIRC_BINARYNAME})
1179
SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/bin/${KVIRC_BINARYNAME})
1182
SET(KVIRC_BIN_PATH ${CMAKE_INSTALL_PREFIX}/${KVIRC_BINARYNAME})
1188
SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/Contents/Frameworks/)
1191
SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/)
1194
SET(KVIRC_LIB_PATH ${CMAKE_INSTALL_PREFIX}/)
1200
SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/Contents/Frameworks/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
1203
SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
1206
SET(KVIRC_MOD_PATH ${CMAKE_INSTALL_PREFIX}/${KVIRC_BINARYNAME}/${VERSION_BRANCH}/)
1212
# does MacOS X use man pages?
1215
SET(KVIRC_MAN_PATH ${CMAKE_INSTALL_PREFIX}/${MANDIR_PREFIX}/)
1218
SET(KVIRC_MAN_PATH "Not available")
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)")
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}")
1269
MESSAGE(STATUS "Build Date : ${CMAKE_KVIRC_BUILD_DATE}")
1272
MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'nmake' now...")
1274
MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'mingw32-make' now...")
1276
MESSAGE(STATUS "I'm ready to build KVIrc for you: please type 'make' now...")