X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=63d5f5fa5d66c6adc6e87fc9b231c31e589f4faf;hp=a0a34c06a3b46eabcc4f7be4f338a2d170a02fc3;hb=4ae8f86c1ce452582d6fe576956c7c1bc1460adf;hpb=f16f4c54f3d4d96a71cedbb2d5637f5d3bafe3d2 diff --git a/CMakeLists.txt b/CMakeLists.txt index a0a34c06..63d5f5fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ # -DWITH_KDE=ON : Enable KDE4 support # -DWITH_CRYPT=OFF : Disable encryption support # -DWITH_OXYGEN=(ON|OFF) : Whether to install Oxygen icons (default: yes, unless KDE > 4.3.0 is present and enabled) +# -DWITH_SYSLOG=OFF : Disable syslog support # # -DEMBED_DATA=ON : Embed all data files in icons the binary, rather than installing them separately # @@ -22,6 +23,9 @@ project(QuasselIRC) +include(CheckFunctionExists) +include(CheckIncludeFile) + # cmake 2.6.2 is required for KDE >=4.2 and should be widespread enough now cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) @@ -46,6 +50,7 @@ option(WITH_PHONON "Enable Phonon support (for audio notifications)" ON) option(WITH_LIBINDICATE "Enable Ayatana notification support" ON) option(WITH_KDE "Enable KDE4 integration" OFF) option(WITH_CRYPT "Enable encryption support if present on system" ON) +option(WITH_SYSLOG "Use syslog for storing log data" ON) # We use icon paths from KDE 4.3.x, which are partially invalid on older and possibly # even on newer KDE versions. Do not disable this unless you are sure that your Quassel will @@ -205,6 +210,19 @@ if(BUILD_GUI) set(CLIENT_QT4_VARS ${CLIENT_QT4_VARS} DBUS) set(CLIENT_COMPILE_FLAGS "${CLIENT_COMPILE_FLAGS} -DQT_DBUS_LIB") set(HAVE_DBUS true) + + # check if we have dbusmenu as well + find_package(DBusMenuQt) + if(DBUSMENUQT_FOUND) + message(STATUS "Enabling support for exporting the tray menu via D-Bus") + add_definitions(-DHAVE_DBUSMENU) + include_directories(${DBUSMENUQT_INCLUDE_DIR}) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${DBUSMENUQT_LIBRARIES}) + set(CLIENT_COMPILE_FLAGS "${CLIENT_COMPILE_FLAGS} ${DBUSMENUQT_DEFINITIONS}") + else(DBUSMENUQT_FOUND) + message(STATUS "Disabling support for exporting the tray menu via D-Bus") + endif(DBUSMENUQT_FOUND) + else(QT_QTDBUS_FOUND) message(STATUS "QtDBus not found, disabling D-Bus support") endif(QT_QTDBUS_FOUND) @@ -235,7 +253,7 @@ if(BUILD_GUI) include_directories(${KDE4_INCLUDES}) add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) set(HAVE_KDE 1) - set(QUASSEL_KDE_LIBRARIES ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_SOLID_LIBS} knotifyconfig) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_SOLID_LIBS} knotifyconfig) # We always use external icons for KDE4 support, since we use its iconloader rather than our own set(EMBED_DATA OFF) else(KDE4_FOUND) @@ -252,6 +270,8 @@ if(BUILD_GUI) if(PHONON_FOUND) message(STATUS "Enabling Phonon support") add_definitions(-DHAVE_PHONON) + include_directories(${PHONON_INCLUDES}) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${PHONON_LIBS}) set(HAVE_PHONON true) else(PHONON_FOUND) message(STATUS "Phonon not found, disabling audio notifications") @@ -268,6 +288,8 @@ if(BUILD_GUI) message(STATUS "Enabling Ayatana notification support") set(HAVE_INDICATEQT true) add_definitions(-DHAVE_INDICATEQT) + link_directories(${INDICATEQT_LIBRARY_DIRS}) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${INDICATEQT_LIBRARIES}) else(INDICATEQT_FOUND) message(STATUS "Disabling Ayatana notification support") endif(INDICATEQT_FOUND) @@ -298,6 +320,20 @@ if(BUILD_CORE) message(STATUS "Not enabling encryption support") endif(WITH_CRYPT) + # Setup syslog support + if(WITH_SYSLOG) + check_include_file(syslog.h HAVE_SYSLOG_H) + if(HAVE_SYSLOG_H) + message(STATUS "Enabling syslog support") + set(HAVE_SYSLOG true) + add_definitions(-DHAVE_SYSLOG) + else(HAVE_SYSLOG_H) + message(STATUS "Disabling syslog support") + endif(HAVE_SYSLOG_H) + else(WITH_SYSLOG) + message(STATUS "Not enabling syslog support") + endif(WITH_SYSLOG) + endif(BUILD_CORE) # needed to compile with mingw without kde @@ -349,8 +385,8 @@ if(WIN32) link_libraries(imm32 winmm dbghelp Secur32) # missing by default :/ if(MSVC) set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt") - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO}") - set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO}") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt") + set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") link_libraries(Version dwmapi shlwapi) endif(MSVC) if(HAVE_SSL AND STATIC) @@ -363,6 +399,13 @@ if(HAVE_INDICATEQT) add_definitions(-DXDG_APPS_INSTALL_DIR=${XDG_APPS_INSTALL_DIR}) endif(HAVE_INDICATEQT) +if(NOT WIN32) + check_function_exists(umask HAVE_UMASK) + if(HAVE_UMASK) + add_definitions(-DHAVE_UMASK) + endif(HAVE_UMASK) +endif(NOT WIN32) + # We need to create a version.gen # For this, we create our genversion binary and make sure it is run every time. add_executable(genversion ${CMAKE_SOURCE_DIR}/src/common/genversion.cpp)