blob: 9fb7e5592ce5e66b8a3be7ddc90be1db171c3ef0 (
plain) (
tree)
|
|
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
|