Ported to libindicate 0.2.1.
[quassel.git] / CMakeLists.txt
index 0271a36..f44c02e 100644 (file)
@@ -2,18 +2,20 @@
 #
 # You may pass various options to cmake:
 # -DWANT_(CORE|QTCLIENT|MONO)=(ON|OFF)
 #
 # You may pass various options to cmake:
 # -DWANT_(CORE|QTCLIENT|MONO)=(ON|OFF)
-#                     : select binaries to build
-# -DWITH_OPENSSL=OFF  : Disable OpenSSL support
-# -DWITH_DBUS=OFF     : Disable D-Bus support (dbus notifications)
-# -DWITH_WEBKIT=OFF   : Disable WebKit support (link previews)
-# -DWITH_PHONON=OFF   : Disable Phonon support (audio notifications)
-# -DWITH_KDE=ON       : Enable KDE4 support
+#                        : select binaries to build
+# -DWITH_OPENSSL=OFF     : Disable OpenSSL support
+# -DWITH_DBUS=OFF        : Disable D-Bus support (dbus notifications)
+# -DWITH_WEBKIT=OFF      : Disable WebKit support (link previews)
+# -DWITH_PHONON=OFF      : Disable Phonon support (audio notifications)
+# -DWITH_LIBINDICATE=OFF : Disable libindicate support (Ayatana notifications)
+# -DWITH_KDE=ON          : Enable KDE4 support
+# -DWITH_OXYGEN=(ON|OFF) : Whether to install Oxygen icons (default: yes, unless KDE > 4.3.0 is present and enabled)
 #
 #
-# -DEMBED_DATA=ON     : Embed all data files in icons the binary, rather than installing them separately
+# -DEMBED_DATA=ON        : Embed all data files in icons the binary, rather than installing them separately
 #
 #
-# -DQT=/path/to/qt    : Choose a Qt4 installation to use instead of the system Qt4
-# -DSTATIC=ON         : Enable static building of Quassel. Use with care.
-# -DDEPLOY=ON         : Mac OS X only. Use only for creating Quassel Packages!
+# -DQT=/path/to/qt       : Choose a Qt4 installation to use instead of the system Qt4
+# -DSTATIC=ON            : Enable static building of Quassel. Use with care.
+# -DDEPLOY=ON            : Mac OS X only. Use only for creating Quassel Packages!
 #
 # NOTE: You should remove CMakeCache.txt if you plan to change any of these values!
 
 #
 # NOTE: You should remove CMakeCache.txt if you plan to change any of these values!
 
@@ -39,12 +41,13 @@ option(WITH_OPENSSL  "Enable OpenSSL support if present on the system"      ON)
 option(WITH_DBUS     "Enable D-Bus support if present on the system"   ON)
 option(WITH_WEBKIT   "Enable WebKit support (for link previews)"       ON)
 option(WITH_PHONON   "Enable Phonon support (for audio notifications)" ON)
 option(WITH_DBUS     "Enable D-Bus support if present on the system"   ON)
 option(WITH_WEBKIT   "Enable WebKit support (for link previews)"       ON)
 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_KDE      "Enable KDE4 integration"                         OFF)
 
-# We use icon paths from KDE 4.3 trunk, which are partially invalid on older and possibly
+# 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
 # run on a matching KDE version only.
 # even on newer KDE versions. Do not disable this unless you are sure that your Quassel will
 # run on a matching KDE version only.
-option(WITH_OXYGEN   "Install Oxygen icons. Heavily recommended unless you use KDE 4.3" ON)
+set(WITH_OXYGEN AUTO CACHE STRING "Install Oxygen icons (default is \"AUTO\" to install when KDE 4.3 or later is present")
 
 option(STATIC        "Enable static building (might not be portable)" OFF)
 
 
 option(STATIC        "Enable static building (might not be portable)" OFF)
 
@@ -230,6 +233,17 @@ if(NOT HAVE_KDE)
   endif(WITH_PHONON)
 endif(NOT HAVE_KDE)
 
   endif(WITH_PHONON)
 endif(NOT HAVE_KDE)
 
+# Setup libindicate-qt support
+if(WITH_LIBINDICATE)
+  find_package(PkgConfig QUIET)
+  if(PKG_CONFIG_FOUND)
+    pkg_check_modules(INDICATEQT indicate-qt>=0.2.1)
+    if(INDICATEQT_FOUND)
+      add_definitions(-DHAVE_INDICATEQT)
+    endif(INDICATEQT_FOUND)
+  endif(PKG_CONFIG_FOUND)
+endif(WITH_LIBINDICATE)
+
 # Now set up install locations; those are set by KDE if integration is enabled
 if(NOT HAVE_KDE)
   if(WIN32)
 # Now set up install locations; those are set by KDE if integration is enabled
 if(NOT HAVE_KDE)
   if(WIN32)
@@ -245,6 +259,12 @@ if(NOT HAVE_KDE)
   endif(WIN32)
 endif(NOT HAVE_KDE)
 
   endif(WIN32)
 endif(NOT HAVE_KDE)
 
+if(EMBED_DATA)
+  message(STATUS "Embedding data files into the binary")
+else(EMBED_DATA)
+  message(STATUS "Installing data files separately")
+endif(EMBED_DATA)
+
 # RPATH needs to be set correctly
 # Do this down here, since otherwise KDE wants to handle it itself, and fails
 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1)
 # RPATH needs to be set correctly
 # Do this down here, since otherwise KDE wants to handle it itself, and fails
 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1)
@@ -269,6 +289,16 @@ if(WIN32)
   endif(HAVE_SSL)
 endif(WIN32)
 
   endif(HAVE_SSL)
 endif(WIN32)
 
+if(INDICATEQT_FOUND)
+  if(WANT_QTCLIENT)
+    set(DESKTOP_FILE ${XDG_APPS_INSTALL_DIR}/quasselclient.desktop)
+  endif(WANT_QTCLIENT)
+  if(WANT_MONO)
+    set(DESKTOP_FILE ${XDG_APPS_INSTALL_DIR}/quassel.desktop)
+  endif(WANT_MONO)
+  add_definitions(-DDESKTOP_FILE="\\"${DESKTOP_FILE}\\"")
+endif(INDICATEQT_FOUND)
+
 # 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)
 # 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)