From a92eaa4c1bffc97db037328249b52a0740651a07 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 28 May 2025 20:30:10 +0200 Subject: gui: reintroduce settings schemas --- cmake/Modules/Glib.cmake | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'cmake') diff --git a/cmake/Modules/Glib.cmake b/cmake/Modules/Glib.cmake index 0e5ab61..8707f06 100644 --- a/cmake/Modules/Glib.cmake +++ b/cmake/Modules/Glib.cmake @@ -192,6 +192,10 @@ function(glib_add_schemas TARGET) message(FATAL_ERROR "Glib: Target '${TARGET}' does not exist") endif() + if(NOT _SCHEMA_DIR) + set(_SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + endif() + if(NOT IS_ABSOLUTE "${_SCHEMA_DIR}") get_filename_component(_SCHEMA_DIR "${_SCHEMA_DIR}" REALPATH) endif() @@ -200,24 +204,21 @@ function(glib_add_schemas TARGET) message(FATAL_ERROR "Glib: Directory '${_SCHEMA_DIR}' does not exists") endif() - file(GLOB SCHAMA_FILES CONFIGURE_DEPENDS "${_SCHEMA_DIR}/*.gschema.xml") + file(GLOB SCHEMA_FILES CONFIGURE_DEPENDS "${_SCHEMA_DIR}/*.gschema.xml") - add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/glib-2.0/schemas/gschemas.compiled" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + set(OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/glib-2.0/schemas") + set(OUTPUT_FILE "${OUTPUT_DIRECTORY}/gschemas.compiled") + + add_custom_command(OUTPUT "${OUTPUT_FILE}" COMMAND "${GLIB_COMPILE_SCHEMAS_BIN}" - ARGS - "--targetdir=${CMAKE_CURRENT_BINARY_DIR}/glib-2.0/schemas" + "--targetdir=${OUTPUT_DIRECTORY}" "--strict" "${_SCHEMA_DIR}" - VERBATIM COMMENT "Compiling gsettings schemas" - DEPENDS - ${SCHEMA_FILES} + DEPENDS ${SCHEMA_FILES} ) - add_custom_target("${TARGET}_schemas" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/glib-2.0/schemas/gschemas.compiled") - - add_dependencies("${TARGET}" "${TARGET}_schemas") + target_sources("${TARGET}" PRIVATE "${OUTPUT_DIRECTORY}/gschemas.compiled") endfunction() -- cgit v1.2.3