# -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
#
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)
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
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)
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)
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")
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)
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
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)
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)