You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
5.3 KiB
126 lines
5.3 KiB
From 05f11af435edc57650d0221ed8a74ecfb997e576 Mon Sep 17 00:00:00 2001
|
|
From: Christoph Cullmann <cullmann@kde.org>
|
|
Date: Mon, 6 Dec 2021 18:12:46 +0000
|
|
Subject: [PATCH] improve installation of light fallback icons
|
|
|
|
icon install works now like this:
|
|
|
|
* collect all light icons
|
|
* install them just for light theme
|
|
|
|
* install dark icons
|
|
* install all missing ones from light theme we collected before
|
|
---
|
|
icons-dark/CMakeLists.txt | 45 +++++++++++----------------------------
|
|
icons/CMakeLists.txt | 18 ++++++----------
|
|
2 files changed, 20 insertions(+), 43 deletions(-)
|
|
|
|
diff --git a/icons-dark/CMakeLists.txt b/icons-dark/CMakeLists.txt
|
|
index 40590a8b..ab582c13 100644
|
|
--- a/icons-dark/CMakeLists.txt
|
|
+++ b/icons-dark/CMakeLists.txt
|
|
@@ -4,10 +4,6 @@ endif()
|
|
|
|
########### install files ###############
|
|
|
|
-set(breeze_icon_dark_dirs
|
|
- actions animations applets apps devices emblems
|
|
- mimetypes places status)
|
|
-
|
|
set(BREEZE_INSTALL_DIR ${KDE_INSTALL_FULL_ICONDIR}/breeze-dark)
|
|
|
|
if(WITH_ICON_GENERATION)
|
|
@@ -26,36 +22,21 @@ if(NOT WIN32)
|
|
endif()
|
|
|
|
if(NOT SKIP_INSTALL_ICONS)
|
|
- # In order to ensure the dark icons are copied over the light icons which
|
|
- # are installed into the dark theme for BUG:444095, we need to execute the
|
|
- # copy command ourselves rather than using CMake's internal copy mechanism
|
|
- # used by the normal install command, so we use CODE mode of install to
|
|
- # execute_process and print an appropriate status message.
|
|
- # See https://bugs.kde.org/show_bug.cgi?id=445489
|
|
- set(COPY_CMD "cp -a")
|
|
- set(XCOPY_ARGS "")
|
|
- if(WIN32)
|
|
- set(COPY_CMD "xcopy")
|
|
- set(XCOPY_ARGS "/q /e /y")
|
|
- endif(WIN32)
|
|
- install(CODE "cmake_policy(VERSION 3.6)
|
|
- foreach(CAT_DIR ${breeze_icon_dark_dirs})
|
|
- execute_process(COMMAND ${COPY_CMD} \${CAT_DIR} \$ENV{DESTDIR}${BREEZE_INSTALL_DIR} ${XCOPY_ARGS} ERROR_QUIET WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
- endforeach()
|
|
- file(GLOB_RECURSE ICON_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} LIST_DIRECTORIES false ${CMAKE_CURRENT_SOURCE_DIR}/*.svg)
|
|
- foreach(ICON_FILE IN LISTS ICON_FILES)
|
|
- message(STATUS \"Installing: \$ENV{DESTDIR}${BREEZE_INSTALL_DIR}/\${ICON_FILE}\")
|
|
- endforeach()")
|
|
+ file(GLOB_RECURSE icon_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*.svg")
|
|
+ foreach (icon_file ${icon_files})
|
|
+ install(FILES ${icon_file} DESTINATION ${BREEZE_INSTALL_DIR} RENAME ${icon_file})
|
|
+ endforeach()
|
|
+
|
|
+ # install for all missing icons the light icons as fallback
|
|
+ foreach (icon_file ${BREEZE_LIGHT_ICONS})
|
|
+ if (NOT ${icon_file} IN_LIST icon_files)
|
|
+ install(FILES ${CMAKE_SOURCE_DIR}/icons/${icon_file} DESTINATION ${BREEZE_INSTALL_DIR} RENAME ${icon_file})
|
|
+ endif()
|
|
+ endforeach()
|
|
+
|
|
install(FILES index.theme DESTINATION ${BREEZE_INSTALL_DIR})
|
|
if(WITH_ICON_GENERATION)
|
|
- install(CODE "cmake_policy(VERSION 3.6)
|
|
- foreach(GEN_DIR ${breeze_icon_dark_dirs})
|
|
- execute_process(COMMAND ${COPY_CMD} \${GEN_DIR} \$ENV{DESTDIR}${BREEZE_INSTALL_DIR} ${XCOPY_ARGS} ERROR_QUIET WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
|
- endforeach()
|
|
- file(GLOB_RECURSE ICON_FILES RELATIVE ${CMAKE_CURRENT_BINARY_DIR}/generated LIST_DIRECTORIES false ${CMAKE_CURRENT_BINARY_DIR}/generated/*.svg)
|
|
- foreach(ICON_FILE IN LISTS ICON_FILES)
|
|
- message(STATUS \"Installing: \$ENV{DESTDIR}${BREEZE_INSTALL_DIR}/\${ICON_FILE}\")
|
|
- endforeach()")
|
|
+ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated/ DESTINATION ${BREEZE_INSTALL_DIR})
|
|
endif()
|
|
endif()
|
|
|
|
diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt
|
|
index 220b81e9..8f31db4a 100644
|
|
--- a/icons/CMakeLists.txt
|
|
+++ b/icons/CMakeLists.txt
|
|
@@ -4,10 +4,6 @@ endif()
|
|
|
|
########### install files ###############
|
|
|
|
-set(breeze_icon_dirs
|
|
- actions animations applets apps categories preferences devices emblems
|
|
- emotes mimetypes places status)
|
|
-
|
|
set(BREEZE_INSTALL_DIR ${KDE_INSTALL_FULL_ICONDIR}/breeze)
|
|
|
|
if(WITH_ICON_GENERATION)
|
|
@@ -26,17 +22,17 @@ if(NOT WIN32)
|
|
endif()
|
|
|
|
if(NOT SKIP_INSTALL_ICONS)
|
|
- install(DIRECTORY ${breeze_icon_dirs} DESTINATION ${BREEZE_INSTALL_DIR})
|
|
+ # collect all our icons we need to install, will be used by dark icon set as fallback icons if not there, too
|
|
+ file(GLOB_RECURSE icon_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*.svg")
|
|
+ set(BREEZE_LIGHT_ICONS ${icon_files} PARENT_SCOPE)
|
|
+ foreach (icon_file ${icon_files})
|
|
+ install(FILES ${icon_file} DESTINATION ${BREEZE_INSTALL_DIR} RENAME ${icon_file})
|
|
+ endforeach()
|
|
+
|
|
install(FILES index.theme DESTINATION ${BREEZE_INSTALL_DIR})
|
|
if(WITH_ICON_GENERATION)
|
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated/ DESTINATION ${BREEZE_INSTALL_DIR})
|
|
endif()
|
|
-
|
|
- # Install the colored icon sizes into breeze-dark theme as well, to ensure
|
|
- # that icons are available on alternate environments which do not support
|
|
- # colorized symbolic icons which are not named as "-symbolic"
|
|
- # NOTE: icons-dark will install /some/ files over top of these
|
|
- install(DIRECTORY ${breeze_icon_dirs} DESTINATION ${BREEZE_INSTALL_DIR}-dark)
|
|
endif()
|
|
|
|
gtk_update_icon_cache(${BREEZE_INSTALL_DIR})
|
|
--
|
|
GitLab
|
|
|