summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/GlibCompileResources.cmake16
1 files changed, 12 insertions, 4 deletions
diff --git a/cmake/Modules/GlibCompileResources.cmake b/cmake/Modules/GlibCompileResources.cmake
index d327e7e..8d10c1a 100644
--- a/cmake/Modules/GlibCompileResources.cmake
+++ b/cmake/Modules/GlibCompileResources.cmake
@@ -4,7 +4,7 @@ find_program(GLIB_COMPILE_RESOURCES
)
function(target_add_glib_resources TARGET)
- set(SINGLE_VALUE_ARGS "PREFIX")
+ set(SINGLE_VALUE_ARGS "PREFIX" "WORKING_DIRECTORY")
set(MULTI_VALUE_ARGS "CSS_FILES" "UI_FILES")
cmake_parse_arguments(
PARSE_ARGV 1
@@ -24,6 +24,10 @@ function(target_add_glib_resources TARGET)
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}/${TARGET}.gresource.c")
@@ -47,8 +51,13 @@ function(target_add_glib_resources TARGET)
# Source Generation
+ foreach(FILE IN LISTS _CSS_FILES _UI_FILES)
+ list(APPEND _DEPS "${_WORKING_DIRECTORY}/${FILE}")
+ endforeach()
+
+
add_custom_command(OUTPUT "${GLIB_RESOURCE_C_FILE}"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ WORKING_DIRECTORY "${_WORKING_DIRECTORY}"
COMMAND "${GLIB_COMPILE_RESOURCES}"
ARGS
"--target=${GLIB_RESOURCE_C_FILE}"
@@ -58,8 +67,7 @@ function(target_add_glib_resources TARGET)
VERBATIM
MAIN_DEPENDENCY "${GLIB_RESOURCE_MANIFEST}"
DEPENDS
- ${_CSS_FILES}
- ${_UI_FILES}
+ ${_DEPS}
)
# Target Inclusion