summaryrefslogtreecommitdiff
path: root/cmake/Modules/GlibCompileResources.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/GlibCompileResources.cmake')
-rw-r--r--cmake/Modules/GlibCompileResources.cmake85
1 files changed, 0 insertions, 85 deletions
diff --git a/cmake/Modules/GlibCompileResources.cmake b/cmake/Modules/GlibCompileResources.cmake
deleted file mode 100644
index f718cac..0000000
--- a/cmake/Modules/GlibCompileResources.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
-# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
-# SPDX-License-Identifier: LGPL-2.1-only
-
-find_program(GLIB_COMPILE_RESOURCES
- NAMES "glib-compile-resources"
- REQUIRED
-)
-
-function(target_add_glib_resources TARGET)
- set(SINGLE_VALUE_ARGS "NAME" "PREFIX" "WORKING_DIRECTORY")
- set(MULTI_VALUE_ARGS "CSS_FILES" "XML_FILES")
- cmake_parse_arguments(
- PARSE_ARGV 1
- ""
- "${OPTIONS}"
- "${SINGLE_VALUE_ARGS}"
- "${MULTI_VALUE_ARGS}"
- )
-
- # Sanity Checks
-
- if(NOT TARGET "${TARGET}")
- message(FATAL_ERROR "Target '${TARGET}' does not exist")
- endif()
-
- if(NOT _NAME)
- set(_NAME "${TARGET}")
- endif()
-
- if(NOT _PREFIX)
- message(FATAL_ERROR "Glib resource prefix not defined")
- endif()
-
- if(NOT _WORKING_DIRECTORY)
- set(_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
- endif()
-
- # File Names
-
- set(GLIB_RESOURCE_C_FILE "${CMAKE_CURRENT_BINARY_DIR}/${_NAME}.gresource.c")
- set(GLIB_RESOURCE_MANIFEST "${CMAKE_CURRENT_BINARY_DIR}/${_NAME}.gresource.xml")
-
- # Manifest File
-
- foreach(XML_FILE IN LISTS _XML_FILES)
- string(APPEND GLIB_RESOURCE_FILES " <file compressed=\"true\" preprocess=\"xml-stripblanks\">${XML_FILE}</file>\n")
- endforeach()
-
- foreach(CSS_FILE IN LISTS _CSS_FILES)
- string(APPEND GLIB_RESOURCE_FILES " <file compressed=\"true\">${CSS_FILE}</file>\n")
- endforeach()
-
- string(STRIP "${GLIB_RESOURCE_FILES}" GLIB_RESOURCE_FILES)
- set(GLIB_RESOURCE_PREFIX "${_PREFIX}")
- configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/GlibCompileResources.in"
- "${GLIB_RESOURCE_MANIFEST}"
- )
-
- # Source Generation
-
- foreach(FILE IN LISTS _CSS_FILES _XML_FILES)
- list(APPEND _DEPS "${_WORKING_DIRECTORY}/${FILE}")
- endforeach()
-
-
- add_custom_command(OUTPUT "${GLIB_RESOURCE_C_FILE}"
- WORKING_DIRECTORY "${_WORKING_DIRECTORY}"
- COMMAND "${GLIB_COMPILE_RESOURCES}"
- ARGS
- "--target=${GLIB_RESOURCE_C_FILE}"
- "--generate-source"
- "--internal"
- "${GLIB_RESOURCE_MANIFEST}"
- VERBATIM
- MAIN_DEPENDENCY "${GLIB_RESOURCE_MANIFEST}"
- DEPENDS
- ${_DEPS}
- )
-
- # Target Inclusion
-
- target_sources("${TARGET}" PRIVATE
- "${GLIB_RESOURCE_C_FILE}"
- )
-endfunction()