[gnome-software/wip/hughsie/meson: 11/11] Port to the meson build system



commit c6a50b865cbd0100b62329372fe57f42f0d1fc19
Author: Richard Hughes <richard hughsie com>
Date:   Thu Dec 1 17:17:00 2016 +0000

    Port to the meson build system
    
    Automake and autoconf are impossible to fully understand and Meson now provides
    everything we need for a much smaller, faster, and more understandable build.
    
    See http://mesonbuild.com/ for more information.

 Makefile.am                                        |   81 ---
 config.h.in                                        |   14 +
 configure.ac                                       |  502 ------------------
 contrib/gnome-software.spec.in                     |   31 +-
 data/Makefile.am                                   |   62 ---
 data/appdata/Makefile.am                           |    8 -
 data/appdata/meson.build                           |   12 +
 data/appdata/org.gnome.Software.appdata.xml.in     |   22 +-
 data/icons/Makefile.am                             |    4 -
 data/icons/hicolor/16x16/Makefile.am               |    4 -
 data/icons/hicolor/22x22/Makefile.am               |    4 -
 data/icons/hicolor/24x24/Makefile.am               |    4 -
 data/icons/hicolor/256x256/Makefile.am             |    4 -
 data/icons/hicolor/32x32/Makefile.am               |    4 -
 data/icons/hicolor/48x48/Makefile.am               |    4 -
 data/icons/hicolor/Makefile.am                     |   10 -
 data/icons/hicolor/meson.build                     |   20 +
 data/icons/hicolor/scalable/Makefile.am            |    6 -
 data/icons/meson.build                             |    5 +
 data/meson.build                                   |   44 ++
 ...org.gnome.software.external-appstream.policy.in |    4 +-
 data/tests/Makefile.am                             |    9 -
 doc/Makefile.am                                    |    3 -
 doc/api/Makefile.am                                |  113 ----
 doc/api/meson.build                                |   14 +
 doc/meson.build                                    |    5 +
 m4/.gitignore                                      |    1 -
 m4/as-linguas.m4                                   |   24 -
 m4/glibtests.m4                                    |   28 -
 meson.build                                        |  220 ++++++++
 meson_options.txt                                  |   19 +
 meson_post_install.sh                              |   18 +
 po/meson.build                                     |   10 +
 src/Makefile.am                                    |  445 ----------------
 src/gnome-software-local-file.desktop.in           |    4 +-
 src/meson.build                                    |  348 +++++++++++++
 src/org.gnome.Software.desktop.in                  |    6 +-
 src/plugins/Makefile.am                            |  417 ---------------
 src/plugins/meson.build                            |  544 ++++++++++++++++++++
 tests/Makefile.am                                  |   13 -
 40 files changed, 1307 insertions(+), 1783 deletions(-)
---
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..a66310f
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,14 @@
+#mesondefine GETTEXT_PACKAGE
+#mesondefine GS_PLUGIN_API_VERSION
+#mesondefine VERSION
+#mesondefine PACKAGE_VERSION
+#mesondefine PACKAGE_NAME
+#mesondefine HAVE_PACKAGEKIT
+
+#mesondefine DATADIR
+#mesondefine GS_DATA
+#mesondefine LIBDIR
+#mesondefine LOCALEDIR
+#mesondefine LOCALSTATEDIR
+#mesondefine SYSCONFDIR
+#mesondefine TESTDATADIR
diff --git a/contrib/gnome-software.spec.in b/contrib/gnome-software.spec.in
index 424f73e..6d3dd5b 100644
--- a/contrib/gnome-software.spec.in
+++ b/contrib/gnome-software.spec.in
@@ -47,6 +47,7 @@ BuildRequires: flatpak-devel >= %{flatpak_version}
 BuildRequires: ostree-devel
 BuildRequires: rpm-devel
 BuildRequires: libgudev1-devel
+BuildRequires: meson
 
 Requires: appstream-data
 %if 0%{?fedora}
@@ -87,23 +88,23 @@ the source tree. Most users do not need this subpackage installed.
 %prep
 %setup -q
 
+# FIXME: remove when https://bugzilla.redhat.com/show_bug.cgi?id=1401062 is fixed
+%global __meson %{__meson} -Denable-gudev=true -Denable-ubuntu-reviews=false -Denable-packagekit=true 
-Denable-external-appstream=false -Db_lundef=false
 %build
-%configure \
-    --disable-static \
-    --enable-gudev \
-%if %{with packagekit}
-    --enable-packagekit \
-%else
-    --disable-packagekit \
-%endif
-    --disable-external-appstream \
-    --disable-silent-rules
-make %{?_smp_mflags}
+%meson
 
-%install
-%make_install
+#    --enable-gudev
+#%if %{with packagekit}
+#    --enable-packagekit
+#%else
+#    --disable-packagekit
+#%endif
+#    --disable-external-appstream
 
