~timo-jyrinki/compiz/ubuntu

« back to all changes in this revision

Viewing changes to cmake/CompizGSettings.cmake

  • Committer: timo.jyrinki at canonical
  • Date: 2012-07-11 11:37:48 UTC
  • mfrom: (3248.2.3)
  • Revision ID: timo.jyrinki@canonical.com-20120711113748-rgpsga832m79q892
ImportĀ upstreamĀ versionĀ 0.9.8+bzr3284

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
    "Installation path of the gsettings schema file"
16
16
)
17
17
 
 
18
# Detect global schemas install dir
 
19
find_program (PKG_CONFIG_TOOL pkg-config)
 
20
 
 
21
get_property (GSETTINGS_GLOBAL_INSTALL_DIR_SET
 
22
              GLOBAL
 
23
              PROPERTY GSETTINGS_GLOBAL_INSTALL_DIR
 
24
              SET)
 
25
 
 
26
if (PKG_CONFIG_TOOL AND NOT GSETTINGS_GLOBAL_INSTALL_DIR_SET)
 
27
 
 
28
    mark_as_advanced (FORCE PKG_CONFIG_TOOL)
 
29
 
 
30
    # find out where schemas need to go if we are installing them systemwide
 
31
    execute_process (COMMAND ${PKG_CONFIG_TOOL} glib-2.0 --variable prefix  OUTPUT_VARIABLE GSETTINGS_GLIB_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
 
32
    set (GSETTINGS_GLOBAL_INSTALL_DIR "${GSETTINGS_GLIB_PREFIX}/share/glib-2.0/schemas/")
 
33
 
 
34
    set_property (GLOBAL
 
35
                  PROPERTY GSETTINGS_GLOBAL_INSTALL_DIR
 
36
                  ${GSETTINGS_GLOBAL_INSTALL_DIR})
 
37
 
 
38
endif (PKG_CONFIG_TOOL AND NOT GSETTINGS_GLOBAL_INSTALL_DIR_SET)
 
39
 
 
40
function (compiz_add_install_recompile_gsettings_schemas _schemadir_user)
 
41
 
 
42
    get_property (GSETTINGS_GLOBAL_INSTALL_DIR_SET
 
43
                  GLOBAL
 
44
                  PROPERTY GSETTINGS_GLOBAL_INSTALL_DIR
 
45
                  SET)
 
46
 
 
47
    if (GSETTINGS_GLOBAL_INSTALL_DIR_SET)
 
48
 
 
49
        get_property (GSETTINGS_GLOBAL_INSTALL_DIR
 
50
                      GLOBAL
 
51
                      PROPERTY GSETTINGS_GLOBAL_INSTALL_DIR)
 
52
 
 
53
        # Recompile GSettings Schemas
 
54
        install (CODE "
 
55
                 execute_process (COMMAND cmake -DSCHEMADIR_USER=${_schemadir_user} -DSCHEMADIR_ROOT=${GSETTINGS_GLOBAL_INSTALL_DIR} -P ${compiz_SOURCE_DIR}/cmake/recompile_gsettings_schemas_in_dir_user_env.cmake)
 
56
                 ")
 
57
 
 
58
    endif (GSETTINGS_GLOBAL_INSTALL_DIR_SET)
 
59
 
 
60
endfunction (compiz_add_install_recompile_gsettings_schemas)
 
61
 
18
62
function (compiz_install_gsettings_schema _src _dst)
19
63
    find_program (PKG_CONFIG_TOOL pkg-config)
20
64
    find_program (GLIB_COMPILE_SCHEMAS glib-compile-schemas)
28
72
        GLIB_COMPILE_SCHEMAS AND NOT
29
73
        COMPIZ_DISABLE_SCHEMAS_INSTALL AND
30
74
        USE_GSETTINGS)
 
75
 
 
76
        # Install schema file
31
77
        install (CODE "
32
 
                message (\"$ENV{USER} is the username in use right now\")
33
 
                if (\"$ENV{USER}\"\ STREQUAL \"root\")
34
 
                    message (\"-- Installing GSettings schemas ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
35
 
                    file (INSTALL DESTINATION \"${GSETTINGS_GLOBAL_INSTALL_DIR}\"
36
 
                          TYPE FILE
37
 
                          FILES \"${_src}\")
38
 
                    message (\"-- Recompiling GSettings schemas in ${GSETTINGS_GLOBAL_INSTALL_DIR}\"\)
39
 
                    execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${GSETTINGS_GLOBAL_INSTALL_DIR})
40
 
 
41
 
                else (\"$ENV{USER}\"\ STREQUAL \"root\"\)
42
 
                    # It seems like this is only available in CMake > 2.8.5
43
 
                    # but hardly anybody has that, so comment out this warning for now
44
 
                    # string (FIND $ENV{XDG_DATA_DIRS} \"${_dst}\" XDG_INSTALL_PATH)
45
 
                    # if (NOT XDG_INSTALL_PATH)
46
 
                    #   message (\"[WARNING]: Installing GSettings schemas to directory that is not in XDG_DATA_DIRS, you need to add ${_dst} to your XDG_DATA_DIRS in order for GSettings schemas to be found!\"\)
47
 
                    # endif (NOT XDG_INSTALL_PATH)
48
 
                    message (\"-- Installing GSettings schemas to ${_dst}\"\)
49
 
                    file (INSTALL DESTINATION \"${_dst}\"
50
 
                          TYPE FILE
51
 
                          FILES \"${_src}\")
52
 
                    message (\"-- Recompiling GSettings schemas in ${_dst}\"\)
53
 
                    execute_process (COMMAND ${GLIB_COMPILE_SCHEMAS} ${_dst})
54
 
                endif (\"$ENV{USER}\" STREQUAL \"root\"\)
55
 
                ")
56
 
    endif ()
 
78
                 execute_process (COMMAND cmake -DFILE=${_src} -DINSTALLDIR_USER=${_dst} -DINSTALLDIR_ROOT=${GSETTINGS_GLOBAL_INSTALL_DIR} -P ${compiz_SOURCE_DIR}/cmake/copy_file_install_user_env.cmake)
 
79
                 ")
 
80
 
 
81
        get_property (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE_SET
 
82
                      GLOBAL
 
83
                      PROPERTY COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE
 
84
                      SET)
 
85
 
 
86
        if (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE_SET)
 
87
 
 
88
            get_property (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE
 
89
                          GLOBAL
 
90
                          PROPERTY COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE)
 
91
 
 
92
        else (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE_SET)
 
93
 
 
94
            set (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE FALSE)
 
95
 
 
96
        endif (COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE_SET)
 
97
 
 
98
        if (NOT COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE)
 
99
            compiz_add_install_recompile_gsettings_schemas (${_dst} ${GSETTINGS_GLOBAL_INSTALL_DIR})
 
100
        endif (NOT COMPIZ_INHIBIT_ADD_INSTALL_RECOMPILE_RULE)
 
101
 
 
102
    endif (PKG_CONFIG_TOOL AND
 
103
           GLIB_COMPILE_SCHEMAS AND NOT
 
104
           COMPIZ_DISABLE_SCHEMAS_INSTALL AND
 
105
           USE_GSETTINGS)
 
106
endfunction ()
 
107
 
 
108
function (add_gsettings_schema_to_recompilation_list _target_name_for_schema)
 
109
 
 
110
    get_property (GSETTINGS_LOCAL_COMPILE_TARGET_SET
 
111
                  GLOBAL
 
112
                  PROPERTY GSETTINGS_LOCAL_COMPILE_TARGET_SET
 
113
                  SET)
 
114
 
 
115
    if (NOT GSETTINGS_LOCAL_COMPILE_TARGET_SET)
 
116
 
 
117
        add_custom_command (OUTPUT ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/gschemas.compiled
 
118
                           COMMAND ${GLIB_COMPILE_SCHEMAS} --targetdir=${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/
 
119
                           ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/
 
120
                           COMMENT "Recompiling GSettings schemas locally"
 
121
        )
 
122
 
 
123
        add_custom_target (compiz_gsettings_compile_local ALL
 
124
                           DEPENDS ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/gschemas.compiled)
 
125
 
 
126
        set_property (GLOBAL
 
127
                      PROPERTY GSETTINGS_LOCAL_COMPILE_TARGET_SET
 
128
                      TRUE)
 
129
 
 
130
    endif (NOT GSETTINGS_LOCAL_COMPILE_TARGET_SET)
 
131
 
 
132
    add_dependencies (compiz_gsettings_compile_local
 
133
                      ${_target_name_for_schema})
 
134
 
57
135
endfunction ()
58
136
 
59
137
# generate gconf schema
60
 
function (compiz_gsettings_schema _src _dst _inst)
 
138
function (compiz_gsettings_schema _name _src _dst _inst)
61
139
    find_program (XSLTPROC_EXECUTABLE xsltproc)
 
140
    find_program (GLIB_COMPILE_SCHEMAS glib-compile-schemas)
62
141
    mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
63
142
 
64
 
    if (XSLTPROC_EXECUTABLE AND USE_GSETTINGS)
 
143
    if (XSLTPROC_EXECUTABLE AND GLIB_COMPILE_SCHEMAS AND USE_GSETTINGS)
65
144
        add_custom_command (
66
145
            OUTPUT ${_dst}
67
146
            COMMAND ${XSLTPROC_EXECUTABLE}
70
149
                    ${_src}
71
150
            DEPENDS ${_src}
72
151
        )
 
152
 
 
153
        add_custom_target (${_name}_gsettings_schema
 
154
                           DEPENDS ${_dst})
 
155
 
73
156
        compiz_install_gsettings_schema (${_dst} ${_inst})
 
157
        add_gsettings_schema_to_recompilation_list (${_name}_gsettings_schema)
74
158
    endif ()
75
159
endfunction ()