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