2
COMPIZ_DISABLE_SCHEMAS_INSTALL
3
"Disables gsettings schema installation"
9
"Generate GSettings schemas"
14
COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR ${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR} CACHE PATH
15
"Installation path of the gsettings schema file"
18
macro (compiz_gsettings_prepare_install_dirs)
20
if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
21
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
22
set (PLUGIN_SCHEMADIR "${datadir}/glib-2.0/schemas/")
23
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
24
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
25
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
27
elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
28
"$ENV{BUILD_GLOBAL}" STREQUAL "true")
29
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
30
set (PLUGIN_SCHEMADIR "${COMPIZ_PREFIX}/share/glib-2.0/schemas/")
31
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
32
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
33
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
35
else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
36
"$ENV{BUILD_GLOBAL}" STREQUAL "true")
38
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
39
set (PLUGIN_SCHEMADIR "$ENV{HOME}/.config/compiz-1/gsettings/schemas")
40
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
41
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
42
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
44
endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
45
endmacro (compiz_gsettings_prepare_install_dirs)
47
function (compiz_install_gsettings_schema _src _dst)
48
find_program (PKG_CONFIG_TOOL pkg-config)
49
find_program (GLIB_COMPILE_SCHEMAS glib-compile-schemas)
50
mark_as_advanced (FORCE PKG_CONFIG_TOOL)
52
# find out where schemas need to go if we are installing them systemwide
53
execute_process (COMMAND ${PKG_CONFIG_TOOL} glib-2.0 --variable prefix OUTPUT_VARIABLE GSETTINGS_GLIB_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
54
SET (GSETTINGS_GLOBAL_INSTALL_DIR "${GSETTINGS_GLIB_PREFIX}/share/glib-2.0/schemas/")
58
GLIB_COMPILE_SCHEMAS AND NOT
59
COMPIZ_DISABLE_SCHEMAS_INSTALL)
61
if (\"$ENV{USER}\"\ STREQUAL \"root\")
62
message (\"-- Installing GSettings schemas ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
63
file (INSTALL DESTINATION \"${GSETTINGS_GLOBAL_INSTALL_DIR}\"
66
message (\"-- Recompiling GSettings schemas in ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
67
execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${GSETTINGS_GLOBAL_INSTALL_DIR})
69
else (\"$ENV{USER}\"\ STREQUAL \"root\"\)
70
# It seems like this is only available in CMake > 2.8.5
71
# but hardly anybody has that, so comment out this warning for now
72
# string (FIND $ENV{XDG_DATA_DIRS} \"${COMPIZ_DESTDIR}${_dst}\" XDG_INSTALL_PATH)
73
# if (NOT XDG_INSTALL_PATH)
74
message (\"[WARNING]: Installing GSettings schemas to a custom location that might not be in XDG_DATA_DIRS, you need to add ${COMPIZ_DESTDIR}${_dst} to your XDG_DATA_DIRS in order for GSettings schemas to be found!\"\)
75
# endif (NOT XDG_INSTALL_PATH)
76
message (\"-- Installing GSettings schemas to ${COMPIZ_DESTDIR}${_dst}\"\)
77
file (INSTALL DESTINATION \"${COMPIZ_DESTDIR}${_dst}\"
80
message (\"-- Recompiling GSettings schemas in ${COMPIZ_DESTDIR}${_dst}\"\)
81
execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${COMPIZ_DESTDIR}${_dst})
82
endif (\"$ENV{USER}\" STREQUAL \"root\"\)
87
# generate gsettings schema
88
find_program (XSLTPROC_EXECUTABLE xsltproc)
89
mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
91
if (XSLTPROC_EXECUTABLE AND USE_GSETTINGS)
92
compiz_gsettings_prepare_install_dirs ()
95
OUTPUT "${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml"
96
COMMAND ${XSLTPROC_EXECUTABLE}
97
-o "${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml"
98
${COMPIZ_GSETTINGS_SCHEMAS_XSLT}
99
${COMPIZ_CURRENT_XML_FILE}
100
DEPENDS ${COMPIZ_CURRENT_XML_FILE}
102
compiz_install_gsettings_schema ("${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml" ${PLUGIN_SCHEMADIR})
103
list (APPEND COMPIZ_CURRENT_SOURCES_ADDS ${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml)