X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=icons%2FCMakeLists.txt;h=1a25353736f8585c3fea984e0a17156713981a33;hp=3eaea88a01ff101285a68609a4794734bf2be225;hb=5dbf544a08ef96a933d61ffa3b7bc711ebdab244;hpb=22d79ae4d680a3532b64c91440c02b53c81fdf36 diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index 3eaea88a..1a253537 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -1,56 +1,42 @@ # Install icons -# We put them in DATA_INSTALL_DIR rather than ICON_INSTALL_DIR, to avoid -# polluting the global namespace and to allow overriding +# +# We put the bundled oxygen icon theme in DATADIR rather than ICONDIR, +# in order to avoid conflicts. As we add this directory to XDG_DATA_DIRS at runtime, +# the bundled theme will be found by Qt only if there is no oxygen theme installed +# in system directories. +# +# The hicolor folder contains icons vital for the Quassel UI (such as in the channel and nick +# lists). It is installed into the system icon directory (in order to allow overriding) and +# additionally always embedded as a fallback resource. + +if (WANT_MONO OR WANT_QTCLIENT) + set(ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/hicolor.qrc) # always embed those + + if (EMBED_DATA) + if (WITH_OXYGEN) + message(STATUS "Embedding bundled Oxygen icons") + set(ICON_RCS ${ICON_RCS} ${CMAKE_CURRENT_SOURCE_DIR}/oxygen.qrc) + endif() + else() + install(DIRECTORY hicolor DESTINATION ${CMAKE_INSTALL_ICONDIR}) + if (WITH_OXYGEN) + message(STATUS "Installing bundled Oxygen icons") + install(DIRECTORY oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons) + endif() + endif() + + if (NOT WITH_OXYGEN) + message(STATUS "Not installing bundled Oxygen icons") + endif() -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 - set(INSTALL_OXY true) - string(TOUPPER ${WITH_OXYGEN} OXY_UPPER) - if(NOT OXY_UPPER) - set(INSTALL_OXY false) - elseif(OXY_UPPER MATCHES "AUTO") - if(HAVE_KDE) - if(KDE_VERSION VERSION_GREATER 4.2.99) - set(INSTALL_OXY false) - endif(KDE_VERSION VERSION_GREATER 4.2.99) - endif(HAVE_KDE) - 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) set(CLIENT_RCS ${CLIENT_RCS} ${ICON_RCS} PARENT_SCOPE) - else(EMBED_DATA) - install(DIRECTORY hicolor DESTINATION ${ICON_INSTALL_DIR}) - install(DIRECTORY oxygen DESTINATION ${DATA_INSTALL_DIR}/quassel/icons) - if(INSTALL_OXY) - install(DIRECTORY oxygen_kde/ DESTINATION ${DATA_INSTALL_DIR}/quassel/icons/oxygen) - endif(INSTALL_OXY) - endif(EMBED_DATA) -endif(WANT_MONO OR WANT_QTCLIENT) +endif() # Application icon -# cmake-2.6.2 can't handle nested conditions -# if((UNIX AND NOT APPLE) OR HAVE_KDE) -if(HAVE_KDE OR UNIX) - if(HAVE_KDE OR NOT APPLE) - - install(FILES oxygen_kde/48x48/apps/quassel.png DESTINATION ${ICON_INSTALL_DIR}/hicolor/48x48/apps) - if(CMAKE_INSTALL_PREFIX STREQUAL "/usr") - install(FILES oxygen_kde/48x48/apps/quassel.png DESTINATION /usr/share/pixmaps) - endif(CMAKE_INSTALL_PREFIX STREQUAL "/usr") - -# endif((UNIX AND NOT APPLE) OR HAVE_KDE) - endif(HAVE_KDE OR NOT APPLE) -endif(HAVE_KDE OR UNIX) +if (HAVE_KDE OR (UNIX AND NOT APPLE)) + install(FILES hicolor/48x48/apps/quassel.png DESTINATION ${CMAKE_INSTALL_ICONDIR}/hicolor/48x48/apps) + if (CMAKE_INSTALL_PREFIX STREQUAL "/usr") + install(FILES hicolor/48x48/apps/quassel.png DESTINATION /usr/share/pixmaps) + endif() +endif()