diff options
42 files changed, 1696 insertions, 0 deletions
diff --git a/data/glade/meson.build b/data/glade/meson.build new file mode 100644 index 0000000..301c2ab --- /dev/null +++ b/data/glade/meson.build @@ -0,0 +1,28 @@ +glade_catalog_xml = configuration_data() +glade_catalog_xml.set('GETTEXT_PACKAGE', package_string) + +peas_glade_catalog = configure_file( + input: 'libpeas-gtk.xml.in', + output: 'libpeas-gtk.xml', + configuration: glade_catalog_xml, + install: true, + install_dir: catalogdir, +) + +if xmllint_prg.found() + glade_catalog_dtd_path = join_paths( + gladeui_dep.get_pkgconfig_variable('catalogdir'), + 'glade-catalog.dtd' + ) + + test( + 'Validate Glade catalogue', + xmllint_prg, + args: [ + '--dtdvalid', + glade_catalog_dtd_path, + peas_glade_catalog, + '--noout', + ] + ) +endif diff --git a/data/icons/meson.build b/data/icons/meson.build new file mode 100644 index 0000000..726dae8 --- /dev/null +++ b/data/icons/meson.build @@ -0,0 +1,27 @@ +icon_sizes = [ + '16x16', + '22x22', + '32x32', +] + +foreach size: icon_sizes + install_data( + join_paths(size, 'libpeas-plugin.png'), + install_dir: join_paths( + iconsdir, + 'hicolor', + size, + 'actions' + ) + ) +endforeach + +install_data( + join_paths('scalable', 'libpeas-plugin.svg'), + install_dir: join_paths( + iconsdir, + 'hicolor', + 'scalable', + 'actions' + ) +) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..59295ae --- /dev/null +++ b/data/meson.build @@ -0,0 +1,5 @@ +if install_glade_catalog == true + subdir('glade') +endif + +subdir('icons') diff --git a/docs/meson.build b/docs/meson.build new file mode 100644 index 0000000..c662ff0 --- /dev/null +++ b/docs/meson.build @@ -0,0 +1,3 @@ +if build_gtk_doc == true + subdir('reference') +endif diff --git a/docs/reference/meson.build b/docs/reference/meson.build new file mode 100644 index 0000000..1e114d4 --- /dev/null +++ b/docs/reference/meson.build @@ -0,0 +1,99 @@ +glib_prefix = glib_dep.get_pkgconfig_variable('prefix') +glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') + +gtk_prefix = gtk_dep.get_pkgconfig_variable('prefix') +gtk_docpath = join_paths(gtk_prefix, 'share', 'gtk-doc', 'html') + +libpeas_reference_ignored_h = [ + 'peas-debug.h', + 'peas-dirs.h', + 'peas-engine-priv.h', + 'peas-i18n.h', + 'peas-introspection.h', + 'peas-marshal.h', + 'peas-plugin-info-priv.h', + 'peas-plugin-loader.h', + 'peas-plugin-loader-c.h', + 'peas-utils.h', +] + +libpeas_reference_html_images = [ +] + +libpeas_reference_srcdirs = [ + libpeas_srcdir, +] + +if build_gtk_widgetry == true + libpeas_reference_ignored_h += [ + 'peas-gtk-disable-plugins-dialog.h', + 'peas-gtk-plugin-manager-store.h', + ] + + libpeas_reference_html_images += [ + join_paths('images', 'peas-gtk-plugin-manager.png'), + ] + + libpeas_reference_srcdirs += [ + libpeas_gtk_srcdir, + ] +endif + +version_xml = configuration_data() +version_xml.set('PEAS_VERSION', version) + +configure_file( + input: 'version.xml.in', + output: 'version.xml', + configuration: version_xml, +) + +libpeas_reference_deps = [ + libpeas_dep, +] + +libpeas_reference_scan_args = [ + '--rebuild-types', + '--deprecated-guards="PEAS_DISABLE_DEPRECATED"', + '--ignore-headers=' + ' '.join(libpeas_reference_ignored_h), +] + +libpeas_reference_fixxref_args = [ + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gmodule')), + '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), +] + +libpeas_reference_mkdb_args = [ + '--sgml-mode', + '--output-format=xml', +] + +if build_gtk_widgetry == true + libpeas_reference_deps += [ + libpeas_gtk_dep, + ] + + libpeas_reference_fixxref_args += [ + '--extra-dir=@0@'.format(join_paths(gtk_docpath, 'gtk')), + ] +endif + +gnome.gtkdoc( + package_name, + main_sgml: 'libpeas-docs.sgml', + gobject_typesfile: 'libpeas.types', + src_dir: libpeas_reference_srcdirs, + html_assets: libpeas_reference_html_images, + dependencies: libpeas_reference_deps, + scan_args: libpeas_reference_scan_args, + fixxref_args: libpeas_reference_fixxref_args, + mkdb_args: libpeas_reference_mkdb_args, + install: true, + install_dir: join_paths( + gtkdocdir, + 'html', + package_name, + ) +) diff --git a/libpeas-gtk/meson.build b/libpeas-gtk/meson.build new file mode 100644 index 0000000..3becc7e --- /dev/null +++ b/libpeas-gtk/meson.build @@ -0,0 +1,101 @@ +libpeas_gtk_srcdir = include_directories('.') + +libpeas_gtk_public_h = files( + 'peas-gtk-autocleanups.h', + 'peas-gtk-configurable.h', + 'peas-gtk-plugin-manager.h', + 'peas-gtk-plugin-manager-view.h', + 'peas-gtk.h', +) + +libpeas_gtk_c = files( + 'peas-gtk-configurable.c', + 'peas-gtk-disable-plugins-dialog.c', + 'peas-gtk-plugin-manager.c', + 'peas-gtk-plugin-manager-store.c', + 'peas-gtk-plugin-manager-view.c', +) + +libpeas_gtk_deps = [ + glib_dep, + gobject_dep, + introspection_dep, + gtk_dep, + libpeas_dep, +] + +libpeas_gtk_c_args = [ + '-DHAVE_CONFIG_H', + '-DG_LOG_DOMAIN="libpeas-gtk"', +] + +libpeas_gtk_link_args = [ +] + +install_headers( + libpeas_gtk_public_h, + install_dir: join_paths( + pkgincludedir, + package_gtk_name, + ) +) + +libpeas_gtk_sha = library( + package_gtk_string.strip('lib'), + libpeas_gtk_c, + version: lib_version, + include_directories: rootdir, + dependencies: libpeas_gtk_deps, + c_args: libpeas_gtk_c_args, + link_args: libpeas_gtk_link_args, + install: true, + install_dir: libdir, +) + +libpeas_gtk_dep_sources = [] + +if generate_gir == true + libpeas_gtk_gir_includes = [ + 'GObject-2.0', + 'Gtk-3.0', + libpeas_gir.get(0) + ] + + libpeas_gtk_gir = gnome.generate_gir( + libpeas_gtk_sha, + sources: libpeas_gtk_c + libpeas_gtk_public_h, + nsversion: api_version, + namespace: 'PeasGtk', + symbol_prefix: 'peas_gtk', + identifier_prefix: 'PeasGtk', + header: 'libpeas-gtk/peas-gtk.h', + export_packages: [package_gtk_string], + includes: libpeas_gtk_gir_includes, + link_with: [libpeas_sha, libpeas_gtk_sha], + install: true, + install_dir_gir: girdir, + install_dir_typelib: typelibdir, + extra_args: [ + '--warn-all', + ], + ) + + libpeas_gtk_dep_sources += [ + libpeas_gtk_gir, + ] +endif + +libpeas_gtk_dep = declare_dependency( + link_with: libpeas_gtk_sha, + dependencies: libpeas_gtk_deps, + include_directories: rootdir, + sources: libpeas_gtk_dep_sources, +) + +libpeas_gtk_pc = pkg.generate( + libpeas_gtk_sha, + name: package_gtk_string, + description: 'GObject plugins library widgetery', + subdirs: package_gtk_string, + install_dir: pkgconfigdir, +) diff --git a/libpeas/meson.build b/libpeas/meson.build new file mode 100644 index 0000000..5af2016 --- /dev/null +++ b/libpeas/meson.build @@ -0,0 +1,132 @@ +libpeas_srcdir = include_directories('.') + +libpeas_public_h = files( + 'peas-activatable.h', + 'peas-autocleanups.h', + 'peas-engine.h', + 'peas-extension.h', + 'peas-extension-base.h', + 'peas-extension-set.h', + 'peas-object-module.h', + 'peas-plugin-info.h', + 'peas.h', +) + +libpeas_sources = files( + 'peas-activatable.c', + 'peas-debug.c', + 'peas-dirs.c', + 'peas-engine.c', + 'peas-extension.c', + 'peas-extension-base.c', + 'peas-extension-set.c', + 'peas-i18n.c', + 'peas-introspection.c', + 'peas-object-module.c', + 'peas-plugin-info.c', + 'peas-plugin-loader.c', + 'peas-plugin-loader-c.c', + 'peas-utils.c', +) + +libpeas_deps = [ + glib_dep, + gobject_dep, + gmodule_dep, + gio_dep, + introspection_dep, +] + +libpeas_c_args = [ + '-DHAVE_CONFIG_H', + '-DG_LOG_DOMAIN="libpeas"', + '-DDATADIR="@0@"'.format(datadir), + '-DLIBDIR="@0@"'.format(libdir), +] + +libpeas_link_args = [ +] + +libpeas_marshal = gnome.genmarshal( + 'peas-marshal', + sources: 'peas-marshal.list', + prefix: 'peas_cclosure_marshal', + install_header: false, +) + +libpeas_marshals_h = libpeas_marshal.get(1) + +libpeas_sources += [ + libpeas_marshal, +] + +install_headers( + libpeas_public_h, + install_dir: join_paths( + pkgincludedir, + package_name, + ), +) + +libpeas_sha = library( + package_string.strip('lib'), + libpeas_sources, + version: lib_version, + include_directories: rootdir, + dependencies: libpeas_deps, + c_args: libpeas_c_args, + link_args: libpeas_link_args, + install: true, + install_dir: libdir, +) + +libpeas_dep_sources = [ + libpeas_marshals_h, +] + +if generate_gir == true + libpeas_gir_includes = [ + 'GObject-2.0', + 'GModule-2.0', + 'Gio-2.0', + 'GIRepository-2.0' + ] + + libpeas_gir = gnome.generate_gir( + libpeas_sha, + sources: libpeas_sources + libpeas_public_h, + nsversion: api_version, + namespace: 'Peas', + symbol_prefix: 'peas', + identifier_prefix: 'Peas', + header: 'libpeas/peas.h', + export_packages: [package_string], + includes: libpeas_gir_includes, + link_with: libpeas_sha, + install: true, + install_dir_gir: girdir, + install_dir_typelib: typelibdir, + extra_args: [ + '--warn-all', + ], + ) + + libpeas_dep_sources += [ + libpeas_gir, + ] +endif + +libpeas_dep = declare_dependency( + link_with: libpeas_sha, + include_directories: rootdir, + dependencies: libpeas_deps, + sources: libpeas_dep_sources, +) + +libpeas_pc = pkg.generate( + libpeas_sha, + name: package_string, + description: 'GObject plugins library', + subdirs: package_string, + install_dir: pkgconfigdir, +) diff --git a/loaders/lua5.1/meson.build b/loaders/lua5.1/meson.build new file mode 100644 index 0000000..9dfe010 --- /dev/null +++ b/loaders/lua5.1/meson.build @@ -0,0 +1,41 @@ +lua51_loader_name = 'lua51loader' + +lua51_lgi_version = lua51_lgi_dep.version() +lua51_lgi_version_arr = lua51_lgi_version.split('.') +lua51_lgi_version_major = lua51_lgi_version_arr[0].to_int() +lua51_lgi_version_minor = lua51_lgi_version_arr[1].to_int() +lua51_lgi_version_micro = lua51_lgi_version_arr[2].to_int() + +lua51_loader_c = files( + 'peas-lua-internal.c', + 'peas-lua-utils.c', + 'peas-plugin-loader-lua.c', +) + +subdir('resources') # Declares 'lua51_loader_res' + +lua51_loader_deps = [ + libpeas_dep, + lua51_dep, + lua51_lgi_dep, +] + +lua51_loader_c_args = [ + '-DHAVE_CONFIG_H', + '-DLGI_MAJOR_VERSION=@0@'.format(lua51_lgi_version_major), + '-DLGI_MINOR_VERSION=@0@'.format(lua51_lgi_version_minor), + '-DLGI_MICRO_VERSION=@0@'.format(lua51_lgi_version_micro), +] + +lua51_loader_sha = shared_library( + lua51_loader_name, + lua51_loader_c + lua51_loader_res, + include_directories: rootdir, + dependencies: lua51_loader_deps, + c_args: lua51_loader_c_args, + install: true, + install_dir: join_paths( + pkglibdir, + 'loaders', + ) +) diff --git a/loaders/lua5.1/resources/meson.build b/loaders/lua5.1/resources/meson.build new file mode 100644 index 0000000..8f7f6c6 --- /dev/null +++ b/loaders/lua5.1/resources/meson.build @@ -0,0 +1,5 @@ +lua51_loader_res = gnome.compile_resources( + 'peas-lua-resources', + 'peas-lua.gresource.xml', + export: true, +) diff --git a/loaders/meson.build b/loaders/meson.build new file mode 100644 index 0000000..7b9ce98 --- /dev/null +++ b/loaders/meson.build @@ -0,0 +1,11 @@ +if build_lua51_loader == true + subdir('lua5.1') +endif + +if build_python3_loader == true + subdir('python') +endif + +if build_python3_loader == true + subdir('python3') +endif diff --git a/loaders/python/meson.build b/loaders/python/meson.build new file mode 100644 index 0000000..89346a2 --- /dev/null +++ b/loaders/python/meson.build @@ -0,0 +1,45 @@ +python2_loader_name = 'python2loader' + +pygobject_version = pygobject_dep.version() +pygobject_version_arr = pygobject_version.split('.') +pygobject_version_major = pygobject_version_arr[0].to_int() +pygobject_version_minor = pygobject_version_arr[1].to_int() +pygobject_version_micro = pygobject_version_arr[2].to_int() + +python2_loader_c = files( + 'peas-plugin-loader-python.c', + 'peas-python-internal.c', +) + +python2_loader_res = gnome.compile_resources( + 'peas-python-resources', + 'peas-python.gresource.xml', + export: true, +) + +python2_loader_deps = [ + libpeas_dep, + python2_dep, + pygobject_dep, +] + +python2_loader_c_args = [ + '-DHAVE_CONFIG_H', + '-DPEAS_LOCALEDIR="@0@"'.format(localedir), + '-DPYGOBJECT_MAJOR_VERSION=@0@'.format(pygobject_version_major), + '-DPYGOBJECT_MINOR_VERSION=@0@'.format(pygobject_version_minor), + '-DPYGOBJECT_MICRO_VERSION=@0@'.format(pygobject_version_micro), +] + +python2_loader_sha = shared_library( + python2_loader_name, + python2_loader_c + python2_loader_res, + include_directories: rootdir, + dependencies: python2_loader_deps, + c_args: python2_loader_c_args, + install: true, + install_dir: join_paths( + pkglibdir, + 'loaders', + ) +) diff --git a/loaders/python3/meson.build b/loaders/python3/meson.build new file mode 100644 index 0000000..5b350a0 --- /dev/null +++ b/loaders/python3/meson.build @@ -0,0 +1,45 @@ +python3_loader_name = 'python3loader' + +pygobject_version = pygobject_dep.version() +pygobject_version_arr = pygobject_version.split('.') +pygobject_version_major = pygobject_version_arr[0].to_int() +pygobject_version_minor = pygobject_version_arr[1].to_int() +pygobject_version_micro = pygobject_version_arr[2].to_int() + +python3_loader_c = files( + '../python/peas-plugin-loader-python.c', + '../python/peas-python-internal.c', +) + +python3_loader_res = gnome.compile_resources( + 'peas-python2-resources', + 'peas-python3.gresource.xml', + export: true, +) + +python3_loader_deps = [ + libpeas_dep, + python3_dep, + pygobject_dep, +] + +python3_loader_c_args = [ + '-DHAVE_CONFIG_H', + '-DPEAS_LOCALEDIR="@0@"'.format(localedir), + '-DPYGOBJECT_MAJOR_VERSION=@0@'.format(pygobject_version_major), + '-DPYGOBJECT_MINOR_VERSION=@0@'.format(pygobject_version_minor), + '-DPYGOBJECT_MICRO_VERSION=@0@'.format(pygobject_version_micro), +] + +python3_loader_sha = shared_library( + python3_loader_name, + python3_loader_c + python3_loader_res, + include_directories: rootdir, + dependencies: python3_loader_deps, + c_args: python3_loader_c_args, + install: true, + install_dir: join_paths( + pkglibdir, + 'loaders', + ) +) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..50abace --- /dev/null +++ b/meson.build @@ -0,0 +1,218 @@ +project( + 'libpeas', 'c', + version: '1.22.0', + license: 'LGPLv2.1+', + meson_version: '>= 0.49.0', + default_options: [ + 'buildtype=debugoptimized', + ] +) + +gnome = import('gnome') +i18n = import('i18n') +pkg = import('pkgconfig') + +# Versioning +version = meson.project_version() +version_arr = version.split('.') +version_major = version_arr[0].to_int() +version_minor = version_arr[1].to_int() +version_micro = version_arr[2].to_int() + +api_version = '@0@.0'.format(version_major) + +if version_minor.is_odd() + interface_age = 0 +else + interface_age = version_micro +endif + +# Compatibility with libtool versioning: +# current = minor * 100 + micro - interface +# revision = interface +lib_version_soversion = version_major +lib_version_current = version_minor * 100 + version_micro - interface_age +lib_version_revision = interface_age +lib_version = '@0@.@1@.@2@'.format( + lib_version_soversion, + lib_version_current, + lib_version_revision +) + +package_name = meson.project_name() +package_string = '@0@-@1@'.format(package_name, api_version) +package_long_string = '@0@-@1@'.format(package_name, version) +package_gtk_name = '@0@-gtk'.format(meson.project_name()) +package_gtk_string = '@0@-@1@'.format(package_gtk_name, api_version) + +# Paths +rootdir = include_directories('.') +srcdir = meson.current_source_dir() +builddir = meson.current_build_dir() + +prefix = get_option('prefix') + +includedir = join_paths(prefix, get_option('includedir')) +libdir = join_paths(prefix, get_option('libdir')) +datadir = join_paths(prefix, get_option('datadir')) +localedir = join_paths(prefix, get_option('localedir')) + +pkgincludedir = join_paths(includedir, package_string) +pkglibdir = join_paths(libdir, package_string) +pkgdatadir = join_paths(datadir, package_string) + +girdir = join_paths(datadir, 'gir-1.0') +gtkdocdir = join_paths(datadir, 'gtk-doc') +iconsdir = join_paths(datadir, 'icons') +pkgconfigdir = join_paths(libdir, 'pkgconfig') +typelibdir = join_paths(libdir, 'girepository-1.0') + +# Configurations +config_h = configuration_data() +config_h.set_quoted('PACKAGE', package_name) +config_h.set_quoted('PACKAGE_BUGREPORT', 'http://bugzilla.gnome.org/enter_bug.cgi?product=libpeas') +config_h.set_quoted('PACKAGE_NAME', package_name) +config_h.set_quoted('PACKAGE_STRING', package_long_string) +config_h.set_quoted('PACKAGE_URL', 'https://wiki.gnome.org/Projects/Libpeas') +config_h.set_quoted('PACKAGE_URL', 'https://wiki.gnome.org/Projects/Libpeas') +config_h.set_quoted('PACKAGE_VERSION', version) +config_h.set_quoted('VERSION', version) + +config_h.set_quoted('GETTEXT_PACKAGE', package_string) + +# Dependencies +cc = meson.get_compiler('c') + +glib_req = '>= 2.38.0' +introspection_req = '>= 1.39.0' +gtk_req = '>= 3.0.0' +gtk_doc_req = '>= 1.11' +python2_req = '>= 2.5.2' +python3_req = '>= 3.2.0' +pygobject_req = '>= 3.2.0' +lua_req = '>= 5.1.0' +lua_lgi_req = '>= 0.9.0' +luajit_req = '>= 2.0' + +glib_dep = dependency('glib-2.0', version: glib_req) +gobject_dep = dependency('gobject-2.0', version: glib_req) +gmodule_dep = dependency('gmodule-2.0', version: glib_req) +gio_dep = dependency('gio-2.0', version: glib_req) +introspection_dep = dependency('gobject-introspection-1.0', version: introspection_req) +gtk_dep = dependency('gtk+-3.0', version: gtk_req, required: false) + +gtk_doc_dep = dependency('gtk-doc', version: gtk_doc_req, required: false) +gladeui_dep = dependency('gladeui-2.0', required: false) + +python2_dep = dependency('python2', version: python2_req, required: false) +python3_dep = dependency('python3', version: python3_req, required: false) +pygobject_dep = dependency('pygobject-3.0', version: pygobject_req, required: false) +lua51_dep = dependency('lua5.1', version: lua_req, required: false) +lua51_lgi_dep = dependency('lua5.1-lgi', version: lua_lgi_req, required: false) +luajit_dep = dependency('luajit', version: luajit_req, required: false) + +luajit_prg = find_program('luajit', required: false) +xmllint_prg = find_program('xmllint', required: false) + +if build_machine.system() == 'darwin' + config_h.set_quoted('OS_OSX', 1) +endif + +configure_file( + output: 'config.h', + configuration: config_h +) + +# Options +build_gtk_doc = get_option('gtk_doc') +if build_gtk_doc and not gtk_doc_dep.found() + build_gtk_doc = false +endif + +install_glade_catalog = get_option('glade_catalog') +if install_glade_catalog and not gladeui_dep.found() + install_glade_catalog = false +elif install_glade_catalog == true + catalogdir = join_paths(datadir, 'glade', 'catalogs') +# FIXME: In gladeui-2.0.pc, catalogdir should be relative to datadir: +# https://gitlab.gnome.org/GNOME/glade/issues/353 +# catalogdir = gladeui_dep.get_pkgconfig_variable( +# 'catalogdir', +# define_variable: [ +# 'datadir', datadir, +# ] +# ) +endif + +build_gtk_widgetry = get_option('widgetry') +if build_gtk_widgetry and not gtk_dep.found() + build_gtk_widgetry = false +endif + +build_demos = get_option('widgetry') +if build_demos and not build_gtk_widgetry + build_demos = false +endif + +generate_gir = get_option('introspection') +if generate_gir and not introspection_dep.found() + generate_gir = false +endif + +build_lua51_loader = get_option('lua51') +lua51_found = lua51_dep.found() and lua51_lgi_dep.found() +if build_lua51_loader and not lua51_found + build_lua51_loader = false +endif + +build_python2_loader = get_option('python2') +python2_found = python2_dep.found() and pygobject_dep.found() +if build_python2_loader and not python2_found + build_python2_loader = false +endif + +build_python3_loader = get_option('python2') +python3_found = python3_dep.found() and pygobject_dep.found() +if build_python3_loader and not python3_found + build_python3_loader = false +endif + +subdir('libpeas') +if build_gtk_widgetry == true + subdir('libpeas-gtk') +endif + +subdir('docs') +subdir('data') +subdir('po') + +subdir('loaders') + +if build_demos == true + subdir('peas-demo') +endif +subdir('tests') + +summary = [ + '', + '------', + 'libpeas @0@ (@1@)'.format(version, api_version), + '', + ' Demos: @0@'.format(build_demos), + ' Documentation: @0@'.format(build_gtk_doc), + ' Glade catalog: @0@'.format(install_glade_catalog), + ' GTK+ widgetry: @0@'.format(build_gtk_widgetry), + ' Introspection: @0@'.format(generate_gir), + ' Lua 5.1 support: @0@'.format(build_lua51_loader), + ' Python 2 support: @0@'.format(build_python2_loader), + ' Python 3 support: @0@'.format(build_python3_loader), + '', + 'Directories:', + ' prefix: @0@'.format(prefix), + ' includedir: @0@'.format(includedir), + ' libdir: @0@'.format(libdir), + ' datadir: @0@'.format(datadir), + '------', +] + +message('\n'.join(summary)) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..18e1779 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,32 @@ +option('lua51', + type: 'boolean', value: true, + description: 'Enable Lua 5.1 support (requires lua-lgi)') + +option('python2', + type: 'boolean', value: false, + description: 'Enable Python 2 support (requires pygobject)') +option('python3', + type: 'boolean', value: true, + description: 'Enable Python 3 support (requires pygobject)') + +option('introspection', + type: 'boolean', value: true, + description: 'Generate introspection data (requires gobject-introspection)') +option('vapi', + type: 'boolean', value: false, + description: 'Generate vapi data (requires vapigen)') + +option('widgetry', + type: 'boolean', value: true, + description: 'Build GTK+ widgetry (requires gtk+)') +option('glade_catalog', + type: 'boolean', value: true, + description: 'Install Glade catalog (requires gladeui)') + +option('demos', + type: 'boolean', value: true, + description: 'Build demo programs') + +option('gtk_doc', + type: 'boolean', value: false, + description: 'Build reference manual (requires gtk-doc)') diff --git a/peas-demo/meson.build b/peas-demo/meson.build new file mode 100644 index 0000000..8441999 --- /dev/null +++ b/peas-demo/meson.build @@ -0,0 +1,23 @@ +peas_demo_name = 'peas-demo' +peas_demo_string = '@0@-@1@'.format(peas_demo_name, api_version) + +peas_demo_c = [ + 'peas-demo-window.c', + 'peas-demo.c', +] + +peas_demo_c_args = [ + '-DHAVE_CONFIG_H', + '-DPEAS_BUILDDIR="@0@"'.format(builddir), + '-DPEAS_PREFIX="@0@"'.format(prefix), + '-DPEAS_LIBDIR="@0@"'.format(libdir), +] + +executable( + peas_demo_string, + peas_demo_c, + c_args: peas_demo_c_args, + dependencies: [libpeas_gtk_dep], +) + +subdir('plugins') diff --git a/peas-demo/plugins/helloworld/meson.build b/peas-demo/plugins/helloworld/meson.build new file mode 100644 index 0000000..6d2ea95 --- /dev/null +++ b/peas-demo/plugins/helloworld/meson.build @@ -0,0 +1,31 @@ +libhelloworld_name = 'helloworld' + +libhelloworld_c = [ + 'peasdemo-hello-world-configurable.c', + 'peasdemo-hello-world-plugin.c', +] + +libhelloworld_plugin_data = [ + 'helloworld.plugin', +] + +libhelloworld_c_args = [ + '-DHAVE_CONFIG_H', +] + +libhelloworld_lib = shared_library( + libhelloworld_name, + libhelloworld_c, + include_directories: rootdir, + dependencies: [gtk_dep, libpeas_gtk_dep], + c_args: libhelloworld_c_args, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libhelloworld_name), + input: libhelloworld_plugin_data, + output: libhelloworld_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/peas-demo/plugins/luahello/meson.build b/peas-demo/plugins/luahello/meson.build new file mode 100644 index 0000000..72d90cc --- /dev/null +++ b/peas-demo/plugins/luahello/meson.build @@ -0,0 +1,14 @@ +luahello_name = 'luahello' + +luahello_plugin_data = [ + 'luahello.lua', + 'luahello.plugin', +] + +custom_target( + '@0@-data'.format(luahello_name), + input: luahello_plugin_data, + output: luahello_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/peas-demo/plugins/meson.build b/peas-demo/plugins/meson.build new file mode 100644 index 0000000..c2c343f --- /dev/null +++ b/peas-demo/plugins/meson.build @@ -0,0 +1,11 @@ +subdir('helloworld') + +if build_lua51_loader == true + subdir('luahello') +endif + +if build_python3_loader == true + subdir('pythonhello') +endif + +subdir('secondtime') diff --git a/peas-demo/plugins/pythonhello/meson.build b/peas-demo/plugins/pythonhello/meson.build new file mode 100644 index 0000000..d3fbf1d --- /dev/null +++ b/peas-demo/plugins/pythonhello/meson.build @@ -0,0 +1,14 @@ +pythonhello_name = 'pythonhello' + +pythonhello_plugin_data = [ + 'pythonhello.py', + 'pythonhello.plugin', +] + +custom_target( + '@0@-data'.format(pythonhello_name), + input: pythonhello_plugin_data, + output: pythonhello_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/peas-demo/plugins/secondtime/meson.build b/peas-demo/plugins/secondtime/meson.build new file mode 100644 index 0000000..6d4716e --- /dev/null +++ b/peas-demo/plugins/secondtime/meson.build @@ -0,0 +1,30 @@ +libsecondtime_name = 'secondtime' + +libsecondtime_c = [ + 'second-time.c', +] + +libsecondtime_plugin_data = [ + 'secondtime.plugin', +] + +libsecondtime_c_args = [ + '-DHAVE_CONFIG_H', +] + +libsecondtime_lib = shared_library( + libsecondtime_name, + libsecondtime_c, + include_directories: rootdir, + dependencies: [gtk_dep, libpeas_dep], + c_args: libsecondtime_c_args, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libsecondtime_name), + input: libsecondtime_plugin_data, + output: libsecondtime_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..9aca128 --- /dev/null +++ b/po/meson.build @@ -0,0 +1,4 @@ +i18n.gettext( + package_string, + preset: 'glib', +) diff --git a/tests/libpeas-gtk/meson.build b/tests/libpeas-gtk/meson.build new file mode 100644 index 0000000..1faafa6 --- /dev/null +++ b/tests/libpeas-gtk/meson.build @@ -0,0 +1,33 @@ + +libpeas_gtk_tests_sources = [ + ['plugin-manager'], + ['plugin-manager-store'], + ['plugin-manager-view'], +] + +subdir('testing') + +subdir('plugins') + +libpeas_gtk_tests_deps = [ + glib_dep, + gtk_dep, + libpeas_dep, + libpeas_gtk_dep, + + libtesting_util_dep, + libpeas_gtk_testing_dep, +] + +foreach test: libpeas_gtk_tests_sources + test_name = test.get(0) + test_sources = ['@0@.c'.format(test_name)] + + test_exe = executable( + test_name, + test_sources, + dependencies: libpeas_gtk_tests_deps + ) + + test('test-@0@'.format(test_name), test_exe) +endforeach diff --git a/tests/libpeas-gtk/plugins/builtin-configurable/meson.build b/tests/libpeas-gtk/plugins/builtin-configurable/meson.build new file mode 100644 index 0000000..c967f5d --- /dev/null +++ b/tests/libpeas-gtk/plugins/builtin-configurable/meson.build @@ -0,0 +1,37 @@ +libbuiltin_configurable_name = 'builtin-configurable' + +libbuiltin_configurable_public_h = [ + 'builtin-configurable.h', +] + +libbuiltin_configurable_c = [ + 'builtin-configurable.c', +] + +libbuiltin_configurable_plugin_data = [ + 'builtin-configurable.plugin', +] + +libbuiltin_configurable_deps = [ + glib_dep, + gobject_dep, + gmodule_dep, + libpeas_dep, + libpeas_gtk_dep, +] + +libbuiltin_configurable_lib = shared_library( + libbuiltin_configurable_name, + libbuiltin_configurable_c, + include_directories: rootdir, + dependencies: libbuiltin_configurable_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libbuiltin_configurable_name), + input: libbuiltin_configurable_plugin_data, + output: libbuiltin_configurable_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas-gtk/plugins/configurable/meson.build b/tests/libpeas-gtk/plugins/configurable/meson.build new file mode 100644 index 0000000..553066b --- /dev/null +++ b/tests/libpeas-gtk/plugins/configurable/meson.build @@ -0,0 +1,37 @@ +libconfigurable_name = 'configurable' + +libconfigurable_public_h = [ + 'configurable-plugin.h', +] + +libconfigurable_c = [ + 'configurable-plugin.c', +] + +libconfigurable_plugin_data = [ + 'configurable.plugin', +] + +libconfigurable_deps = [ + glib_dep, + gobject_dep, + gmodule_dep, + libpeas_dep, + libpeas_gtk_dep, +] + +libconfigurable_lib = shared_library( + libconfigurable_name, + libconfigurable_c, + include_directories: rootdir, + dependencies: libconfigurable_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libconfigurable_name), + input: libconfigurable_plugin_data, + output: libconfigurable_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas-gtk/plugins/meson.build b/tests/libpeas-gtk/plugins/meson.build new file mode 100644 index 0000000..432607f --- /dev/null +++ b/tests/libpeas-gtk/plugins/meson.build @@ -0,0 +1,18 @@ +libpeas_gtk_plugins_data = [ + 'hidden.plugin', + 'invalid-custom-icon.plugin', + 'invalid-stock-icon.plugin', + 'valid-stock-icon.plugin', +] + +custom_target( + 'libpeas-gtk-test-data', + input: libpeas_gtk_plugins_data, + output: libpeas_gtk_plugins_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) + +subdir('builtin-configurable') +subdir('configurable') +subdir('valid-custom-icon') diff --git a/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build b/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build new file mode 100644 index 0000000..b5ec576 --- /dev/null +++ b/tests/libpeas-gtk/plugins/valid-custom-icon/meson.build @@ -0,0 +1,14 @@ +valid_custom_icon_name = 'valid-custom-icon' + +valid_custom_icon_plugin_data = [ + 'exists.png', + 'valid-custom-icon.plugin', +] + +custom_target( + '@0@-data'.format(valid_custom_icon_name), + input: valid_custom_icon_plugin_data, + output: valid_custom_icon_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas-gtk/testing/meson.build b/tests/libpeas-gtk/testing/meson.build new file mode 100644 index 0000000..62fd54d --- /dev/null +++ b/tests/libpeas-gtk/testing/meson.build @@ -0,0 +1,44 @@ +libpeas_gtk_testing_name = 'libpeas-gtk-testing' +libpeas_gtk_testing_string = '@0@-@1@'.format(libpeas_gtk_testing_name, api_version) + +libpeas_gtk_testing_public_h = [ + 'testing.h', +] + +libpeas_gtk_testing_c = [ + 'testing.c', +] + +libpeas_gtk_testing_deps = [ + glib_dep, + introspection_dep, + libpeas_dep, + libpeas_gtk_dep, + libtesting_util_dep, +] + +libpeas_gtk_testing_c_args = [ + '-DHAVE_CONFIG_H', + '-DBUILDDIR="@0@"'.format(builddir), + '-DSRCDIR="@0@"'.format(srcdir), +] + +libpeas_gtk_testing_link_args = [ + '-export-dynamic', +] + +libpeas_gtk_testing_lib = library( + libpeas_gtk_testing_string, + libpeas_gtk_testing_c, + include_directories: rootdir, + dependencies: libpeas_gtk_testing_deps, + c_args: libpeas_gtk_testing_c_args, + link_args: libpeas_gtk_testing_link_args, + install: false, +) + +libpeas_gtk_testing_dep = declare_dependency( + link_with: libpeas_gtk_testing_lib, + include_directories: include_directories('.'), + dependencies: libpeas_gtk_testing_deps, +) diff --git a/tests/libpeas/introspection/meson.build b/tests/libpeas/introspection/meson.build new file mode 100644 index 0000000..2cb4628 --- /dev/null +++ b/tests/libpeas/introspection/meson.build @@ -0,0 +1,71 @@ +libintrospection_name = 'introspection' +libintrospection_string = '@0@-@1@'.format(libintrospection_name, api_version) + +libintrospection_public_h = [ + 'introspection-abstract.h', + 'introspection-base.h', + 'introspection-callable.h', + 'introspection-has-prerequisite.h', + 'introspection-prerequisite.h', + 'introspection-unimplemented.h', +] + +libintrospection_c = [ + 'introspection-abstract.c', + 'introspection-base.c', + 'introspection-callable.c', + 'introspection-has-prerequisite.c', + 'introspection-prerequisite.c', + 'introspection-unimplemented.c', +] + +libintrospection_deps = [ + glib_dep, + gobject_dep, + libpeas_dep, +] + +libintrospection_c_args = [ + '-DHAVE_CONFIG_H', +] + +libintrospection_link_args = [ + '-export-dynamic', +] + +libintrospection_lib = library( + libintrospection_string, + libintrospection_c, + include_directories: rootdir, + dependencies: libintrospection_deps, + c_args: libintrospection_c_args, + link_args: libintrospection_link_args, + install: false, +) + +libintrospection_dep = declare_dependency( + link_with: libintrospection_lib, + include_directories: include_directories('.'), + dependencies: libintrospection_deps, +) + +libintrospection_gir = gnome.generate_gir( + libintrospection_lib, + sources: libintrospection_c + libintrospection_public_h, + nsversion: api_version, + namespace: 'Introspection', + symbol_prefix: 'introspection', + identifier_prefix: 'Introspection', + dependencies: [libintrospection_dep], + export_packages: [libintrospection_string], + link_with: libintrospection_lib, + includes: ['GObject-2.0', libpeas_gir.get(0)], + install: false, + extra_args: [ + '--warn-all', + ], +) + +libintrospection_gir_dep = declare_dependency( + sources: libintrospection_gir +) diff --git a/tests/libpeas/meson.build b/tests/libpeas/meson.build new file mode 100644 index 0000000..0c82d80 --- /dev/null +++ b/tests/libpeas/meson.build @@ -0,0 +1,57 @@ + +libpeas_tests_sources = [ + ['engine'], + ['extension-c'], + ['extension-set'], + ['plugin-info'], +] + +libpeas_tests_c_args = [] + +if build_lua51_loader == true + libpeas_tests_sources += [['extension-lua', [lua51_dep]]] +endif + +if build_python3_loader == true + libpeas_tests_sources += [['extension-py', [python3_dep, pygobject_dep]]] + + libpeas_tests_c_args += [ + '-DPYGOBJECT_MAJOR_VERSION=@0@'.format(pygobject_version_major), + '-DPYGOBJECT_MINOR_VERSION=@0@'.format(pygobject_version_minor), + '-DPYGOBJECT_MICRO_VERSION=@0@'.format(pygobject_version_micro), + ] +endif + +subdir('introspection') +subdir('testing') + +subdir('plugins') + +libpeas_tests_deps = [ + glib_dep, + libpeas_dep, + libintrospection_dep, + libintrospection_gir_dep, + libtesting_util_dep, + libpeas_testing_dep, + libembedded_dep, +] + +foreach test: libpeas_tests_sources + test_name = test.get(0) + test_sources = ['@0@.c'.format(test_name)] + test_deps = libpeas_tests_deps + + if test.length() > 1 + test_deps += test.get(1) + endif + + test_exe = executable( + test_name, + test_sources, + dependencies: test_deps, + c_args: libpeas_tests_c_args, + ) + + test('test-@0@'.format(test_name), test_exe) +endforeach diff --git a/tests/libpeas/plugins/embedded/meson.build b/tests/libpeas/plugins/embedded/meson.build new file mode 100644 index 0000000..b56c0c9 --- /dev/null +++ b/tests/libpeas/plugins/embedded/meson.build @@ -0,0 +1,52 @@ +libembedded_name = 'embedded' + +libembedded_public_h = [ + 'embedded-plugin.h', +] + +libembedded_c = [ + 'embedded-plugin.c', +] + +libembedded_plugin_data = [ + 'embedded.gresource.xml', + 'embedded.plugin', + 'embedded-invalid-loader.plugin', + 'embedded-missing-symbol.plugin', +] + +libembedded_res = gnome.compile_resources( + 'embedded-resources', + 'embedded.gresource.xml', + export: true, + extra_args: [ + '--manual-register', + ], +) + +libembedded_deps = [ + glib_dep, + libpeas_dep, +] + +libembedded_lib = shared_library( + libembedded_name, + libembedded_c + libembedded_res, + include_directories: rootdir, + dependencies: libembedded_deps, + install: false, +) + +libembedded_dep = declare_dependency( + link_with: libembedded_lib, + include_directories: include_directories('.'), + dependencies: libembedded_deps, +) + +custom_target( + '@0@-data'.format(libembedded_name), + input: libembedded_plugin_data, + output: libembedded_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas/plugins/extension-c/meson.build b/tests/libpeas/plugins/extension-c/meson.build new file mode 100644 index 0000000..ab03c4c --- /dev/null +++ b/tests/libpeas/plugins/extension-c/meson.build @@ -0,0 +1,64 @@ +libextension_c_name = 'extension-c' +libextension_c_missing_name = 'extension-c-missing-symbol' + +libextension_c_public_h = [ + 'extension-c-abstract.h', + 'extension-c-plugin.h', +] + +libextension_c_c = [ + 'extension-c-abstract.c', + 'extension-c-plugin.c', +] + +libextension_c_plugin_data = [ + 'extension-c.gschema.xml', + 'extension-c.plugin', +] + +libextension_c_deps = [ + glib_dep, + gmodule_dep, + libpeas_dep, + libintrospection_dep, +] + +libextension_c_lib = shared_library( + libextension_c_name, + libextension_c_c, + include_directories: rootdir, + dependencies: libextension_c_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libextension_c_name), + input: libextension_c_plugin_data, + output: libextension_c_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) + +libextension_c_missing_c = [ + 'extension-c-missing-symbol-plugin.c', +] + +libextension_c_missing_plugin_data = [ + 'extension-c-missing-symbol.plugin', +] + +libextension_c_missing_lib = shared_library( + libextension_c_missing_name, + libextension_c_missing_c, + include_directories: rootdir, + dependencies: libextension_c_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libextension_c_missing_name), + input: libextension_c_missing_plugin_data, + output: libextension_c_missing_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas/plugins/extension-lua/meson.build b/tests/libpeas/plugins/extension-lua/meson.build new file mode 100644 index 0000000..f113a39 --- /dev/null +++ b/tests/libpeas/plugins/extension-lua/meson.build @@ -0,0 +1,15 @@ +extension_lua_name = 'extension-lua' + +extension_lua_plugin_data = [ + 'extension-lua51.gschema.xml', + 'extension-lua51.lua', + 'extension-lua51.plugin', +] + +custom_target( + '@0@-data'.format(extension_lua_name), + input: extension_lua_plugin_data, + output: extension_lua_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/libpeas/plugins/extension-python/meson.build b/tests/libpeas/plugins/extension-python/meson.build new file mode 100644 index 0000000..16e29fd --- /dev/null +++ b/tests/libpeas/plugins/extension-python/meson.build @@ -0,0 +1,49 @@ +extension_python_name = 'extension-python' + +python2_in = configuration_data() +python2_in.set('PY_LOADER', 'python') + +configure_file( + input: 'extension-py.gschema.xml.in', + output: 'extension-python.gschema.xml', + configuration: python2_in, + install: false, +) + +configure_file( + input: 'extension-py.plugin.in', + output: 'extension-python.plugin', + configuration: python2_in, + install: false, +) + +configure_file( + input: 'extension-py.py.in', + output: 'extension-python.py', + configuration: python2_in, + install: false, +) + +python3_in = configuration_data() +python3_in.set('PY_LOADER', 'python3') + +configure_file( + input: 'extension-py.gschema.xml.in', + output: 'extension-python3.gschema.xml', + configuration: python3_in, + install: false, +) + +configure_file( + input: 'extension-py.plugin.in', + output: 'extension-python3.plugin', + configuration: python3_in, + install: false, +) + +configure_file( + input: 'extension-py.py.in', + output: 'extension-python3.py', + configuration: python3_in, + install: false, +) diff --git a/tests/libpeas/plugins/meson.build b/tests/libpeas/plugins/meson.build new file mode 100644 index 0000000..babe693 --- /dev/null +++ b/tests/libpeas/plugins/meson.build @@ -0,0 +1,33 @@ +libpeas_plugins_data = [ + 'extension-c-nonexistent.plugin', + 'extension-lua51-nonexistent.plugin', + 'extension-python-nonexistent.plugin', + 'extension-python3-nonexistent.plugin', + 'info-missing-module.plugin', + 'info-missing-name.plugin', + 'invalid.plugin', + 'nonexistent-dep.plugin', + 'not-loadable.plugin', + 'os-dependant-help.plugin', + 'two-deps.plugin', + 'unkown-loader.plugin', +] + +custom_target( + 'libpeas-test-data', + input: libpeas_plugins_data, + output: libpeas_plugins_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) + +subdir('embedded') +subdir('extension-c') + +if build_lua51_loader == true + subdir('extension-lua') +endif + +if build_python3_loader == true + subdir('extension-python') +endif diff --git a/tests/libpeas/testing/meson.build b/tests/libpeas/testing/meson.build new file mode 100644 index 0000000..2dd3d7b --- /dev/null +++ b/tests/libpeas/testing/meson.build @@ -0,0 +1,46 @@ +libpeas_testing_name = 'libpeas-testing' +libpeas_testing_string = '@0@-@1@'.format(libpeas_testing_name, api_version) + +libpeas_testing_public_h = [ + 'testing.h', + 'testing-extension.h', +] + +libpeas_testing_c = [ + 'testing.c', + 'testing-extension.c', +] + +libpeas_testing_deps = [ + glib_dep, + introspection_dep, + libpeas_dep, + libtesting_util_dep, + libintrospection_dep, +] + +libpeas_testing_c_args = [ + '-DHAVE_CONFIG_H', + '-DBUILDDIR="@0@"'.format(builddir), + '-DSRCDIR="@0@"'.format(srcdir), +] + +libpeas_testing_link_args = [ + '-export-dynamic', +] + +libpeas_testing_lib = library( + libpeas_testing_string, + libpeas_testing_c, + include_directories: rootdir, + dependencies: libpeas_testing_deps, + c_args: libpeas_testing_c_args, + link_args: libpeas_testing_link_args, + install: false, +) + +libpeas_testing_dep = declare_dependency( + link_with: libpeas_testing_lib, + include_directories: include_directories('.'), + dependencies: libpeas_testing_deps, +) diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 0000000..18e4e2f --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,8 @@ +subdir('testing-util') + +subdir('libpeas') +if build_gtk_widgetry == true + subdir('libpeas-gtk') +endif + +subdir('plugins') diff --git a/tests/plugins/builtin/meson.build b/tests/plugins/builtin/meson.build new file mode 100644 index 0000000..2a46254 --- /dev/null +++ b/tests/plugins/builtin/meson.build @@ -0,0 +1,34 @@ +libbuiltin_name = 'builtin' + +libbuiltin_public_h = [ + 'builtin-plugin.h', +] + +libbuiltin_c = [ + 'builtin-plugin.c', +] + +libbuiltin_plugin_data = [ + 'builtin.plugin', +] + +libbuiltin_plugin_deps = [ + glib_dep, + gobject_dep, + libpeas_dep, +] + +libbuiltin_lib = shared_library( + libbuiltin_name, + libbuiltin_c, + dependencies: libbuiltin_plugin_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libbuiltin_name), + input: libbuiltin_plugin_data, + output: libbuiltin_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/plugins/has-dep/meson.build b/tests/plugins/has-dep/meson.build new file mode 100644 index 0000000..eddef12 --- /dev/null +++ b/tests/plugins/has-dep/meson.build @@ -0,0 +1,35 @@ +libhas_dep_name = 'has-dep' + +libhas_dep_public_h = [ + 'has-dep-plugin.h', +] + +libhas_dep_c = [ + 'has-dep-plugin.c', +] + +libhas_dep_plugin_data = [ + 'has-dep.plugin', +] + +libhas_dep_plugin_deps = [ + glib_dep, + gobject_dep, + gmodule_dep, + libpeas_dep, +] + +libhas_dep_lib = shared_library( + libhas_dep_name, + libhas_dep_c, + dependencies: libhas_dep_plugin_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libhas_dep_name), + input: libhas_dep_plugin_data, + output: libhas_dep_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/plugins/loadable/meson.build b/tests/plugins/loadable/meson.build new file mode 100644 index 0000000..522959a --- /dev/null +++ b/tests/plugins/loadable/meson.build @@ -0,0 +1,34 @@ +libloadable_name = 'loadable' + +libloadable_public_h = [ + 'loadable-plugin.h', +] + +libloadable_c = [ + 'loadable-plugin.c', +] + +libloadable_plugin_data = [ + 'loadable.plugin', +] + +libloadable_plugin_deps = [ + glib_dep, + gobject_dep, + libpeas_dep, +] + +libloadable_lib = shared_library( + libloadable_name, + libloadable_c, + dependencies: libloadable_plugin_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libloadable_name), + input: libloadable_plugin_data, + output: libloadable_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) diff --git a/tests/plugins/meson.build b/tests/plugins/meson.build new file mode 100644 index 0000000..c19a8fb --- /dev/null +++ b/tests/plugins/meson.build @@ -0,0 +1,20 @@ +generic_name = 'generic' + +generic_plugins_data = [ + 'full-info.plugin', + 'min-info.plugin', + 'unavailable.plugin', +] + +custom_target( + '@0@-data'.format(generic_name), + input: generic_plugins_data, + output: generic_plugins_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +) + +subdir('builtin') +subdir('has-dep') +subdir('loadable') +subdir('self-dep') diff --git a/tests/plugins/self-dep/meson.build b/tests/plugins/self-dep/meson.build new file mode 100644 index 0000000..4cf0471 --- /dev/null +++ b/tests/plugins/self-dep/meson.build @@ -0,0 +1,34 @@ +libself_dep_name = 'self-dep' + +libself_dep_public_h = [ + 'self-dep-plugin.h', +] + +libself_dep_c = [ + 'self-dep-plugin.c', +] + +libself_dep_plugin_data = [ + 'self-dep.plugin', +] + +libself_dep_plugin_deps = [ + glib_dep, + gobject_dep, + libpeas_dep, +] + +libself_dep_lib = shared_library( + libself_dep_name, + libself_dep_c, + dependencies: libself_dep_plugin_deps, + install: false, +) + +custom_target( + 'lib@0@-data'.format(libself_dep_name), + input: libself_dep_plugin_data, + output: libself_dep_plugin_data, + command: ['cp', '@INPUT@', '@OUTDIR@'], + build_by_default: true, +)
\ No newline at end of file diff --git a/tests/testing-util/meson.build b/tests/testing-util/meson.build new file mode 100644 index 0000000..890ddb8 --- /dev/null +++ b/tests/testing-util/meson.build @@ -0,0 +1,42 @@ +libtesting_util_name = 'testing-util' +libtesting_util_string = '@0@-@1@'.format(libtesting_util_name, api_version) + +libtesting_util_public_h = [ + 'testing-util.h', +] + +libtesting_util_c = [ + 'testing-util.c', +] + +libtesting_util_deps = [ + glib_dep, + introspection_dep, + libpeas_dep, +] + +libtesting_util_c_args = [ + '-DHAVE_CONFIG_H', + '-DBUILDDIR="@0@"'.format(builddir), + '-DSRCDIR="@0@"'.format(srcdir), +] + +libtesting_util_link_args = [ + '-export-dynamic', +] + +libtesting_util_lib = library( + libtesting_util_string, + libtesting_util_c, + include_directories: rootdir, + dependencies: libtesting_util_deps, + c_args: libtesting_util_c_args, + link_args: libtesting_util_link_args, + install: false, +) + +libtesting_util_dep = declare_dependency( + link_with: libtesting_util_lib, + include_directories: include_directories('.'), + dependencies: libtesting_util_deps, +) |