summaryrefslogtreecommitdiffstats
path: root/source/kde/kde/patch/breeze-icons/250a7d0bbe6dd8e7d2e7cba4cc82a2d8cce37cf1.patch
blob: 9fb7e5592ce5e66b8a3be7ddc90be1db171c3ef0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
From 250a7d0bbe6dd8e7d2e7cba4cc82a2d8cce37cf1 Mon Sep 17 00:00:00 2001
From: Rodney Dawes <dobey.pwns@gmail.com>
Date: Mon, 15 Nov 2021 10:47:54 -0500
Subject: [PATCH] Install dark icons via execute_process to use copy command

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.

BUG: 445489
---
 icons-dark/CMakeLists.txt | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/icons-dark/CMakeLists.txt b/icons-dark/CMakeLists.txt
index d14bdba5..40590a8b 100644
--- a/icons-dark/CMakeLists.txt
+++ b/icons-dark/CMakeLists.txt
@@ -26,10 +26,36 @@ if(NOT WIN32)
 endif()
 
 if(NOT SKIP_INSTALL_ICONS)
-    install(DIRECTORY ${breeze_icon_dark_dirs} DESTINATION ${BREEZE_INSTALL_DIR})
+    # 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()")
     install(FILES index.theme DESTINATION ${BREEZE_INSTALL_DIR})
     if(WITH_ICON_GENERATION)
-        install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated/ DESTINATION ${BREEZE_INSTALL_DIR})
+        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()")
     endif()
 endif()
 
-- 
GitLab