Commit 250a7d0b authored by Rodney Dawes's avatar Rodney Dawes
Browse files

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
parent f183e149
Pipeline #104948 passed with stage
in 1 minute and 13 seconds
......@@ -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()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment