# 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.
    # 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")
        set(patterns breeze*/*.svg)
        if (WITH_OXYGEN_ICONS)
            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")
            set(patterns breeze*/*.svg breeze*/index.theme)
            if (WITH_OXYGEN_ICONS)
                message(STATUS "Embedding bundled Oxygen icon theme")
                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
        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()

    # 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 (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()
    endif()
endif()
