-# We put them in DATA_INSTALL_DIR rather than ICON_INSTALL_DIR, to avoid
-# polluting the global namespace and to allow overriding
-
-if(WANT_MONO OR WANT_QTCLIENT)
-
- # Figure out if we want to install KDE's icons
- # Starting with KDE 4.3, they shouldn't be needed anymore
- string(TOUPPER ${WITH_OXYGEN} OXY_UPPER)
- if(NOT OXY_UPPER)
- set(INSTALL_OXY false)
- elseif(OXY_UPPER MATCHES "AUTO")
- if(HAVE_KDE AND KDE_VERSION VERSION_GREATER 4.2.99)
- set(INSTALL_OXY false)
- else(HAVE_KDE AND KDE_VERSION VERSION_GREATER 4.2.99)
- set(INSTALL_OXY true)
- endif(HAVE_KDE AND KDE_VERSION VERSION_GREATER 4.2.99)
- else(NOT OXY_UPPER)
- set(INSTALL_OXY true)
- endif(NOT OXY_UPPER)
-
- if(INSTALL_OXY)
- message(STATUS "Installing Oxygen icons")
- else(INSTALL_OXY)
- message(STATUS "Not installing Oxygen icons")
- endif(INSTALL_OXY)
-
- if(EMBED_DATA)
- set(ICON_RCS ../icons/hicolor.qrc ../icons/oxygen.qrc)
- if(INSTALL_OXY)
- set(ICON_RCS ${ICON_RCS} ../icons/oxygen_kde.qrc)
- endif(INSTALL_OXY)
+
+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)
+ if (WITH_OXYGEN_ICONS)
+ list(APPEND ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/oxygen_icons.qrc)
+ endif()
+
+ 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)
+ 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 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_BUNDLED_ICONS)
+ message(STATUS "Installing bundled Breeze icon theme")
+ 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()
+