2
COMPIZ_DISABLE_SCHEMAS_INSTALL
3
"Disables gsettings schema installation"
8
COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR ${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR} CACHE PATH
9
"Installation path of the gsettings schema file"
12
macro (compiz_gsettings_prepare_install_dirs)
14
if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
15
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
16
set (PLUGIN_SCHEMADIR "${datadir}/glib-2.0/schemas/")
17
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
18
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
19
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
21
elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
22
"$ENV{BUILD_GLOBAL}" STREQUAL "true")
23
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
24
set (PLUGIN_SCHEMADIR "${COMPIZ_PREFIX}/share/glib-2.0/schemas/")
25
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
26
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
27
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
29
else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
30
"$ENV{BUILD_GLOBAL}" STREQUAL "true")
32
if (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
33
set (PLUGIN_SCHEMADIR "$ENV{HOME}/.config/compiz-1/gsettings/schemas")
34
else (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
35
set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR}")
36
endif (NOT COMPIZ_INSTALL_GSETTINGS_SCHEMA_DIR)
38
endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
39
endmacro (compiz_gsettings_prepare_install_dirs)
41
function (compiz_install_gsettings_schema _src _dst)
42
find_program (PKG_CONFIG_TOOL pkg-config)
43
find_program (GLIB_COMPILE_SCHEMAS glib-compile-schemas)
44
mark_as_advanced (FORCE PKG_CONFIG_TOOL)
46
# find out where schemas need to go if we are installing them systemwide
47
execute_process (COMMAND ${PKG_CONFIG_TOOL} glib-2.0 --variable prefix OUTPUT_VARIABLE GSETTINGS_GLIB_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
48
SET (GSETTINGS_GLOBAL_INSTALL_DIR "${GSETTINGS_GLIB_PREFIX}/share/glib-2.0/schemas/")
50
if (PKG_CONFIG_TOOL AND GLIB_COMPILE_SCHEMAS AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
52
if (\"$ENV{USER}\"\ STREQUAL \"root\")
53
message (\"-- Installing GSettings schemas ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
54
file (INSTALL DESTINATION \"${GSETTINGS_GLOBAL_INSTALL_DIR}\"
57
message (\"-- Recompiling GSettings schemas in ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
58
execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${GSETTINGS_GLOBAL_INSTALL_DIR})
60
else (\"$ENV{USER}\"\ STREQUAL \"root\"\)
61
# It seems like this is only available in CMake > 2.8.5
62
# but hardly anybody has that, so comment out this warning for now
63
# string (FIND $ENV{XDG_DATA_DIRS} \"${COMPIZ_DESTDIR}${_dst}\" XDG_INSTALL_PATH)
64
# if (NOT XDG_INSTALL_PATH)
65
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!\"\)
66
# endif (NOT XDG_INSTALL_PATH)
67
message (\"-- Installing GSettings schemas to ${COMPIZ_DESTDIR}${_dst}\"\)
68
file (INSTALL DESTINATION \"${COMPIZ_DESTDIR}${_dst}\"
71
message (\"-- Recompiling GSettings schemas in ${COMPIZ_DESTDIR}${_dst}\"\)
72
execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${COMPIZ_DESTDIR}${_dst})
73
endif (\"$ENV{USER}\" STREQUAL \"root\"\)
78
# generate gsettings schema
79
find_program (XSLTPROC_EXECUTABLE xsltproc)
80
mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
82
if (XSLTPROC_EXECUTABLE)
83
compiz_gsettings_prepare_install_dirs ()
86
OUTPUT "${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml"
87
COMMAND ${XSLTPROC_EXECUTABLE}
88
-o "${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml"
89
${COMPIZ_GSETTINGS_SCHEMAS_XSLT}
90
${COMPIZ_CURRENT_XML_FILE}
91
DEPENDS ${COMPIZ_CURRENT_XML_FILE}
93
compiz_install_gsettings_schema ("${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml" ${PLUGIN_SCHEMADIR})
94
list (APPEND COMPIZ_CURRENT_SOURCES_ADDS ${CMAKE_BINARY_DIR}/generated/org.freedesktop.compiz.${COMPIZ_CURRENT_PLUGIN}.gschema.xml)