cmake: avoid de-duplication of user's CXXFLAGS
[quassel.git] / icons / CMakeLists.txt
index b989db4..e6b70a4 100644 (file)
@@ -7,24 +7,30 @@ if (WANT_MONO OR WANT_QTCLIENT)
 
     set(BUNDLED_ICON_THEME_DIR ${CMAKE_SOURCE_DIR}/3rdparty/icons)
 
+    # Always embed a hicolor fallback containing the most important (e.g. tray) icons.
+    # The .qrc contains aliases, so it's best to keep this manually written rather than autogenerated.
+    quassel_add_module(Resource::HicolorIcons STATIC)
+    target_sources(${TARGET} PRIVATE hicolor_icons.qrc)
+    set_target_properties(${TARGET} PROPERTIES AUTOMOC OFF AUTOUIC OFF)
+
     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)
+        set(patterns breeze*/*.svg)
         if (WITH_OXYGEN_ICONS)
-            list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/oxygen_icons.qrc)
+            list(APPEND patterns oxygen/*.png)
         endif()
+        quassel_add_resource(Icons PREFIX icons PATTERNS ${patterns})
 
         if (WITH_BUNDLED_ICONS)
             message(STATUS "Embedding bundled Breeze icon theme")
-            list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/breeze_icon_theme.qrc)
-            list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/breeze_dark_icon_theme.qrc)
+            set(patterns breeze*/*.svg breeze*/index.theme)
             if (WITH_OXYGEN_ICONS)
                 message(STATUS "Embedding bundled Oxygen icon theme")
-                list(APPEND ICON_RCS ${BUNDLED_ICON_THEME_DIR}/oxygen_icon_theme.qrc)
+                list(APPEND patterns oxygen/*.png oxygen/index.theme)
             endif()
         endif()
+        quassel_add_resource(IconThemes PREFIX icons PATTERNS ${patterns} BASEDIR ${BUNDLED_ICON_THEME_DIR})
 
     else()
         # Always install quassel-specific icons
@@ -48,22 +54,15 @@ if (WANT_MONO OR WANT_QTCLIENT)
         endif()
     endif()
 
-    set(CLIENT_RCS ${CLIENT_RCS} ${ICON_RCS} PARENT_SCOPE)
-
     # Application icon
     if (HAVE_KDE OR (UNIX AND NOT APPLE))
         # hicolor contains the application icon in all relevant sizes
         install(DIRECTORY hicolor DESTINATION ${CMAKE_INSTALL_ICONDIR})
 
-        if (USE_QT4)
-            # Qt 4 doesn't seem to correctly load icons from injected themes
+        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)
-        endif()
     endif()
 endif()