-rm %{buildroot}%{_libdir}/gs-plugins-%{gs_plugin_version}/*.la
+%meson_build
+
+%install
+%meson_install
 
 # make the software center load faster
 desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.desktop \
@@ -138,7 +139,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || :
 glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 
 %files -f %{name}.lang
-%doc AUTHORS NEWS README
+%doc AUTHORS README
 %license COPYING
 %{_bindir}/gnome-software
 %{_datadir}/applications/*.desktop
diff --git a/data/appdata/meson.build b/data/appdata/meson.build
new file mode 100644
index 0000000..a952ba8
--- /dev/null
+++ b/data/appdata/meson.build
@@ -0,0 +1,12 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+i18n.merge_file(
+  input: 'org.gnome.Software.appdata.xml.in',
+  output: 'org.gnome.Software.appdata.xml',
+  type: 'xml',
+  po_dir: join_paths(meson.source_root(), 'po'),
+  install: true,
+  install_dir: join_paths(get_option('datadir'), 'appdata')
+)
diff --git a/data/appdata/org.gnome.Software.appdata.xml.in b/data/appdata/org.gnome.Software.appdata.xml.in
index 5fa4825..6a71ff3 100644
--- a/data/appdata/org.gnome.Software.appdata.xml.in
+++ b/data/appdata/org.gnome.Software.appdata.xml.in
@@ -4,41 +4,41 @@
   <id>org.gnome.Software.desktop</id>
   <metadata_license>CC0-1.0</metadata_license>
   <project_license>GPL-2.0+</project_license>
-  <_name>GNOME Software</_name>
-  <_summary>Application manager for GNOME</_summary>
+  <name>GNOME Software</name>
+  <summary>Application manager for GNOME</summary>
   <description>
-    <_p>
+    <p>
       Software allows you to find and install new applications and system
       extensions and remove existing installed applications.
-    </_p>
-    <_p>
+    </p>
+    <p>
       GNOME Software showcases featured and popular applications with useful
       descriptions and multiple screenshots per application.
       Applications can be found either through browsing the list of categories
       or by searching.
       It also allows you to update your system using an offline update.
-    </_p>
+    </p>
   </description>
   <screenshots>
     <screenshot height="675" width="1200" type="default">
       <image>https://git.gnome.org/browse/gnome-software/plain/data/appdata/ss-overview.png</image>
-      <_caption>Overview panel</_caption>
+      <caption>Overview panel</caption>
     </screenshot>
     <screenshot height="675" width="1200">
       <image>https://git.gnome.org/browse/gnome-software/plain/data/appdata/ss-details.png</image>
-      <_caption>Details panel</_caption>
+      <caption>Details panel</caption>
     </screenshot>
     <screenshot height="675" width="1200">
       <image>https://git.gnome.org/browse/gnome-software/plain/data/appdata/ss-installed.png</image>
-      <_caption>Installed panel</_caption>
+      <caption>Installed panel</caption>
     </screenshot>
     <screenshot height="675" width="1200">
       <image>https://git.gnome.org/browse/gnome-software/plain/data/appdata/ss-updates.png</image>
-      <_caption>Updates panel</_caption>
+      <caption>Updates panel</caption>
     </screenshot>
     <screenshot height="675" width="1200">
       <image>https://git.gnome.org/browse/gnome-software/plain/data/appdata/ss-updates-details.png</image>
-      <_caption>The update details</_caption>
+      <caption>The update details</caption>
     </screenshot>
   </screenshots>
 
diff --git a/data/icons/hicolor/meson.build b/data/icons/hicolor/meson.build
new file mode 100644
index 0000000..89ee99d
--- /dev/null
+++ b/data/icons/hicolor/meson.build
@@ -0,0 +1,20 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+install_data('16x16/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/16x16/apps')
+install_data('22x22/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/22x22/apps')
+install_data('24x24/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/24x24/apps')
+install_data('32x32/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/32x32/apps')
+install_data('48x48/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/48x48/apps')
+install_data('256x256/org.gnome.Software.png',
+             install_dir : 'share/icons/hicolor/256x256/apps')
+install_data('scalable/org.gnome.Software-symbolic.svg',
+             install_dir : 'share/icons/hicolor/scalable/apps')
+install_data('scalable/software-installed-symbolic.svg',
+             install_dir : 'share/icons/hicolor/scalable/apps')
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 0000000..3721dff
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,5 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+subdir('hicolor')
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000..cc4f5d0
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,44 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+subdir('appdata')
+subdir('icons')
+
+compiled = gnome.compile_schemas()
+install_data('org.gnome.software.gschema.xml',
+             install_dir : 'share/glib-2.0/schemas')
+
+if get_option('enable-external-appstream')
+  # replace @libexecdir@
+  configure_file(
+    input : 'org.gnome.software.external-appstream.policy.in',
+    output : 'org.gnome.software.external-appstream.policy',
+    install: true,
+    install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions'),
+    configuration : conf
+  )
+endif
+
+install_data([
+  'upgrade-bg.png',
+  'featured-ardour.png',
+  'featured-ardour-bg.png',
+  'featured-blender.png',
+  'featured-builder.png',
+  'featured-builder-bg.jpg',
+  'featured-chess.png',
+  'featured-firefox.png',
+  'featured-gimp.png',
+  'featured-gnome-sudoku.png',
+  'featured-inkscape.svg',
+  'featured-maps.png',
+  'featured-maps-bg.png',
+  'featured-mypaint.png',
+  'featured-polari.svg',
+  'featured-transmission.png',
+  'featured-weather.png',
+  'featured-weather-bg.png'
+  ],
+  install_dir : 'share/gnome-software'
+)
diff --git a/data/org.gnome.software.external-appstream.policy.in 
b/data/org.gnome.software.external-appstream.policy.in
index a59df11..69af72a 100644
--- a/data/org.gnome.software.external-appstream.policy.in
+++ b/data/org.gnome.software.external-appstream.policy.in
@@ -8,8 +8,8 @@
   <vendor_url>https://www.gnome.org/</vendor_url>
 
   <action id="org.gnome.software.install-appstream">
-    <_description>Install an appstream file into a system location</_description>
-    <_message>Installing an appstream file into a system location</_message>
+    <description>Install an appstream file into a system location</description>
+    <message>Installing an appstream file into a system location</message>
     <defaults>
       <allow_any>yes</allow_any>
       <allow_active>yes</allow_active>
diff --git a/doc/api/meson.build b/doc/api/meson.build
new file mode 100644
index 0000000..7f667ad
--- /dev/null
+++ b/doc/api/meson.build
@@ -0,0 +1,14 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+gnome.gtkdoc('gnome-software',
+  src_dir : join_paths(meson.source_root(), 'src'),
+  main_xml : 'gnome-software-docs.xml',
+  content_files : [
+    'gs-example-details.png',
+    'gs-example-installed.png',
+    'gs-example-search.png'
+  ],
+  install : true
+)
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644
index 0000000..31cbbc1
--- /dev/null
+++ b/doc/meson.build
@@ -0,0 +1,5 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+subdir('api')
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..5b41bf9
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,220 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+project('gnome-software', 'c',
+  version : '3.23.3',
+  default_options : ['warning_level=1'],
+  meson_version : '>=0.37.0'
+)
+
+conf = configuration_data()
+conf.set('VERSION', '"@0@"'.format(meson.project_version()))
+conf.set('PACKAGE_NAME', '"@0@"'.format(meson.project_name()))
+conf.set('PACKAGE_VERSION', '"@0@"'.format(meson.project_version()))
+
+# this refers to the gnome-software plugin API version
+# this is not in any way related to a package or soname version
+conf.set('GS_PLUGIN_API_VERSION', '"@0@"'.format('11'))
+
+# install docs
+install_data('README', install_dir : 'share/doc/gnome-software')
+
+# get suported warning flags
+test_args = [
+  '-fstack-protector-strong',
+  '-Waggregate-return',
+  '-Warray-bounds',
+  '-Wcast-align',
+  '-Wclobbered',
+  '-Wdeclaration-after-statement',
+  '-Wempty-body',
+  '-Wextra',
+  '-Wformat=2',
+  '-Wformat-nonliteral',
+  '-Wformat-security',
+  '-Wformat-signedness',
+  '-Wignored-qualifiers',
+  '-Wimplicit-function-declaration',
+  '-Winit-self',
+  '-Winline',
+  '-Wmissing-declarations',
+  '-Wmissing-format-attribute',
+  '-Wmissing-include-dirs',
+  '-Wmissing-noreturn',
+  '-Wmissing-parameter-type',
+  '-Wmissing-prototypes',
+  '-Wnested-externs',
+  '-Wno-discarded-qualifiers',
+  '-Wno-missing-field-initializers',
+  '-Wno-strict-aliasing',
+  '-Wno-suggest-attribute=format',
+  '-Wno-unused-parameter',
+  '-Wold-style-definition',
+  '-Woverride-init',
+  '-Wpacked',
+  '-Wpointer-arith',
+  '-Wredundant-decls',
+  '-Wreturn-type',
+  '-Wshadow',
+  '-Wsign-compare',
+  '-Wstrict-aliasing',
+  '-Wstrict-prototypes',
+  '-Wswitch-default',
+  '-Wtype-limits',
+  '-Wundef',
+  '-Wuninitialized',
+  '-Wunused-but-set-variable',
+  '-Wwrite-strings'
+]
+cc = meson.get_compiler('c')
+foreach arg: test_args
+  if cc.has_argument(arg)
+    add_project_arguments(arg, language : 'c')
+  endif
+endforeach
+
+# enable full RELRO where possible
+# FIXME: until https://github.com/mesonbuild/meson/issues/1140 is fixed
+global_link_args = []
+test_link_args = [
+  '-Wl,-z,relro',
+  '-Wl,-z,now',
+]
+foreach arg: test_link_args
+  if cc.has_argument(arg)
+    global_link_args += arg
+  endif
+endforeach
+add_global_link_arguments(
+  global_link_args,
+  language: 'c'
+)
+
+appstream_glib = dependency('appstream-glib', version : '>= 0.6.5')
+gdk_pixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.31.5')
+gio_unix = dependency('gio-unix-2.0')
+gmodule = dependency('gmodule-2.0')
+gtk = dependency('gtk+-3.0', version : '>= 3.20.0')
+json_glib = dependency('json-glib-1.0', version : '>= 1.1.1')
+libm = cc.find_library('libm', required: false)
+libsecret = dependency('libsecret-1')
+libsoup = dependency('libsoup-2.4', version : '>= 2.51.92')
+sqlite3 = dependency('sqlite3')
+
+if get_option('enable-gnome-desktop')
+  gnome_desktop = dependency('gnome-desktop-3.0', version : '>= 3.17.92')
+endif
+
+if get_option('enable-gtkspell')
+  gtkspell = dependency('gtkspell3-3.0')
+endif
+
+if get_option('enable-polkit')
+  polkit = dependency('polkit-gobject-1')
+endif
+
+if get_option('enable-ostree')
+  ostree = dependency('ostree-1')
+endif
+
+if get_option('enable-packagekit')
+  packagekit = dependency('packagekit-glib2', version : '>= 1.1.0')
+  conf.set('HAVE_PACKAGEKIT', '1')
+  add_project_arguments('-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE',
+                        language : 'c')
+endif
+
+if get_option('enable-firmware')
+  fwupd = dependency('fwupd', version : '>= 0.7.0')
+endif
+
+if get_option('enable-flatpak')
+  flatpak = dependency('flatpak', version : '>= 0.6.12')
+endif
+
+if get_option('enable-limba')
+  limba = dependency('limba', version : '>= 0.5.6')
+endif
+
+if get_option('enable-rpm')
+  rpm = dependency('rpm')
+endif
+
+if get_option('enable-ubuntu-reviews')
+  oauth = dependency('oauth')
+endif
+
+if get_option('enable-gudev')
+  gudev = dependency('gudev-1.0')
+endif
+
+if get_option('enable-snap')
+  snap = dependency('snapd-glib')
+endif
+
+gnome = import('gnome')
+i18n = import('i18n')
+
+conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+conf.set_quoted('TESTDATADIR', '..')
+conf.set_quoted('LOCALEDIR',
+                join_paths(get_option('prefix'),
+                           get_option('localedir')))
+conf.set_quoted('DATADIR',
+                join_paths(get_option('prefix'),
+                           get_option('datadir')))
+conf.set_quoted('LIBDIR',
+                join_paths(get_option('prefix'),
+                           get_option('libdir')))
+conf.set_quoted('SYSCONFDIR',
+                join_paths(get_option('prefix'),
+                           get_option('sysconfdir')))
+# FIXME: xxx
+conf.set_quoted('LOCALSTATEDIR', '/var')
+conf.set_quoted('GS_DATA',
+                join_paths(get_option('prefix'),
+                           get_option('datadir'),
+                           'gnome-software'))
+configure_file(input : 'config.h.in',
+               output : 'config.h',
+               configuration : conf)
+top_build_incdir = include_directories(meson.current_build_dir())
+
+add_project_arguments('-DI_KNOW_THE_GNOME_SOFTWARE_API_IS_SUBJECT_TO_CHANGE',
+                      language : 'c')
+
+subdir('src')
+subdir('po')
+subdir('data')
+subdir('doc')
+
+archiver = find_program('git', required : false)
+if archiver.found()
+  run_target('dist',
+    # git config tar.tar.xz.command "xz -c"
+    command: [
+      'git', 'archive',
+      '--prefix=' + meson.project_name() + '-' + meson.project_version() + '/',
+      'HEAD',
+      '--format=tar.xz',
+      '--output',
+      meson.project_name() + '-' + meson.project_version() + '.tar.xz'
+    ]
+  )
+else
+  message('git not found, you will not be able to run `ninja dist`')
+endif
+
+appstream_util = find_program('appstream-util', required : false)
+if appstream_util.found()
+  custom_target('NEWS',
+    output : 'NEWS',
+    input : 'data/appdata/org.gnome.Software.appdata.xml.in',
+    command : [appstream_util, 'appdata-to-news', '@INPUT@'],
+    capture : true
+  )
+endif
+
+# FIXME: remove when https://github.com/mesonbuild/meson/issues/837 fixed
+meson.add_install_script('meson_post_install.sh')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..9fb3cc9
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,19 @@
+option('enable-tests', type : 'boolean', value : true, description : 'enable tests')
+option('enable-gtkspell', type : 'boolean', value : true, description : 'enable gtkspell')
+option('enable-gnome-desktop', type : 'boolean', value : true, description : 'enable gnome-desktop')
+option('enable-man', type : 'boolean', value : true, description : 'enable man pages')
+option('enable-packagekit', type : 'boolean', value : true, description : 'enable PackageKit support')
+option('enable-polkit', type : 'boolean', value : true, description : 'enable PolKit support')
+option('enable-firmware', type : 'boolean', value : true, description : 'enable firmware support')
+option('enable-flatpak', type : 'boolean', value : true, description : 'enable Flatpak support')
+option('enable-ostree', type : 'boolean', value : true, description : 'enable OSTree support')
+option('enable-limba', type : 'boolean', value : false, description : 'enable Limba support')
+option('enable-rpm', type : 'boolean', value : true, description : 'enable RPM support')
+option('enable-steam', type : 'boolean', value : true, description : 'enable Steam support')
+option('enable-shell-extensions', type : 'boolean', value : true, description : 'enable shell extensions 
support')
+option('enable-odrs', type : 'boolean', value : true, description : 'enable ODRS support')
+option('enable-ubuntu-reviews', type : 'boolean', value : true, description : 'enable Ubuntu reviews 
support')
+option('enable-webapps', type : 'boolean', value : true, description : 'enable webapps support')
+option('enable-gudev', type : 'boolean', value : true, description : 'enable GUdev support')
+option('enable-snap', type : 'boolean', value : false, description : 'enable Snap support')
+option('enable-external-appstream', type : 'boolean', value : false, description : 'enable external 
AppStream support')
diff --git a/meson_post_install.sh b/meson_post_install.sh
new file mode 100755
index 0000000..465156b
--- /dev/null
+++ b/meson_post_install.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+if [ -z $MESON_INSTALL_PREFIX ]; then
+    echo 'This is meant to be ran from Meson only!'
+    exit 1
+fi
+
+if [ -z $DESTDIR ]; then
+    echo 'Compiling GSchema'
+    glib-compile-schemas "$MESON_INSTALL_PREFIX/share/glib-2.0/schemas"
+    echo 'Updating icon cache'
+    gtk-update-icon-cache -qtf "$MESON_INSTALL_PREFIX/share/icons/hicolor"
+    echo 'Updating desktop database'
+    update-desktop-database -q "$MESON_INSTALL_PREFIX/share/applications"
+fi
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..2b82b7e
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,10 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+i18n.gettext(meson.project_name(),
+  preset : 'glib',
+  args: [
+  '--default-domain=' + meson.project_name(),
+  ]
+)
diff --git a/src/gnome-software-local-file.desktop.in b/src/gnome-software-local-file.desktop.in
index d5d6d6f..0ae4b17 100644
--- a/src/gnome-software-local-file.desktop.in
+++ b/src/gnome-software-local-file.desktop.in
@@ -1,6 +1,6 @@
 [Desktop Entry]
-_Name=Software Install
-_Comment=Install selected software on the system
+Name=Software Install
+Comment=Install selected software on the system
 Categories=System;
 Exec=gnome-software --local-filename=%f
 Terminal=false
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..49f19d5
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,348 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+subdir('plugins')
+
+cargs = ['-DG_LOG_DOMAIN="Gpm"']
+
+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'
+)
+
+gnome_software_sources = [
+  'gnome-software.h',
+  'gs-utils.c',
+  'gs-utils.h',
+  'gs-app.c',
+  'gs-app.h',
+  'gs-app-private.h',
+  'gs-app-list.c',
+  'gs-app-list.h',
+  'gs-app-list-private.h',
+  'gs-auth.c',
+  'gs-auth.h',
+  'gs-auth-dialog.c',
+  'gs-auth-dialog.h',
+  'gs-category.c',
+  'gs-category.h',
+  'gs-category-private.h',
+  'gs-common.c',
+  'gs-common.h',
+  'gs-content-rating.c',
+  'gs-content-rating.h',
+  'gs-debug.c',
+  'gs-debug.h',
+  'gs-app-addon-row.c',
+  'gs-app-addon-row.h',
+  'gs-app-row.c',
+  'gs-app-row.h',
+  'gs-star-widget.c',
+  'gs-star-widget.h',
+  'gs-popular-tile.c',
+  'gs-popular-tile.h',
+  'gs-feature-tile.c',
+  'gs-feature-tile.h',
+  'gs-category-tile.c',
+  'gs-category-tile.h',
+  'gs-app-tile.c',
+  'gs-app-tile.h',
+  'gs-summary-tile.c',
+  'gs-summary-tile.h',
+  'gs-app-folder-dialog.c',
+  'gs-app-folder-dialog.h',
+  'gs-first-run-dialog.c',
+  'gs-first-run-dialog.h',
+  'gs-history-dialog.c',
+  'gs-history-dialog.h',
+  'gs-fixed-size-bin.h',
+  'gs-fixed-size-bin.c',
+  'gs-hiding-box.h',
+  'gs-hiding-box.c',
+  'gs-info-bar.h',
+  'gs-info-bar.c',
+  'gs-language.c',
+  'gs-language.h',
+  'gs-os-release.c',
+  'gs-os-release.h',
+  'gs-page.c',
+  'gs-page.h',
+  'gs-plugin.c',
+  'gs-plugin.h',
+  'gs-plugin-event.c',
+  'gs-plugin-event.h',
+  'gs-plugin-private.h',
+  'gs-plugin-types.h',
+  'gs-plugin-vfuncs.h',
+  'gs-progress-button.c',
+  'gs-progress-button.h',
+  'gs-removal-dialog.c',
+  'gs-removal-dialog.h',
+  'gs-review-bar.c',
+  'gs-review-bar.h',
+  'gs-review-dialog.c',
+  'gs-review-dialog.h',
+  'gs-review-histogram.c',
+  'gs-review-histogram.h',
+  'gs-review-row.c',
+  'gs-review-row.h',
+  'gs-screenshot-image.c',
+  'gs-screenshot-image.h',
+  'gs-shell.c',
+  'gs-shell.h',
+  'gs-shell-details.c',
+  'gs-shell-details.h',
+  'gs-shell-category.c',
+  'gs-shell-category.h',
+  'gs-shell-extras.c',
+  'gs-shell-extras.h',
+  'gs-shell-installed.c',
+  'gs-shell-installed.h',
+  'gs-shell-moderate.c',
+  'gs-shell-moderate.h',
+  'gs-shell-loading.c',
+  'gs-shell-loading.h',
+  'gs-shell-overview.c',
+  'gs-shell-overview.h',
+  'gs-shell-updates.c',
+  'gs-shell-updates.h',
+  'gs-shell-search.c',
+  'gs-shell-search.h',
+  'gs-sources-dialog.c',
+  'gs-sources-dialog.h',
+  'gs-sources-dialog-row.c',
+  'gs-sources-dialog-row.h',
+  'gs-update-dialog.c',
+  'gs-update-dialog.h',
+  'gs-update-list.c',
+  'gs-update-list.h',
+  'gs-update-monitor.c',
+  'gs-update-monitor.h',
+  'gs-upgrade-banner.c',
+  'gs-upgrade-banner.h',
+  'gs-vendor.c',
+  'gs-vendor.h',
+  'gs-plugin-loader.c',
+  'gs-plugin-loader.h',
+  'gs-plugin-loader-sync.c',
+  'gs-plugin-loader-sync.h',
+  'gs-shell-search-provider.c',
+  'gs-shell-search-provider.h',
+  'gs-application.c',
+  'gs-application.h',
+  'gs-folders.c',
+  'gs-folders.h',
+  'gs-main.c'
+]
+
+gnome_software_dependencies = [gtk, gio_unix, libm, appstream_glib, json_glib, libsoup, libsecret, gmodule]
+
+if get_option('enable-packagekit')
+  gnome_software_sources += [
+    'gs-dbus-helper.c',
+    'gs-dbus-helper.h',
+  ]
+  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
+
+executable(
+  'gnome-software',
+  resources_src,
+  gdbus_src,
+  sources : gnome_software_sources,
+  include_directories : [
+    include_directories('..'),
+  ],
+  dependencies : gnome_software_dependencies,
+  c_args : cargs,
+  install : true,
+  install_dir : 'bin'
+)
+
+executable(
+  'gnome-software-cmd',
+  sources : [
+    'gs-app.c',
+    'gs-app-list.c',
+    'gs-auth.c',
+    'gs-cmd.c',
+    'gs-common.c',
+    'gs-debug.c',
+    'gs-utils.c',
+    'gs-os-release.c',
+    'gs-plugin-event.c',
+    'gs-plugin-loader.c',
+    'gs-plugin-loader-sync.c',
+    'gs-category.c',
+    'gs-plugin.c'
+  ],
+  include_directories : [
+    include_directories('..'),
+  ],
+  dependencies : [
+    appstream_glib,
+    gio_unix,
+    gmodule,
+    gtk,
+    json_glib,
+    libm,
+    libsecret,
+    libsoup
+  ],
+  c_args : cargs,
+  install : true,
+  install_dir : 'libexec'
+)
+
+if get_option('enable-tests')
+  e = executable(
+    'gs-self-test',
+    sources : [
+      'gs-app.c',
+      'gs-app-list.c',
+      'gs-auth.c',
+      'gs-category.c',
+      'gs-common.c',
+      'gs-os-release.c',
+      'gs-plugin-event.c',
+      'gs-plugin-loader-sync.c',
+      'gs-plugin-loader.c',
+      'gs-plugin.c',
+      'gs-utils.c',
+      'gs-self-test.c'
+    ],
+    include_directories : [
+      include_directories('..'),
+    ],
+    dependencies : [
+      appstream_glib,
+      gio_unix,
+      gmodule,
+      gtk,
+      json_glib,
+      libm,
+      libsecret,
+      libsoup
+    ],
+    c_args : cargs
+  )
+  test('gs-self-test', e)
+endif
+
+install_headers([
+    'gnome-software.h',
+    'gs-app.h',
+    'gs-app-list.h',
+    'gs-auth.h',
+    'gs-category.h',
+    'gs-os-release.h',
+    'gs-plugin.h',
+    'gs-plugin-event.h',
+    'gs-plugin-types.h',
+    'gs-plugin-vfuncs.h',
+    'gs-utils.h'
+  ],
+  subdir : 'gnome-software'
+)
+
+# replace @VERSION@
+configure_file(
+  input : 'org.gnome.Software.service.in',
+  output : 'org.gnome.Software.service',
+  install: true,
+  install_dir: join_paths(get_option('datadir'), 'dbus-1/services'),
+  configuration : conf
+)
+
+# replace @bindir@
+configure_file(
+  input : 'gnome-software-service.desktop.in',
+  output : 'gnome-software-service.desktop',
+  install: true,
+  install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'),
+  configuration : conf
+)
+
+i18n.merge_file(
+  input: 'org.gnome.Software.desktop.in',
+  output: 'org.gnome.Software.desktop',
+  type: 'desktop',
+  po_dir: join_paths(meson.source_root(), 'po'),
+  install: true,
+  install_dir: join_paths(get_option('datadir'), 'applications')
+)
+
+i18n.merge_file(
+  input: 'gnome-software-local-file.desktop.in',
+  output: 'gnome-software-local-file.desktop',
+  type: 'desktop',
+  po_dir: join_paths(meson.source_root(), 'po'),
+  install: true,
+  install_dir: join_paths(get_option('datadir'), 'applications')
+)
+
+install_data('org.gnome.Software-search-provider.ini',
+             install_dir : 'share/gnome-shell/search-providers')
+
+if get_option('enable-man')
+    xsltproc = find_program('xsltproc')
+    custom_target('manfile',
+    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('enable-packagekit')
+  # replace @bindir@
+  configure_file(
+    input : 'org.freedesktop.PackageKit.service.in',
+    output : 'org.freedesktop.PackageKit.service',
+    install: true,
+    install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services'),
+    configuration : conf
+  )
+endif
+
+configure_file(
+  input : 'gnome-software.pc.in',
+  output : 'gnome-software.pc',
+  install: true,
+  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
+  configuration : conf
+)
diff --git a/src/org.gnome.Software.desktop.in b/src/org.gnome.Software.desktop.in
index 26762c4..e3987e1 100644
--- a/src/org.gnome.Software.desktop.in
+++ b/src/org.gnome.Software.desktop.in
@@ -1,12 +1,12 @@
 [Desktop Entry]
-_Name=Software
-_Comment=Add, remove or update software on this computer
+Name=Software
+Comment=Add, remove or update software on this computer
 Icon=org.gnome.Software
 Exec=gnome-software %U
 Terminal=false
 Type=Application
 Categories=GNOME;GTK;System;PackageManager;
-_Keywords=Updates;Upgrade;Sources;Repositories;Preferences;Install;Uninstall;Program;Software;App;Store;
+Keywords=Updates;Upgrade;Sources;Repositories;Preferences;Install;Uninstall;Program;Software;App;Store;
 StartupNotify=true
 MimeType=x-scheme-handler/appstream;
 X-GNOME-Bugzilla-Bugzilla=GNOME
diff --git a/src/plugins/meson.build b/src/plugins/meson.build
new file mode 100644
index 0000000..1bde324
--- /dev/null
+++ b/src/plugins/meson.build
@@ -0,0 +1,544 @@
+# Copyright (C) 2016 Richard Hughes <richard hughsie com>
+#
+# Licensed under the GNU General Public License Version 2 or later
+
+plugin_dir = join_paths(get_option('libdir'), 'gs-plugins-11')
+
+plugin_libs = [
+  appstream_glib,
+  gtk,
+  json_glib,
+  libsoup
+]
+
+shared_module('gs_plugin_dummy',
+  sources : 'gs-plugin-dummy.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : [appstream_glib, gtk, libsoup]
+)
+
+shared_module('gs_plugin_dpkg',
+  sources : 'gs-plugin-dpkg.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-external-appstream')
+  executable(
+    'gnome-software-install-appstream',
+    sources : 'gs-install-appstream.c',
+    include_directories : [
+      include_directories('@0@/..'.format(meson.current_build_dir())),
+    ],
+    dependencies : [appstream_glib],
+    c_args : cargs,
+    install : true,
+    install_dir : 'libexec'
+  )
+  shared_module('gs_plugin_external-appstream',
+  sources : 'gs-plugin-external-appstream.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [gio_unix, appstream_glib, libsoup]
+  )
+endif
+
+shared_module('gs_plugin_key-colors',
+  sources : 'gs-plugin-key-colors.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-shell-extensions')
+  shared_module('gs_plugin_shell-extensions',
+  sources : 'gs-plugin-shell-extensions.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : plugin_libs
+  )
+endif
+
+shared_module('gs_plugin_fedora-distro-upgrades',
+  sources : 'gs-plugin-fedora-distro-upgrades.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-gudev')
+  shared_module('gs_plugin_modalias',
+  sources : 'gs-plugin-modalias.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, gudev ]
+  )
+endif
+
+shared_module('gs_plugin_provenance',
+  sources : 'gs-plugin-provenance.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_provenance-license',
+  sources : 'gs-plugin-provenance-license.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_fedora-tagger-usage',
+  sources : 'gs-plugin-fedora-tagger-usage.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_epiphany',
+  sources : 'gs-plugin-epiphany.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_icons',
+  sources : 'gs-plugin-icons.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_appstream',
+  sources : [
+    'gs-appstream.c',
+    'gs-appstream.h',
+    'gs-plugin-appstream.c'
+  ],
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-limba')
+shared_module('gs_plugin_limba',
+  sources : 'gs-plugin-limba.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+  )
+endif
+
+if get_option('enable-flatpak')
+  shared_module('gs_plugin_flatpak',
+    sources : [
+      'gs-appstream.c',
+      'gs-appstream.h',
+      'gs-flatpak.c',
+      'gs-flatpak.h',
+      'gs-flatpak-symlinks.c',
+      'gs-flatpak-symlinks.h',
+      'gs-plugin-flatpak.c'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, flatpak ]
+  )
+endif
+
+if get_option('enable-ostree')
+  shared_module('gs_plugin_ostree',
+    sources : 'gs-plugin-ostree.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, ostree ]
+  )
+endif
+
+if get_option('enable-odrs')
+  shared_module('gs_plugin_odrs',
+    sources : 'gs-plugin-odrs.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : plugin_libs
+  )
+endif
+
+if get_option('enable-rpm')
+  shared_module('gs_plugin_rpm',
+    sources : 'gs-plugin-rpm.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, rpm ]
+  )
+endif
+
+if get_option('enable-steam')
+  shared_module('gs_plugin_steam',
+    sources : 'gs-plugin-steam.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : plugin_libs
+  )
+endif
+
+shared_module('gs_plugin_repos',
+  sources : 'gs-plugin-repos.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_desktop-categories',
+  sources : [
+    'gs-plugin-desktop-categories.c',
+    'gs-desktop-common.c',
+    'gs-desktop-common.h'
+  ],
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_desktop-menu-path',
+  sources : [
+    'gs-plugin-desktop-menu-path.c',
+    'gs-desktop-common.c',
+    'gs-desktop-common.h'
+  ],
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_hardcoded-blacklist',
+  sources : 'gs-plugin-hardcoded-blacklist.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_hardcoded-popular',
+  sources : 'gs-plugin-hardcoded-popular.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+shared_module('gs_plugin_hardcoded-featured',
+  sources : 'gs-plugin-hardcoded-featured.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-ubuntu-reviews')
+  shared_module('gs_plugin_ubuntu-reviews',
+    sources : 'gs-plugin-ubuntu-reviews.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, oauth ]
+  )
+endif
+
+if get_option('enable-firmware')
+  shared_module('gs_plugin_fwupd',
+    sources : 'gs-plugin-fwupd.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, fwupd ]
+  )
+endif
+
+if get_option('enable-packagekit')
+  shared_module('gs_plugin_systemd-updates',
+    sources : [
+      'gs-plugin-systemd-updates.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit',
+    sources : [
+      'gs-plugin-packagekit.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-refine',
+    sources : [
+      'gs-plugin-packagekit-refine.c',
+      'gs-markdown.c',
+      'gs-markdown.h',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-refresh',
+    sources : [
+      'gs-plugin-packagekit-refresh.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-local',
+    sources : [
+      'gs-plugin-packagekit-local.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-history',
+  sources : 'gs-plugin-packagekit-history.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-upgrade',
+    sources : [
+      'gs-plugin-packagekit-upgrade.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-offline',
+  sources : 'gs-plugin-packagekit-offline.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-origin',
+    sources : [
+      'gs-plugin-packagekit-origin.c',
+      'packagekit-common.c',
+      'packagekit-common.h'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ]
+  )
+
+  shared_module('gs_plugin_packagekit-proxy',
+  sources : 'gs-plugin-packagekit-proxy.c',
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, packagekit ])
+endif
+
+if get_option('enable-snap')
+  shared_module('gs_plugin_snap',
+    sources : [
+      'gs-plugin-snap.c',
+      'gs-snapd.h',
+      'gs-snapd.c'
+    ],
+    include_directories : [
+      include_directories('..'),
+      include_directories('../..'),
+    ],
+    install : true,
+    install_dir: plugin_dir,
+    dependencies : [ plugin_libs, snap ])
+endif
+
+shared_module('gs_plugin_ubuntuone',
+  sources : 'gs-plugin-ubuntuone.c',
+  include_directories : [
+    include_directories('..'),
+    include_directories('../..'),
+  ],
+  install : true,
+  install_dir: plugin_dir,
+  dependencies : plugin_libs
+)
+
+if get_option('enable-tests')
+  e = executable('gs-self-test2',
+    sources : [
+      'gs-markdown.c',
+      'gs-self-test.c'
+    ],
+    include_directories : [
+      include_directories('../..'),
+    ],
+    dependencies : [gtk, gio_unix, libm, appstream_glib ]
+  )
+  test('gs-self-test', e)
+endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]