summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/Glib.cmake23
1 files changed, 12 insertions, 11 deletions
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()