diff options
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/Modules/GlibCompileResources.cmake | 16 |
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 |
