aboutsummaryrefslogtreecommitdiff
path: root/cmake/GSettings.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/GSettings.cmake')
-rw-r--r--cmake/GSettings.cmake108
1 files changed, 0 insertions, 108 deletions
diff --git a/cmake/GSettings.cmake b/cmake/GSettings.cmake
deleted file mode 100644
index 5902baa..0000000
--- a/cmake/GSettings.cmake
+++ /dev/null
@@ -1,108 +0,0 @@
-# GSettings.cmake
-# Originally based on CMake macros written for Marlin
-# Updated by Yorba for newer versions of GLib.
-#
-# NOTE: This module does an in-place compilation of GSettings; the
-# resulting gschemas.compiled file will end up in the same
-# source folder as the original schema(s).
-
-option(GSETTINGS_COMPILE "Compile GSettings schemas. Can be disabled for packaging reasons." ON)
-option(GSETTINGS_COMPILE_IN_PLACE "Compile GSettings schemas in the build folder. This is used for running an appliction without installing the GSettings systemwide. The application will need to set GSETTINGS_SCHEMA_DIR" ON)
-
-if (GSETTINGS_COMPILE)
- message(STATUS "GSettings schemas will be compiled.")
-endif ()
-
-if (GSETTINGS_COMPILE_IN_PLACE)
- message(STATUS "GSettings schemas will be compiled in-place.")
-endif ()
-
-macro(add_schemas GSETTINGS_TARGET SCHEMA_DIRECTORY)
- set(PKG_CONFIG_EXECUTABLE pkg-config)
-
- # Locate all schema files.
- file(GLOB all_schema_files
- "${SCHEMA_DIRECTORY}/*.gschema.xml"
- )
-
- # Find the GLib path for schema installation
- execute_process(
- COMMAND
- ${PKG_CONFIG_EXECUTABLE}
- glib-2.0
- --variable prefix
- OUTPUT_VARIABLE
- _glib_prefix
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-
- set(GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/" CACHE INTERNAL "")
-
- # Fetch path for schema compiler from pkg-config
- execute_process(
- COMMAND
- ${PKG_CONFIG_EXECUTABLE}
- gio-2.0
- --variable
- glib_compile_schemas
- OUTPUT_VARIABLE
- _glib_compile_schemas
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-
- set(glib_schema_compiler ${_glib_compile_schemas} CACHE INTERNAL "")
-
- if (GSETTINGS_COMPILE_IN_PLACE)
- set(COMPILE_IN_PLACE_DIR ${CMAKE_BINARY_DIR}/gsettings)
- add_custom_command(
- TARGET
- ${GSETTINGS_TARGET}
- COMMAND
- ${CMAKE_COMMAND} -E make_directory "${COMPILE_IN_PLACE_DIR}"
- )
-
- # Copy all schemas to the build folder.
- foreach(schema_file ${all_schema_files})
- add_custom_command(
- TARGET
- ${GSETTINGS_TARGET}
- COMMAND
- ${CMAKE_COMMAND} -E copy "${schema_file}" "${COMPILE_IN_PLACE_DIR}"
- COMMENT "Copying schema ${schema_file} to ${COMPILE_IN_PLACE_DIR}"
- )
- endforeach()
-
- # Compile schema in-place.
- add_custom_command(
- TARGET
- ${GSETTINGS_TARGET}
- COMMAND
- ${glib_schema_compiler} ${COMPILE_IN_PLACE_DIR}
- COMMENT "Compiling schemas in folder: ${COMPILE_IN_PLACE_DIR}"
- )
- endif ()
-
- # Install and recompile schemas
- message(STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}")
-
- install(
- FILES
- ${all_schema_files}
- DESTINATION
- ${GSETTINGS_DIR}
- OPTIONAL
- )
-
- if (GSETTINGS_COMPILE)
- install(
- CODE
- "message (STATUS \"Compiling GSettings schemas\")"
- )
-
- install(
- CODE
- "execute_process (COMMAND ${glib_schema_compiler} ${GSETTINGS_DIR})"
- )
- endif ()
-endmacro(add_schemas)
-