[gnome-font-viewer] build: Add meson support



commit 798a94259cc1a45f5f87d8307a7fb6f6616cbe52
Author: Jeremy Bicha <jbicha ubuntu com>
Date:   Fri Jun 9 17:27:12 2017 -0400

    build: Add meson support
    
    https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783613

 meson-postinstall.sh |   10 ++++++++
 meson.build          |   58 +++++++++++++++++++++++++++++++++++++++++++++++++
 po/meson.build       |    1 +
 src/meson.build      |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 128 insertions(+), 0 deletions(-)
---
diff --git a/meson-postinstall.sh b/meson-postinstall.sh
new file mode 100644
index 0000000..a659c80
--- /dev/null
+++ b/meson-postinstall.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Package managers set this so we don't need to run
+if [ -z "$DESTDIR" ]; then
+  echo Updating desktop database...
+  update-desktop-database -q ${MESON_INSTALL_PREFIX}/share/applications
+
+  echo Updating icon cache...
+  gtk-update-icon-cache -q -t -f ${MESON_INSTALL_PREFIX}/share/icons/hicolor
+fi
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..d305485
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,58 @@
+project('gnome-font-viewer', 'c',
+        version: '3.25.0',
+        license: 'GPLv2+',
+        meson_version: '>= 0.40.1',
+)
+
+cc = meson.get_compiler('c')
+
+gnome = import('gnome')
+i18n = import('i18n')
+
+prefix = get_option('prefix')
+
+bindir = join_paths(prefix, get_option('bindir'))
+datadir = join_paths(prefix, get_option('datadir'))
+libexecdir = join_paths(prefix, get_option('libexecdir'))
+localedir = join_paths(prefix, get_option('localedir'))
+
+pkgdatadir = join_paths(datadir, meson.project_name())
+
+appdatadir = join_paths(datadir, 'metainfo')
+desktopdir = join_paths(datadir, 'applications')
+servicesdir = join_paths(datadir, 'dbus-1', 'services')
+thumbnailerdir = join_paths(datadir, 'thumbnailers')
+
+glib_req_version = '>= 2.35.1'
+gtk_req_version = '>= 3.20.0'
+harfbuzz_req_version = '>= 0.9.9'
+
+glib_dep = dependency('glib-2.0', version: glib_req_version)
+gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
+harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version)
+fontconfig_dep = dependency('fontconfig')
+freetype2_dep = dependency('freetype2')
+gnomedesktop_dep = dependency('gnome-desktop-3.0')
+mathlib_dep = cc.find_library('m')
+
+config_h = configuration_data()
+config_h.set_quoted('VERSION', meson.project_version())
+config_h.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+config_h.set_quoted('GNOMELOCALEDIR', localedir)
+configure_file(output: 'config.h', configuration: config_h)
+
+root_inc = include_directories('.')
+
+appdata_file = 'org.gnome.font-viewer.appdata.xml'
+i18n.merge_file(appdata_file,
+  input: 'data/' + appdata_file + '.in',
+  output: appdata_file,
+  po_dir: 'po',
+  install: true,
+  install_dir: appdatadir
+)
+
+subdir('src')
+subdir('po')
+
+meson.add_install_script('meson-postinstall.sh')
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..e28632d
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1 @@
+i18n.gettext('gnome-font-viewer', preset: 'glib')
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..3084688
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,59 @@
+loader_sources = [
+  'sushi-font-loader.h',
+  'sushi-font-loader.c',
+]
+
+thumbnail_sources = [
+  loader_sources,
+  'font-thumbnailer.c',
+  'totem-resources.c',
+  'totem-resources.h',
+]
+
+viewer_sources = [
+  loader_sources,
+  'font-model.h',
+  'font-model.c',
+  'font-utils.h',
+  'font-utils.c',
+  'sushi-font-widget.h',
+  'sushi-font-widget.c',
+  'font-view.c',
+]
+
+resources = gnome.compile_resources('font-view-resources',
+  'gnome-font-viewer.gresource.xml',
+  source_dir: '.',
+  c_name: 'font_view')
+
+executable('gnome-thumbnail-font', thumbnail_sources,
+  include_directories: [ root_inc, include_directories('.') ],
+  dependencies: [ mathlib_dep, glib_dep, gtk_dep, freetype2_dep],
+  install: true)
+
+executable('gnome-font-viewer', viewer_sources + resources,
+  include_directories: [ root_inc, include_directories('.') ],
+  dependencies: [ mathlib_dep, glib_dep, gtk_dep, harfbuzz_dep, fontconfig_dep, freetype2_dep, 
gnomedesktop_dep ],
+  install: true)
+
+desktop_file = 'org.gnome.font-viewer.desktop'
+i18n.merge_file(desktop_file,
+  input: desktop_file + '.in',
+  output: desktop_file,
+  po_dir: '../po',
+  install: true,
+  install_dir: desktopdir,
+  type: 'desktop'
+)
+
+service_conf = configuration_data()
+service_conf.set('bindir', bindir)
+service_file = 'org.gnome.font-viewer.service'
+configure_file(input: service_file + '.in',
+  output: service_file,
+  configuration: service_conf,
+  install: true,
+  install_dir: servicesdir)
+
+install_data('gnome-font-viewer.thumbnailer',
+  install_dir: thumbnailerdir)


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