[gnome-clocks] [snap] libgweather switched to Meson



commit b501c0defa9bf02341907d557621908293c4fad9
Author: Ken VanDine <kvandine gnome org>
Date:   Sun Feb 25 21:29:17 2018 -0500

    [snap] libgweather switched to Meson

 snap/plugins/x-meson.py |   68 +++++++++++++++++++++++++++++++++++++++++++++++
 snap/snapcraft.yaml     |   14 ++++-----
 2 files changed, 74 insertions(+), 8 deletions(-)
---
diff --git a/snap/plugins/x-meson.py b/snap/plugins/x-meson.py
new file mode 100644
index 0000000..4bfb1cd
--- /dev/null
+++ b/snap/plugins/x-meson.py
@@ -0,0 +1,68 @@
+# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
+#
+
+import os
+import snapcraft
+
+
+class MesonPlugin(snapcraft.BasePlugin):
+
+    @classmethod
+    def schema(cls):
+        schema = super().schema()
+        schema['properties']['meson-parameters'] = {
+            'type': 'array',
+            'minitems': 1,
+            'uniqueItems': True,
+            'items': {
+                'type': 'string',
+            },
+            'default': [],
+        }
+
+        return schema
+
+    @classmethod
+    def get_build_properties(cls):
+        return ['meson-parameters']
+
+    def __init__(self, name, options, project):
+        super().__init__(name, options, project)
+        self.snapbuildname = 'snapbuild'
+        self.mesonbuilddir = os.path.join(self.builddir, self.snapbuildname)
+        self.build_packages.append('meson')
+        self.build_packages.append('ninja-build')
+
+    def build(self):
+        super().build()
+        self._run_meson()
+        self._run_ninja_build_default()
+        self._run_ninja_install()
+
+    def _run_meson(self):
+        os.makedirs(self.mesonbuilddir, exist_ok=True)
+        meson_command = ['meson']
+        if self.options.meson_parameters:
+            meson_command.extend(self.options.meson_parameters)
+        meson_command.append(self.snapbuildname)
+        env = os.environ.copy()
+        env['PKG_CONFIG_PATH'] = self.project.stage_dir + '/usr/lib/pkgconfig:/usr/lib/' + 
self.project.arch_triplet + '/pkgconfig:/usr/lib/pkgconfig'
+        env['VAPIDIR'] = self.project.stage_dir + '/usr/share/vala/vapi'
+        env['GI_TYPELIB_PATH'] = self.project.stage_dir +  '/usr/lib/' + self.project.arch_triplet + 
'/girepository-1.0:/usr/lib/' + self.project.arch_triplet + '/girepository-1.0'
+        env['XDG_DATA_DIRS'] = self.project.stage_dir + '/usr/share:/usr/share'
+        self.run(meson_command, env=env)
+
+    def _run_ninja_build_default(self):
+        ninja_command = ['ninja']
+        env = os.environ.copy()
+        env['PKG_CONFIG_PATH'] = self.project.stage_dir + '/usr/lib/pkgconfig:/usr/lib/' + 
self.project.arch_triplet + '/pkgconfig:/usr/lib/pkgconfig'
+        env['VAPIDIR'] = self.project.stage_dir + '/usr/share/vala/vapi'
+        env['GI_TYPELIB_PATH'] = self.project.stage_dir +  '/usr/lib/' + self.project.arch_triplet + 
'/girepository-1.0:/usr/lib/' + self.project.arch_triplet + '/girepository-1.0'
+        env['XDG_DATA_DIRS'] = self.project.stage_dir + '/usr/share:/usr/share'
+        self.run(ninja_command, env=env, cwd=self.mesonbuilddir)
+
+    def _run_ninja_install(self):
+        env = os.environ.copy()
+        env['DESTDIR'] = self.installdir
+        ninja_install_command = ['ninja', 'install']
+        self.run(ninja_install_command, env=env, cwd=self.mesonbuilddir)
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 9bebf6e..434f86b 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -41,8 +41,8 @@ parts:
   libgweather:
     source: https://git.gnome.org/browse/libgweather
     source-type: git
-    plugin: autotools
-    configflags: [--prefix=/snap/gnome-clocks/current/usr]
+    plugin: meson
+    meson-parameters: [--prefix=/usr]
     organize:
       snap/gnome-clocks/current/usr: usr
     build-attributes: ['no-system-libraries']
@@ -65,13 +65,12 @@ parts:
       - valac
       - libgeocode-glib-dev
       - libgladeui-dev
-
   gnome-clocks:
-    after: [desktop-gnome-platform]
+    after: [libgweather, desktop-gnome-platform]
     source: .
     source-type: git
-    plugin: autotools
-    configflags: [--prefix=/snap/gnome-clocks/current/usr]
+    plugin: meson
+    meson-parameters: [--prefix=/usr]
     organize:
       snap/gnome-clocks/current/usr: usr
     prepare:
@@ -79,7 +78,7 @@ parts:
     install: |
       mkdir -p $SNAPCRAFT_PART_INSTALL/meta/gui/
       cp ../src/data/icons/hicolor/256x256/apps/org.gnome.clocks.png $SNAPCRAFT_PART_INSTALL/meta/gui/
-      cp _build/data/org.gnome.clocks.desktop $SNAPCRAFT_PART_INSTALL/meta/gui/
+      cp snapbuild/data/org.gnome.clocks.desktop $SNAPCRAFT_PART_INSTALL/meta/gui/
     build-attributes: ['no-system-libraries']
     build-packages:
       - meson
@@ -96,7 +95,6 @@ parts:
       - libgnome-desktop-3-dev
       - libgsound-dev
       - libgtk-3-dev
-      - libgweather-3-dev
       - pkg-config
       - valac
       - yelp-tools


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