don't use umask on Windows
[quassel.git] / CMakeLists.txt
index a0a34c0..967715e 100644 (file)
@@ -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
@@ -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)