build: Compile schemas locally for use in build tests
So they don't need to be installed system-wide before build testing can work. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3368 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3800>
This commit is contained in:
parent
3b3feefcd5
commit
b684b5cf05
5 changed files with 21 additions and 3 deletions
|
@ -27,20 +27,33 @@ gschema_config.set('XWAYLAND_GRAB_DEFAULT_ACCESS_RULES',
|
||||||
xwayland_grab_default_access_rules)
|
xwayland_grab_default_access_rules)
|
||||||
|
|
||||||
schemadir = datadir / 'glib-2.0' / 'schemas'
|
schemadir = datadir / 'glib-2.0' / 'schemas'
|
||||||
configure_file(
|
schema_xmls = []
|
||||||
|
schema_xmls += configure_file(
|
||||||
input: 'org.gnome.mutter.gschema.xml.in',
|
input: 'org.gnome.mutter.gschema.xml.in',
|
||||||
output: 'org.gnome.mutter.gschema.xml',
|
output: 'org.gnome.mutter.gschema.xml',
|
||||||
configuration: gschema_config,
|
configuration: gschema_config,
|
||||||
install_dir: schemadir
|
install_dir: schemadir
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_file(
|
schema_xmls += configure_file(
|
||||||
input: 'org.gnome.mutter.wayland.gschema.xml.in',
|
input: 'org.gnome.mutter.wayland.gschema.xml.in',
|
||||||
output: 'org.gnome.mutter.wayland.gschema.xml',
|
output: 'org.gnome.mutter.wayland.gschema.xml',
|
||||||
configuration: gschema_config,
|
configuration: gschema_config,
|
||||||
install_dir: schemadir
|
install_dir: schemadir
|
||||||
)
|
)
|
||||||
|
|
||||||
|
locally_compiled_schemas_dir = meson.current_build_dir()
|
||||||
|
|
||||||
|
locally_compiled_schemas = custom_target(
|
||||||
|
output: 'gschemas.compiled',
|
||||||
|
depend_files: schema_xmls,
|
||||||
|
command: ['glib-compile-schemas', locally_compiled_schemas_dir],
|
||||||
|
)
|
||||||
|
|
||||||
|
locally_compiled_schemas_dep = declare_dependency(
|
||||||
|
sources: locally_compiled_schemas
|
||||||
|
)
|
||||||
|
|
||||||
install_data(['mutter-schemas.convert'],
|
install_data(['mutter-schemas.convert'],
|
||||||
install_dir: datadir / 'GConf/gsettings',
|
install_dir: datadir / 'GConf/gsettings',
|
||||||
)
|
)
|
||||||
|
|
|
@ -55,6 +55,7 @@ test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
||||||
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
||||||
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
||||||
test_env.set('CLUTTER_ENABLE_DIAGNOSTIC', '0')
|
test_env.set('CLUTTER_ENABLE_DIAGNOSTIC', '0')
|
||||||
|
test_env.set('GSETTINGS_SCHEMA_DIR', locally_compiled_schemas_dir)
|
||||||
|
|
||||||
foreach test : clutter_conform_tests
|
foreach test : clutter_conform_tests
|
||||||
test_executable = executable('@0@'.format(test),
|
test_executable = executable('@0@'.format(test),
|
||||||
|
|
|
@ -65,6 +65,7 @@ test_env = environment()
|
||||||
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
||||||
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
||||||
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
||||||
|
test_env.set('GSETTINGS_SCHEMA_DIR', locally_compiled_schemas_dir)
|
||||||
|
|
||||||
cogl_test_variants = [ 'gl3', 'gles2' ]
|
cogl_test_variants = [ 'gl3', 'gles2' ]
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ test_env = environment()
|
||||||
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
|
||||||
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
|
||||||
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
||||||
|
test_env.set('GSETTINGS_SCHEMA_DIR', locally_compiled_schemas_dir)
|
||||||
|
|
||||||
foreach unit_test: cogl_unit_tests
|
foreach unit_test: cogl_unit_tests
|
||||||
test_name = 'cogl-' + unit_test[0]
|
test_name = 'cogl-' + unit_test[0]
|
||||||
|
|
|
@ -42,6 +42,7 @@ tests_deps = [
|
||||||
libmutter_clutter_dep,
|
libmutter_clutter_dep,
|
||||||
libmutter_dep,
|
libmutter_dep,
|
||||||
mutter_deps,
|
mutter_deps,
|
||||||
|
locally_compiled_schemas_dep,
|
||||||
]
|
]
|
||||||
|
|
||||||
libmutter_test = shared_library(libmutter_test_name,
|
libmutter_test = shared_library(libmutter_test_name,
|
||||||
|
@ -144,7 +145,8 @@ test_env_variables = {
|
||||||
'G_TEST_BUILDDIR': mutter_builddir,
|
'G_TEST_BUILDDIR': mutter_builddir,
|
||||||
'XDG_CONFIG_HOME': mutter_builddir / '.config',
|
'XDG_CONFIG_HOME': mutter_builddir / '.config',
|
||||||
'MUTTER_TEST_PLUGIN_PATH': '@0@'.format(default_plugin.full_path()),
|
'MUTTER_TEST_PLUGIN_PATH': '@0@'.format(default_plugin.full_path()),
|
||||||
'GSETTINGS_SCHEMA_DIR': mutter_builddir / 'src' / 'tests',
|
'GSETTINGS_SCHEMA_DIR': ':'.join([mutter_builddir / 'src' / 'tests',
|
||||||
|
locally_compiled_schemas_dir]),
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach name, value: test_env_variables
|
foreach name, value: test_env_variables
|
||||||
|
|
Loading…
Reference in a new issue