summaryrefslogtreecommitdiffstats
path: root/src/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/meson.build')
-rw-r--r--src/meson.build312
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