cmake: Remove build system support for Qt4/KDE4
[quassel.git] / icons / CMakeLists.txt
index 7703853..ca4df01 100644 (file)
@@ -1,45 +1,53 @@
 # Install icons
 
 if (WANT_MONO OR WANT_QTCLIENT)
+    if (NOT WITH_BUNDLED_ICONS AND NOT WITH_OXYGEN_ICONS)
+        message(WARNING "Not including bundled icon themes. Ensure that the Breeze or Oxygen icon theme is installed!")
+    endif()
+
     set(BUNDLED_ICON_THEME_DIR ${CMAKE_SOURCE_DIR}/3rdparty/icons)
 
+    # Always embed a hicolor fallback containing the most important (e.g. tray) icons
+    list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/hicolor_icons.qrc)
+
     if (EMBED_DATA)
         # Always embed quassel-specific icons
         message(STATUS "Embedding Quassel-specific icons")
         list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/breeze_icons.qrc)
         list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/breeze_dark_icons.qrc)
-        list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/oxygen_icons.qrc)
+        if (WITH_OXYGEN_ICONS)
+            list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/oxygen_icons.qrc)
+        endif()
 
-        if (WITH_BREEZE)
+        if (WITH_BUNDLED_ICONS)
             message(STATUS "Embedding bundled Breeze icon theme")
             list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/breeze_icon_theme.qrc)
-        endif()
-        if (WITH_BREEZE_DARK)
-            message(STATUS "Embedding bundled Breeze Dark icon theme")
             list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/breeze_dark_icon_theme.qrc)
-        endif()
-        if (WITH_OXYGEN)
-            message(STATUS "Embedding bundled Oxygen icon theme")
-            list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/oxygen_icon_theme.qrc)
+            if (WITH_OXYGEN_ICONS)
+                message(STATUS "Embedding bundled Oxygen icon theme")
+                list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/oxygen_icon_theme.qrc)
+            endif()
         endif()
 
     else()
         # Always install quassel-specific icons
-        install(DIRECTORY breeze breeze-dark oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
+        install(DIRECTORY breeze breeze-dark DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
+        if (WITH_OXYGEN_ICONS)
+            install(DIRECTORY oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
+        endif()
 
         # Install bundled icon themes into our data dir (instead of CMAKE_INSTALL_ICONDIR) to avoid conflicts
         # with themes provided by the system
-        if (WITH_BREEZE)
+        if (WITH_BUNDLED_ICONS)
             message(STATUS "Installing bundled Breeze icon theme")
-            install(DIRECTORY ${BUNDLED_ICON_THEME_DIR}/breeze DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
-        endif()
-        if (WITH_BREEZE_DARK)
-            message(STATUS "Installing bundled Breeze Dark icon theme")
-            install(DIRECTORY ${BUNDLED_ICON_THEME_DIR}/breeze-dark DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
-        endif()
-        if (WITH_OXYGEN)
-            message(STATUS "Installing bundled Oxygen icon theme")
-            install(DIRECTORY ${BUNDLED_ICON_THEME_DIR}/oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
+            install(DIRECTORY   ${BUNDLED_ICON_THEME_DIR}/breeze
+                                ${BUNDLED_ICON_THEME_DIR}/breeze-dark
+                    DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons
+            )
+            if (WITH_OXYGEN_ICONS)
+                message(STATUS "Installing bundled Oxygen icon theme")
+                install(DIRECTORY ${BUNDLED_ICON_THEME_DIR}/oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons)
+            endif()
         endif()
     endif()
 
@@ -50,6 +58,12 @@ if (WANT_MONO OR WANT_QTCLIENT)
         # hicolor contains the application icon in all relevant sizes
         install(DIRECTORY hicolor DESTINATION ${CMAKE_INSTALL_ICONDIR})
 
+        if (Qt5Core_VERSION VERSION_LESS 5.5.0)
+            # Qt < 5.5 doesn't seem to correctly load icons from injected themes
+            # Install Quassel-specific ones from Oxygen into hicolor as fallback
+            install(DIRECTORY oxygen/ DESTINATION ${CMAKE_INSTALL_ICONDIR}/hicolor)
+        endif()
+
         # For a system install, also copy to pixmaps
         if (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
             install(FILES hicolor/48x48/apps/quassel.png DESTINATION /usr/share/pixmaps)