cs.ts translate bufferlog "unlimited" string.
[quassel.git] / CMakeLists.txt
index a45928a..a983dc4 100644 (file)
@@ -2,18 +2,20 @@
 #
 # 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!
 
@@ -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_LIBINDICATE "Enable Ayatana notification support"           ON)
 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.
-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)
 
@@ -103,7 +106,8 @@ endif(NOT CMAKE_BUILD_TYPE)
 # Enable various flags on gcc
 if(CMAKE_COMPILER_IS_GNUCXX)
   # Let's just hope that all gccs support these options and skip the tests...
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi -Wall -Wextra -Wnon-virtual-dtor")
+  # -fno-strict-aliasing is needed apparently for Qt < 4.6
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi -Wall -Wextra -Wnon-virtual-dtor -fno-strict-aliasing")
   set(CMAKE_CXX_FLAGS_RELWITHDEBUGINFO "-O2")
   set(CMAKE_CXX_FLAGS_DEBUG "-g -fno-reorder-blocks -fno-schedule-insns -fno-inline")
   set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3")
@@ -147,7 +151,7 @@ include_directories(${QT_INCLUDES})
 if(WITH_OPENSSL)
   find_package(OpenSSL)
 else(WITH_OPENSSL)
-  message(STATUS "Disabling OpenSSL support")
+  message(STATUS "Not enabling OpenSSL support")
 endif(WITH_OPENSSL)
 
 if(OPENSSL_FOUND)
@@ -175,7 +179,7 @@ if(WITH_DBUS)
     message(STATUS "QtDBus not found, disabling D-Bus support")
   endif(QT_QTDBUS_FOUND)
 else(WITH_DBUS)
-  message(STATUS "Disabling D-Bus support")
+  message(STATUS "Not enabling D-Bus support")
 endif(WITH_DBUS)
 
 # Setup QtWebKit support
@@ -190,7 +194,7 @@ if(WITH_WEBKIT)
     message(STATUS "QtWebKit not found, disabling WebKit support")
   endif(QT_QTWEBKIT_FOUND)
 else(WITH_WEBKIT)
-  message(STATUS "Disabling WebKit support")
+  message(STATUS "Not enabling WebKit support")
 endif(WITH_WEBKIT)
 
 # Setup KDE4 support
@@ -209,7 +213,7 @@ if(WITH_KDE)
     message(STATUS "KDE4 not found, disabling KDE integration")
   endif(KDE4_FOUND)
 else(WITH_KDE)
-  message(STATUS "Disabling KDE4 integration")
+  message(STATUS "Not enabling KDE4 integration")
 endif(WITH_KDE)
 
 # Setup Phonon support - we only need this if we don't have or want KDE4
@@ -225,10 +229,26 @@ if(NOT HAVE_KDE)
       message(STATUS "Phonon not found, disabling audio notifications")
     endif(PHONON_FOUND)
   else(WITH_PHONON)
-    message(STATUS "Disabling Phonon support")
+    message(STATUS "Not enabling Phonon support")
   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)
+      message(STATUS "Enabling Ayatana notification support")
+      add_definitions(-DHAVE_INDICATEQT)
+    else(INDICATEQT_FOUND)
+      message(STATUS "Disabling Ayatana notification support")
+    endif(INDICATEQT_FOUND)
+  endif(PKG_CONFIG_FOUND)
+else(WITH_LIBINDICATE)
+  message(STATUS "Not enabling Ayatana notification support")
+endif(WITH_LIBINDICATE)
+
 # Now set up install locations; those are set by KDE if integration is enabled
 if(NOT HAVE_KDE)
   if(WIN32)
@@ -244,6 +264,12 @@ if(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)
@@ -268,6 +294,16 @@ if(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)