We don't actually require XmlPatterns for WebKit
[quassel.git] / src / qtui / CMakeLists.txt
index e2f7eb0..b66b090 100644 (file)
@@ -75,42 +75,79 @@ set(FORMS
     settingspagedlg.ui
     simplenetworkeditor.ui
     receivefiledlg.ui
-    topicwidget.ui)
-
-if(HAVE_KDE)
-  set(SOURCES ${SOURCES} knotificationbackend.cpp)
-else(HAVE_KDE)
-  if(HAVE_SNORENOTIFY)
-    set(SOURCES ${SOURCES} snorenotificationbackend.cpp)
-    set(FORMS ${FORMS} snorentificationconfigwidget.ui)
-  endif(HAVE_SNORENOTIFY)
-  if(HAVE_PHONON)
-    set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
-    set(FORMS ${FORMS} phononnotificationconfigwidget.ui)
+    topicwidget.ui
+)
+
+set(LIBS )
+set(QT_MODULES )
+
+if (KDE4_FOUND)
+    add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
+    include_directories(${KDE4_INCLUDES})
+    list(APPEND SOURCES knotificationbackend.cpp)
+    list(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KNOTIFYCONFIG_LIBRARY})
+endif()
+
+if (LIBSNORE_FOUND)
+    add_definitions(-DHAVE_LIBSNORE)
+    include_directories(${LIBSNORE_INCLUDE_DIRS})
+    list(APPEND SOURCES snorenotificationbackend.cpp)
+    list(APPEND FORMS   snorentificationconfigwidget.ui)
+    list(APPEND LIBS ${LIBSNORE_LIBRARIES})
+endif()
+
+if (PHONON_FOUND OR Phonon4Qt5_FOUND)
+    add_definitions(-DHAVE_PHONON)
     include_directories(${PHONON_INCLUDES})
-  endif(HAVE_PHONON)
-endif(HAVE_KDE)
+    set(SOURCES ${SOURCES} phononnotificationbackend.cpp)
+    set(FORMS ${FORMS}     phononnotificationconfigwidget.ui)
+    list(APPEND LIBS ${PHONON_LIBS})  # PHONON_LIBRARIES only exists in config mode, it's not set by the legacy FindPhonon.cmake
+endif()
+
+if (QT_QTDBUS_FOUND OR Qt5DBus_FOUND)
+    add_definitions(-DHAVE_DBUS)
+    list(APPEND QT_MODULES DBus)
+    if (dbusmenu-qt_FOUND OR dbusmenu-qt5_FOUND)
+        add_definitions(-DHAVE_DBUSMENU)
+        include_directories(${dbusmenu-qt_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS})
+        if (dbusmenu-qt_FOUND)
+            list(APPEND LIBS dbusmenu-qt)
+        else()
+            list(APPEND LIBS dbusmenu-qt5)
+        endif()
+    endif()
+
+    list(APPEND SOURCES statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
+    qt_add_dbus_interface(SOURCES ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
+    qt_add_dbus_interface(SOURCES ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
+    qt_add_dbus_adaptor  (SOURCES ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
+endif()
 
-if (HAVE_DBUS)
-    set(SOURCES ${SOURCES} statusnotifieritem.cpp statusnotifieritemdbus.cpp dockmanagernotificationbackend.cpp)
-    qt_add_dbus_interface(DBUS ../../interfaces/org.kde.StatusNotifierWatcher.xml statusnotifierwatcher)
-    qt_add_dbus_interface(DBUS ../../interfaces/org.freedesktop.Notifications.xml notificationsclient)
-    qt_add_dbus_adaptor(DBUS ../../interfaces/org.kde.StatusNotifierItem.xml statusnotifieritemdbus.h StatusNotifierItemDBus)
-endif(HAVE_DBUS)
+if (QT_QTWEBKIT_FOUND OR Qt5WebKitWidgets_FOUND)
+    add_definitions(-DHAVE_WEBKIT)
+    list(APPEND QT_MODULES WebKit)
+    if (USE_QT5)
+        list(APPEND QT_MODULES WebKitWidgets)
+    endif()
+endif()
 
 if(HAVE_SSL)
   set(SOURCES ${SOURCES} sslinfodlg.cpp)
   set(FORMS ${FORMS} sslinfodlg.ui)
 endif(HAVE_SSL)
 
-if(INDICATEQT_FOUND)
-  set(SOURCES ${SOURCES} indicatornotificationbackend.cpp)
-  set(FORMS ${FORMS} indicatornotificationconfigwidget.ui)
-  include_directories(${INDICATEQT_INCLUDE_DIRS})
-endif(INDICATEQT_FOUND)
+if (INDICATEQT_FOUND)
+    add_definitions(-DHAVE_INDICATEQT)
+    include_directories(${INDICATEQT_INCLUDE_DIRS})
+    list(APPEND SOURCES indicatornotificationbackend.cpp)
+    list(APPEND FORMS   indicatornotificationconfigwidget.ui)
+    list(APPEND LIBS ${INDICATEQT_LIBRARIES})
+endif()
 
-if(HAVE_NOTIFICATION_CENTER)
-  set(SOURCES ${SOURCES} osxnotificationbackend.mm)
+if (WITH_NOTIFICATION_CENTER)
+    add_definitions(-DHAVE_NOTIFICATION_CENTER)
+    list(APPEND SOURCES osxnotificationbackend.mm)
+    list(APPEND LIBS "/System/Library/Frameworks/Foundation.framework")
 endif()
 
 foreach(FORM ${FORMS})
@@ -140,19 +177,16 @@ include_directories(${CMAKE_SOURCE_DIR}/src/common
 
 qt_wrap_ui(UI ${FORMPATH} ${SPFRM})
 
-if (WITH_QT5)
-    list(APPEND qt_modules Widgets)
+if (USE_QT5)
+    list(APPEND QT_MODULES Widgets)
 endif()
 
-if (HAVE_DBUS)
-    list(APPEND qt_modules DBus)
-endif()
 
-if (HAVE_WEBKIT)
-    list(APPEND qt_modules Webkit XmlPatterns)
-endif()
+add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI})
+qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES})
 
-add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${DBUS} ${UI})
-qt_use_modules(mod_qtui Core Gui Network ${qt_modules})
+if (LIBS)
+    target_link_libraries(mod_qtui ${LIBS})
+endif()
 
 add_dependencies(mod_qtui mod_common mod_client mod_uisupport)