master branch requires Qt 4.4 now...
[quassel.git] / CMakeLists.txt
index 16dac30..c93fa63 100644 (file)
@@ -14,9 +14,9 @@ project(QuasselIRC)
 # Target scopes don't work in older versions
 cmake_minimum_required(VERSION 2.4.7 FATAL_ERROR)
 
-# This would suppress annoying warnings on cmake-2.6, but we can't use it 
-# with 2.4, so... DUH!
-# cmake_policy(SET CMP0003 OLD)  # suppress linker warnings
+if(COMMAND cmake_policy)
+   cmake_policy(SET CMP0003 OLD)  # suppress linker warnings
+endif(COMMAND cmake_policy)
 
 # Use our own (well, KDE's) version of some modules
 # In particular cmake's FindQt4 and FindOpenSSL are quite buggy
@@ -32,7 +32,8 @@ option(DEPLOY        "Mac OS X only! Adds required libs to bundle resources and
 option(SPUTDEV       "Do not use!" OFF)
 
 set(QT "" CACHE STRING "Path to a Qt installation to use instead of the system Qt")
-
+set(LINGUAS "" CACHE STRING "Space-separated List of locales specifying languages that should be compiled")
 if(STATIC)
   set(CMAKE_BUILD_TYPE Release)
 endif(STATIC)
@@ -54,7 +55,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
   endif(HAVE_ANSI)
 endif(CMAKE_COMPILER_IS_GNUCXX)
 
-set(QT_MIN_VERSION "4.3.0")
+set(QT_MIN_VERSION "4.4.0")
 
 if(APPLE AND DEPLOY)
   set(CMAKE_OSX_ARCHITECTURES "i386;ppc")
@@ -69,6 +70,9 @@ endif(SPUTDEV)
 
 # Set up OpenSSL
 find_package(OpenSSL)
+if(NOT OPENSSL_FOUND)
+  add_definitions(-DQT_NO_OPENSSL)
+endif(NOT OPENSSL_FOUND)
 
 # Select a Qt installation here, if you don't want to use system Qt
 if(QT)
@@ -79,6 +83,12 @@ endif(QT)
 # Now that we have the correct $PATH, lets find Qt!
 find_package(Qt4 REQUIRED)
 
+if(QT_QTDBUS_FOUND)
+  add_definitions(-DHAVE_DBUS)
+  set(LINK_DBUS DBUS)
+  set(HAVE_DBUS true)
+endif(QT_QTDBUS_FOUND)
+
 set(QT_DONT_USE_QTGUI 1)
 include(${QT_USE_FILE})
 include_directories(${QT_INCLUDES})
@@ -111,8 +121,11 @@ endif(WANT_QTCLIENT OR WANT_MONO)
 # Make sure version.gen exists before building mod_common
 add_dependencies(mod_common genversion_run)
 
+# Generate binary translation files
+include(QuasselGenerateTranslations)
+quassel_generate_i18n_resource(RC_I18N ${LINGUAS})
+
 # Add resources
-qt4_add_resources(RC_I18N i18n/i18n.qrc)
 qt4_add_resources(RC_ICONS src/icons/icons.qrc)
 qt4_add_resources(RC_QUASSEL_ICONS src/icons/quassel-icons.qrc)
 qt4_add_resources(RC_SQL src/core/sql.qrc)
@@ -167,7 +180,7 @@ if(WANT_CORE)
 endif(WANT_CORE)
 
 if(WANT_QTCLIENT)
-  setup_qt4_variables(GUI NETWORK)
+  setup_qt4_variables(${LINK_DBUS} GUI NETWORK)
   add_executable(quasselclient WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp
                                      ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_I18N} ${WIN32_RC})
   set_target_properties(quasselclient PROPERTIES
@@ -177,7 +190,7 @@ if(WANT_QTCLIENT)
 endif(WANT_QTCLIENT)
 
 if(WANT_MONO)
-  setup_qt4_variables(GUI NETWORK SCRIPT SQL)
+  setup_qt4_variables(${LINK_DBUS} GUI NETWORK SCRIPT SQL)
   add_executable(quassel WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp
                                ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_SQL} ${RC_I18N} ${WIN32_RC})
   set_target_properties(quassel PROPERTIES