Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorFabian Müller <fmueller@owncloud.com>2021-07-23 17:58:45 +0300
committerHannah von Reth <vonreth@kde.org>2021-07-28 16:47:20 +0300
commitd606e003b62382948c1b768ec81f4b0d37cf42a3 (patch)
treecf23238b36d3c64c659170f76e92108ab9871a37 /cmake
parent2b5b9efa8b2b0495765451794857a5f7936e1127 (diff)
Refactor resource bundling
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/OCBundleResources.cmake76
1 files changed, 55 insertions, 21 deletions
diff --git a/cmake/modules/OCBundleResources.cmake b/cmake/modules/OCBundleResources.cmake
index 39d04b82f..8d6053fdc 100644
--- a/cmake/modules/OCBundleResources.cmake
+++ b/cmake/modules/OCBundleResources.cmake
@@ -1,4 +1,26 @@
-function(__addIcon THEME ICON_NAME)
+function(__add_file_to_qrc_file)
+ set(options "")
+ set(oneValueArgs QRC_PATH FILE_PATH ALIAS)
+ set(multiValueArgs)
+ cmake_parse_arguments(__ADD_FILE_TO_QRC_FILE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ foreach(param QRC_PATH FILE_PATH)
+ if(NOT __ADD_FILE_TO_QRC_FILE_${param})
+ message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION}: Argument missing: ${param}")
+ endif()
+ endforeach()
+
+ set(line "<file ")
+ if(__ADD_FILE_TO_QRC_FILE_ALIAS)
+ set(line "${line} alias=\"${__ADD_FILE_TO_QRC_FILE_ALIAS}\"")
+ endif()
+ set(line "${line}>${__ADD_FILE_TO_QRC_FILE_FILE_PATH}</file>")
+
+ file(APPEND ${__ADD_FILE_TO_QRC_FILE_QRC_PATH} " ${line}\n")
+endfunction()
+
+
+function(__addIcon QRC_PATH THEME ICON_NAME)
set(options)
set(oneValueArgs SRC_PATH)
set(multiValueArgs)
@@ -11,19 +33,27 @@ function(__addIcon THEME ICON_NAME)
set(icon "theme/${_ICON_SRC_PATH}/${ICON_NAME}.svg")
set(iconAlias "${APPLICATION_SHORTNAME}/theme/${THEME}/${ICON_NAME}.svg")
if (EXISTS ${OEM_THEME_DIR}/${icon})
- file(APPEND "${QRC}" "<file alias=\"${iconAlias}\">${OEM_THEME_DIR}/${icon}</file>\n")
+ file(APPEND "${QRC_PATH}" "<file alias=\"${iconAlias}\">${OEM_THEME_DIR}/${icon}</file>\n")
else()
set(icon "theme/${_ICON_SRC_PATH}/${ICON_NAME}.png")
set(iconAlias "${APPLICATION_SHORTNAME}/theme/${THEME}/${ICON_NAME}.png")
if (EXISTS ${OEM_THEME_DIR}/${icon})
- file(APPEND "${QRC}" "<file alias=\"${iconAlias}\">${OEM_THEME_DIR}/${icon}</file>\n")
+ __add_file_to_qrc_file(
+ QRC_PATH ${QRC_PATH}
+ FILE_PATH ${OEM_THEME_DIR}/${icon}
+ FILE_ALIAS ${iconAlias}
+ )
else()
set(SIZES "16;22;32;48;64;128;256;512;1024")
foreach(size ${SIZES})
set(icon "theme/${_ICON_SRC_PATH}/${ICON_NAME}-${size}.png")
set(iconAlias "${APPLICATION_SHORTNAME}/theme/${THEME}/${ICON_NAME}-${size}.png")
if (EXISTS ${OEM_THEME_DIR}/${icon})
- file(APPEND "${QRC}" "<file alias=\"${iconAlias}\">${OEM_THEME_DIR}/${icon}</file>\n")
+ __add_file_to_qrc_file(
+ QRC_PATH ${QRC_PATH}
+ FILE_PATH ${OEM_THEME_DIR}/${icon}
+ FILE_ALIAS ${iconAlias}
+ )
endif()
endforeach()
endif()
@@ -35,27 +65,31 @@ function(__write_qrc_file_header QRC_PATH FILES_PREFIX)
file(APPEND ${QRC_PATH} " <qresource prefix=\"/client/\">\n")
endfunction()
-function(__write_qrc_file_footer QRC)
- file(APPEND ${QRC} " </qresource>\n")
- file(APPEND ${QRC} "</RCC>\n")
+function(__write_qrc_file_footer QRC_PATH)
+ file(APPEND ${QRC_PATH} " </qresource>\n")
+ file(APPEND ${QRC_PATH} "</RCC>\n")
endfunction()
function(generate_theme TARGET OWNCLOUD_SIDEBAR_ICONS_OUT)
if(NOT "${OEM_THEME_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
- set(QRC ${CMAKE_BINARY_DIR}/theme.qrc)
- __write_qrc_file_header(${QRC} theme)
- __addIcon("universal" "${APPLICATION_ICON_NAME}-icon" SRC_PATH "colored")
- __addIcon("universal" "wizard_logo" SRC_PATH "colored")
+ set(QRC_PATH ${CMAKE_CURRENT_BINARY_DIR}/theme.qrc)
+ __write_qrc_file_header(${QRC_PATH} theme)
+
+ __addIcon(${QRC_PATH} "universal" "${APPLICATION_ICON_NAME}-icon" SRC_PATH "colored")
+ __addIcon(${QRC_PATH} "universal" "wizard_logo" SRC_PATH "colored")
set(STATES "ok;error;information;offline;pause;sync")
set(THEMES "colored;dark;black;white")
foreach(theme ${THEMES})
foreach(state ${STATES})
- __addIcon(${theme} "state-${state}")
+ __addIcon(${QRC_PATH} ${theme} "state-${state}")
endforeach()
endforeach()
- __write_qrc_file_footer(${QRC})
- target_sources(${TARGET} PRIVATE ${QRC})
+
+ __write_qrc_file_footer(${QRC_PATH})
+
+ target_sources(${TARGET} PRIVATE ${QRC_PATH})
+
# add executable icon on windows and osx
file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${OEM_THEME_DIR}/theme/colored/*-${APPLICATION_ICON_NAME}-sidebar.png")
else()
@@ -92,14 +126,14 @@ function(generate_qrc_file)
__write_qrc_file_header(${GENERATE_QRC_FILE_QRC_PATH} ${GENERATE_QRC_FILE_PREFIX})
- foreach(file ${FILES})
+ foreach(file ${GENERATE_QRC_FILE_FILES})
get_filename_component(file_name ${file} NAME)
- if(PREFIX)
- set(file_alias ${PREFIX}/${file_name})
- elseif()
- set(file_alias ${file_name})
- endif()
- file(APPEND ${GENERATE_QRC_FILE_QRC_PATH} " <file alias=\"${file_alias}\">${file}</file>\n")
+ set(file_alias ${GENERATE_QRC_FILE_PREFIX}/${file_name})
+ __add_file_to_qrc_file(
+ QRC_PATH ${GENERATE_QRC_FILE_QRC_PATH}
+ FILE_PATH ${file}
+ ALIAS ${file_alias}
+ )
endforeach()
__write_qrc_file_footer(${GENERATE_QRC_FILE_QRC_PATH})