diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:57:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:57:27 +0000 |
commit | 6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18 (patch) | |
tree | d423850ae901365e582137bdf2b5cbdffd7ca266 /src/meson.build | |
parent | Initial commit. (diff) | |
download | gnome-software-upstream.tar.xz gnome-software-upstream.zip |
Adding upstream version 43.5.upstream/43.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/meson.build')
-rw-r--r-- | src/meson.build | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..e7f5c48 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,312 @@ +cargs = ['-DG_LOG_DOMAIN="Gs"'] +cargs += ['-DLOCALPLUGINDIR=""'] + +resources_src = gnome.compile_resources( + 'gs-resources', + 'gnome-software.gresource.xml', + source_dir : '.', + c_name : 'gs' +) + +gdbus_src = gnome.gdbus_codegen( + 'gs-shell-search-provider-generated', + 'shell-search-provider-dbus-interfaces.xml', + interface_prefix : 'org.gnome.', + namespace : 'Gs' +) + +enums = gnome.mkenums_simple('gs-enums', + sources : [ + 'gs-context-dialog-row.h', + ], + install_header : false, +) + +gnome_software_sources = [ + 'gs-age-rating-context-dialog.c', + 'gs-app-addon-row.c', + 'gs-app-reviews-dialog.c', + 'gs-app-version-history-dialog.c', + 'gs-app-version-history-row.c', + 'gs-application.c', + 'gs-app-context-bar.c', + 'gs-app-details-page.c', + 'gs-app-row.c', + 'gs-app-tile.c', + 'gs-app-translation-dialog.c', + 'gs-basic-auth-dialog.c', + 'gs-category-page.c', + 'gs-category-tile.c', + 'gs-common.c', + 'gs-context-dialog-row.c', + 'gs-css.c', + 'gs-description-box.c', + 'gs-details-page.c', + 'gs-extras-page.c', + 'gs-feature-tile.c', + 'gs-featured-carousel.c', + 'gs-hardware-support-context-dialog.c', + 'gs-info-bar.c', + 'gs-info-window.c', + 'gs-installed-page.c', + 'gs-language.c', + 'gs-layout-manager.c', + 'gs-license-tile.c', + 'gs-loading-page.c', + 'gs-lozenge.c', + 'gs-main.c', + 'gs-metered-data-dialog.c', + 'gs-moderate-page.c', + 'gs-overview-page.c', + 'gs-origin-popover-row.c', + 'gs-os-update-page.c', + 'gs-page.c', + 'gs-prefs-dialog.c', + 'gs-progress-button.c', + 'gs-removal-dialog.c', + 'gs-repos-dialog.c', + 'gs-repos-section.c', + 'gs-repo-row.c', + 'gs-review-bar.c', + 'gs-review-dialog.c', + 'gs-review-histogram.c', + 'gs-review-row.c', + 'gs-safety-context-dialog.c', + 'gs-screenshot-carousel.c', + 'gs-screenshot-image.c', + 'gs-search-page.c', + 'gs-shell.c', + 'gs-shell-search-provider.c', + 'gs-star-image.c', + 'gs-star-widget.c', + 'gs-storage-context-dialog.c', + 'gs-summary-tile.c', + 'gs-update-dialog.c', + 'gs-update-list.c', + 'gs-update-monitor.c', + 'gs-updates-page.c', + 'gs-updates-section.c', + 'gs-upgrade-banner.c', + 'gs-vendor.c' +] + +gnome_software_dependencies = [ + appstream, + gio_unix, + glib, + gmodule, + gtk, + json_glib, + libgnomesoftware_dep, + libadwaita, + libm, + libsoup, + libxmlb, +] + +if get_option('packagekit') + gnome_software_sources += [ + 'gs-dbus-helper.c', + ] + gnome_software_sources += gnome.gdbus_codegen( + 'gs-packagekit-generated', + 'org.freedesktop.PackageKit.xml', + interface_prefix : 'org.freedesktop.', + namespace : 'Gs' + ) + gnome_software_sources += gnome.gdbus_codegen( + 'gs-packagekit-modify2-generated', + 'org.freedesktop.PackageKit.Modify2.xml', + interface_prefix : 'org.freedesktop.', + namespace : 'Gs' + ) + gnome_software_dependencies += [packagekit] +endif + +if gsettings_desktop_schemas.found() + gnome_software_dependencies += [gsettings_desktop_schemas] +endif + +if get_option('mogwai') + gnome_software_dependencies += [mogwai_schedule_client] +endif + +executable( + 'gnome-software', + resources_src, + gdbus_src, + sources : gnome_software_sources + enums, + include_directories : [ + include_directories('..'), + include_directories('../lib'), + ], + dependencies : gnome_software_dependencies, + c_args : cargs, + install : true, + install_dir : get_option('bindir'), + install_rpath : gs_private_libdir, +) + +executable( + 'gnome-software-restarter', + sources : 'gs-restarter.c', + include_directories : [ + include_directories('..'), + ], + dependencies : [ + gio_unix, + glib, + ], + c_args : cargs, + install : true, + install_dir : get_option('libexecdir') +) + +# no quoting +cdata = configuration_data() +cdata.set('bindir', join_paths(get_option('prefix'), + get_option('bindir'))) +if (get_option('apt')) + cdata.set('apthandler', 'x-scheme-handler/apt;') +else + cdata.set('apthandler', '') +endif +if (get_option('snap')) + cdata.set('snaphandler', 'x-scheme-handler/snap;') +else + cdata.set('snaphandler', '') +endif +cdata.set('application_id', application_id) + +# replace @bindir@ +configure_file( + input : 'org.gnome.Software.service.in', + output : application_id + '.service', + install_dir: join_paths(get_option('datadir'), 'dbus-1/services'), + configuration : cdata +) + +i18n.merge_file( + input: + # replace mime-type handlers + configure_file( + input : 'org.gnome.Software.desktop.in', + output : 'org.gnome.Software.desktop.tmp', + configuration : cdata + ), + output: application_id + '.desktop', + type: 'desktop', + po_dir: join_paths(meson.project_source_root(), 'po'), + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') +) + +if get_option('flatpak') + i18n.merge_file( + input: 'gnome-software-local-file-flatpak.desktop.in', + output: 'gnome-software-local-file-flatpak.desktop', + type: 'desktop', + po_dir: join_paths(meson.project_source_root(), 'po'), + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') + ) +endif + +if get_option('fwupd') + i18n.merge_file( + input: 'gnome-software-local-file-fwupd.desktop.in', + output: 'gnome-software-local-file-fwupd.desktop', + type: 'desktop', + po_dir: join_paths(meson.project_source_root(), 'po'), + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') + ) +endif + +if get_option('packagekit') or get_option('rpm_ostree') + i18n.merge_file( + input: 'gnome-software-local-file-packagekit.desktop.in', + output: 'gnome-software-local-file-packagekit.desktop', + type: 'desktop', + po_dir: join_paths(meson.project_source_root(), 'po'), + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') + ) +endif + +if get_option('snap') + i18n.merge_file( + input: 'gnome-software-local-file-snap.desktop.in', + output: 'gnome-software-local-file-snap.desktop', + type: 'desktop', + po_dir: join_paths(meson.project_source_root(), 'po'), + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') + ) +endif + +install_data('org.gnome.Software-search-provider.ini', + install_dir : 'share/gnome-shell/search-providers') + +if get_option('man') + xsltproc = find_program('xsltproc') + custom_target('manfile-gnome-software', + input: 'gnome-software.xml', + output: 'gnome-software.1', + install: true, + install_dir: join_paths(get_option('mandir'), 'man1'), + command: [ + xsltproc, + '--nonet', + '--stringparam', 'man.output.quietly', '1', + '--stringparam', 'funcsynopsis.style', 'ansi', + '--stringparam', 'man.th.extra1.suppress', '1', + '--stringparam', 'man.authors.section.enabled', '0', + '--stringparam', 'man.copyright.section.enabled', '0', + '-o', '@OUTPUT@', + 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl', + '@INPUT@' + ] + ) +endif + +if get_option('packagekit') + # replace @bindir@ + configure_file( + input : 'org.freedesktop.PackageKit.service.in', + output : 'org.freedesktop.PackageKit.service', + install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services'), + configuration : cdata + ) +endif + +if get_option('tests') + cargs += ['-DTESTDATADIR="' + join_paths(meson.current_source_dir(), '..', 'data') + '"'] + e = executable( + 'gs-self-test-src', + compiled_schemas, + sources : [ + 'gs-css.c', + 'gs-common.c', + 'gs-self-test.c', + ], + include_directories : [ + include_directories('..'), + include_directories('../lib'), + ], + dependencies : [ + appstream, + gio_unix, + glib, + gmodule, + gsettings_desktop_schemas, + gtk, + json_glib, + libgnomesoftware_dep, + libm, + libsoup, + ], + c_args : cargs + ) + test('gs-self-test-src', e, suite: ['plugins', 'src'], env: test_env) +endif |