[gnome-music/wip/mschraal/meson: 1/7] switch to meson and uses RDNN



commit 4be6b0d13c167be90d94c2a37caccf7f0bc87888
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date:   Tue Jan 23 02:35:50 2018 +0100

    switch to meson and uses RDNN

 .gitignore                                         |   1 +
 .gitlab-ci.yml                                     |   8 +-
 .gitmodules                                        |   2 +-
 AUTHORS                                            |   0
 AUTHORS.in => AUTHORS.md                           |   0
 ChangeLog                                          |   0
 INSTALL => INSTALL.md                              |   0
 COPYING => LICENSE                                 |   0
 Makefile.am                                        |  69 -----------------
 NEWS => NEWS.md                                    |   0
 README                                             |   1 -
 autogen.sh                                         |  26 -------
 configure.ac                                       |  66 ----------------
 data/Makefile.am                                   |  84 ---------------------
 .../apps/{gnome-music.png => org.gnome.Music.png}  | Bin
 .../apps/{gnome-music.png => org.gnome.Music.png}  | Bin
 .../apps/{gnome-music.png => org.gnome.Music.png}  | Bin
 .../apps/{gnome-music.png => org.gnome.Music.png}  | Bin
 .../apps/{gnome-music.png => org.gnome.Music.png}  | Bin
 .../{gnome-music.blend => org.gnome.Music.blend}   | Bin
 .../{gnome-music.svg => org.gnome.Music.svg}       |   0
 ...c-symbolic.svg => org.gnome.Music-symbolic.svg} |   0
 data/meson.build                                   |  79 +++++++++++++++++++
 data/org.gnome.Music.appdata.xml.in                |   2 +-
 data/org.gnome.Music.desktop.in                    |   2 +-
 ...gresource.xml => org.gnome.Music.gresource.xml} |   0
 data/org.gnome.Music.gschema.xml                   |   2 +-
 gnome-music.in                                     |  10 +--
 gnomemusic/Makefile.am                             |  19 -----
 gnomemusic/views/Makefile.am                       |  13 ----
 gnomemusic/widgets/Makefile.am                     |  12 ---
 help/LINGUAS                                       |  13 ++++
 help/Makefile.am                                   |  22 ------
 help/meson.build                                   |  18 +++++
 libgd                                              |   1 -
 meson.build                                        |  69 +++++++++++++++++
 meson_post_install.py                              |  21 ++++++
 po/Makevars                                        |  78 -------------------
 po/meson.build                                     |   1 +
 39 files changed, 215 insertions(+), 404 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 2c30220..78fd2ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 *~
 libgd/
+builddir/
 /*.bak
 /*.lo
 /*.o
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d427c5..b44d2f8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,11 +5,11 @@ stages:
   - deploy
 
 variables:
-  DEPENDENCIES: python3 autoconf-archive gettext-devel git pygobject3
+  DEPENDENCIES: python3 redhat-rpm-config gettext-devel git pygobject3
                 pygobject3-devel python3-gobject python3-cairo-devel
-                redhat-rpm-config gtk3-devel gobject-introspection-devel
-                tracker-devel gnome-common which libmediaart-devel grilo-devel
-                gnome-online-accounts-devel
+                gtk3-devel gobject-introspection-devel tracker-devel
+                which libmediaart-devel grilo-devel gnome-online-accounts-devel
+                meson ninja-build
 
 build:
   stage: build
diff --git a/.gitmodules b/.gitmodules
index bfd964e..6283342 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
 [submodule "libgd"]
-       path = libgd
+       path = subprojects/libgd
        url = git://git.gnome.org/libgd
diff --git a/AUTHORS.in b/AUTHORS.md
similarity index 100%
rename from AUTHORS.in
rename to AUTHORS.md
diff --git a/INSTALL b/INSTALL.md
similarity index 100%
rename from INSTALL
rename to INSTALL.md
diff --git a/COPYING b/LICENSE
similarity index 100%
rename from COPYING
rename to LICENSE
diff --git a/NEWS b/NEWS.md
similarity index 100%
rename from NEWS
rename to NEWS.md
diff --git a/data/icons/hicolor/16x16/apps/gnome-music.png b/data/icons/hicolor/16x16/apps/org.gnome.Music.png
similarity index 100%
rename from data/icons/hicolor/16x16/apps/gnome-music.png
rename to data/icons/hicolor/16x16/apps/org.gnome.Music.png
diff --git a/data/icons/hicolor/22x22/apps/gnome-music.png b/data/icons/hicolor/22x22/apps/org.gnome.Music.png
similarity index 100%
rename from data/icons/hicolor/22x22/apps/gnome-music.png
rename to data/icons/hicolor/22x22/apps/org.gnome.Music.png
diff --git a/data/icons/hicolor/256x256/apps/gnome-music.png 
b/data/icons/hicolor/256x256/apps/org.gnome.Music.png
similarity index 100%
rename from data/icons/hicolor/256x256/apps/gnome-music.png
rename to data/icons/hicolor/256x256/apps/org.gnome.Music.png
diff --git a/data/icons/hicolor/32x32/apps/gnome-music.png b/data/icons/hicolor/32x32/apps/org.gnome.Music.png
similarity index 100%
rename from data/icons/hicolor/32x32/apps/gnome-music.png
rename to data/icons/hicolor/32x32/apps/org.gnome.Music.png
diff --git a/data/icons/hicolor/48x48/apps/gnome-music.png b/data/icons/hicolor/48x48/apps/org.gnome.Music.png
similarity index 100%
rename from data/icons/hicolor/48x48/apps/gnome-music.png
rename to data/icons/hicolor/48x48/apps/org.gnome.Music.png
diff --git a/data/icons/hicolor/gnome-music.blend b/data/icons/hicolor/org.gnome.Music.blend
similarity index 100%
rename from data/icons/hicolor/gnome-music.blend
rename to data/icons/hicolor/org.gnome.Music.blend
diff --git a/data/icons/hicolor/gnome-music.svg b/data/icons/hicolor/org.gnome.Music.svg
similarity index 100%
rename from data/icons/hicolor/gnome-music.svg
rename to data/icons/hicolor/org.gnome.Music.svg
diff --git a/data/icons/hicolor/symbolic/apps/gnome-music-symbolic.svg 
b/data/icons/hicolor/symbolic/apps/org.gnome.Music-symbolic.svg
similarity index 100%
rename from data/icons/hicolor/symbolic/apps/gnome-music-symbolic.svg
rename to data/icons/hicolor/symbolic/apps/org.gnome.Music-symbolic.svg
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000..bb96d45
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,79 @@
+# Compiling the resources
+about_dialog_conf = configuration_data()
+about_dialog_conf.set('PACKAGE_VERSION', meson.project_version())
+about_dialog_conf.set('PACKAGE_URL', PACKAGE_URL)
+
+gnome.compile_resources(
+  meson.project_name(),
+  meson.project_name() + '.gresource.xml',
+  gresource_bundle: true,
+  source_dir: '.',
+  install_dir: PKGDATA_DIR,
+  install: true,
+  dependencies: configure_file(
+    input: 'AboutDialog.ui.in',
+    output: 'AboutDialog.ui',
+    configuration: about_dialog_conf
+  )
+)
+
+# Installing the schema file 
+install_data(
+  meson.project_name() + '.gschema.xml',
+  install_dir: 'share/glib-2.0/schemas'
+)
+
+# Merging the translations with the desktop file
+i18n.merge_file(
+  output: meson.project_name() + '.desktop',
+  input: meson.project_name() + '.desktop.in',
+  po_dir: join_paths(meson.source_root(), 'po'),
+  type: 'desktop',
+  install: true,
+  install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'applications')
+)
+
+# Validating the desktop file
+desktop_file_validate = find_program('desktop-file-validate', required:false)
+if desktop_file_validate.found()
+  test (
+    'Validate desktop file',
+    desktop_file_validate,
+    args: join_paths(meson.current_build_dir (), meson.project_name() + '.desktop')
+  )
+endif
+
+# Merging the translations with the appdata file
+i18n.merge_file(
+  output: meson.project_name() + '.appdata.xml',
+  input: meson.project_name() + '.appdata.xml.in',
+  po_dir: join_paths(meson.source_root(), 'po'),
+  install: true,
+  install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'metainfo')
+)
+
+# Validating the appdata file
+appstreamcli = find_program(['appstreamcli', 'appstream-util'], required: false)
+if appstreamcli.found()
+  test (
+    'Validate appdata file',
+    appstreamcli,
+    args: ['validate', join_paths(meson.current_build_dir (), meson.project_name() + '.appdata.xml')]
+  )
+endif
+
+# Installing the icons
+icon_sizes = ['16', '22', '32', '48', '256']
+
+foreach i : icon_sizes
+  install_data(
+    join_paths('icons/hicolor', i + 'x' + i, 'apps', meson.project_name() + '.png'),
+    install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 
'apps')
+  )
+endforeach
+
+# Installing the symbolic icon
+install_data(
+    join_paths('icons/hicolor/symbolic/apps', meson.project_name() + '-symbolic.svg'),
+    install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/symbolic/apps')
+)
\ No newline at end of file
diff --git a/data/org.gnome.Music.appdata.xml.in b/data/org.gnome.Music.appdata.xml.in
index 031c436..88c198f 100644
--- a/data/org.gnome.Music.appdata.xml.in
+++ b/data/org.gnome.Music.appdata.xml.in
@@ -38,5 +38,5 @@
   </kudos>
 
   <update_contact>mschraal gnome org</update_contact>
-  <translation type="gettext">gnome-music</translation>
+  <translation type="gettext">org.gnome.Music</translation>
 </component>
diff --git a/data/org.gnome.Music.desktop.in b/data/org.gnome.Music.desktop.in
index 013cba6..7dfc4e7 100644
--- a/data/org.gnome.Music.desktop.in
+++ b/data/org.gnome.Music.desktop.in
@@ -3,7 +3,7 @@ Name=Music
 GenericName=Music Player
 Comment=Play and organize your music collection
 # Translators: Do NOT translate or transliterate this text (this is an icon file name)!
-Icon=gnome-music
+Icon=org.gnome.Music
 Exec=gnome-music
 Terminal=false
 Type=Application
diff --git a/data/gnome-music.gresource.xml b/data/org.gnome.Music.gresource.xml
similarity index 100%
rename from data/gnome-music.gresource.xml
rename to data/org.gnome.Music.gresource.xml
diff --git a/data/org.gnome.Music.gschema.xml b/data/org.gnome.Music.gschema.xml
index 7ccefe1..467d1d5 100644
--- a/data/org.gnome.Music.gschema.xml
+++ b/data/org.gnome.Music.gschema.xml
@@ -6,7 +6,7 @@
         <value nick="all" value="2"/>
         <value nick="shuffle" value="3"/>
     </enum>
-    <schema path="/org/gnome/Music/" id="org.gnome.Music" gettext-domain="gnome-music">
+    <schema path="/org/gnome/Music/" id="org.gnome.Music" gettext-domain="org.gnome.Music">
         <key type="ai" name="window-size">
             <default>[768, 600]</default>
             <summary>Window size</summary>
diff --git a/gnome-music.in b/gnome-music.in
old mode 100644
new mode 100755
index a62d35f..ac23fcf
--- a/gnome-music.in
+++ b/gnome-music.in
@@ -117,16 +117,16 @@ def set_log_level():
 
 def set_internationalization():
     """Sets application internationalization."""
-    locale.bindtextdomain('gnome-music', LOCALE_DIR)
-    locale.textdomain('gnome-music')
-    gettext.bindtextdomain('gnome-music', LOCALE_DIR)
-    gettext.textdomain('gnome-music')
+    locale.bindtextdomain('org.gnome.Music', LOCALE_DIR)
+    locale.textdomain('org.gnome.Music')
+    gettext.bindtextdomain('org.gnome.Music', LOCALE_DIR)
+    gettext.textdomain('org.gnome.Music')
 
 
 def set_resources():
     """Sets application ressource file."""
     resource = Gio.resource_load(
-        os.path.join(PKGDATA_DIR, 'gnome-music.gresource'))
+        os.path.join(PKGDATA_DIR, 'org.gnome.Music.gresource'))
     Gio.Resource._register(resource)  # nopep8
 
 
diff --git a/help/LINGUAS b/help/LINGUAS
new file mode 100644
index 0000000..13f91aa
--- /dev/null
+++ b/help/LINGUAS
@@ -0,0 +1,13 @@
+cs
+da
+de
+el
+es
+fr
+gl
+hu
+ko
+pl
+pt_BR
+ro
+sv
\ No newline at end of file
diff --git a/help/meson.build b/help/meson.build
new file mode 100644
index 0000000..4fc6ace
--- /dev/null
+++ b/help/meson.build
@@ -0,0 +1,18 @@
+gnome.yelp(meson.project_name(),
+  sources: [
+    'introduction.page',
+    'index.page',
+    'play-music.page',
+    'playlist-create-albums.page',
+    'playlist-create-songs.page',
+    'playlist-create-artists.page',
+    'playlist-delete.page',
+    'playlist-remove-songs.page',
+    'playlist-repeat.page',
+    'playlist-shuffle.page',
+    'search.page',
+    'legal.xml'
+  ],
+  media: 'figures/gnome-music-3.12.png',
+  symlink_media: false
+)
\ No newline at end of file
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..ac9b442
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,69 @@
+project('org.gnome.Music',
+    version: '3.27.4'
+)
+
+# Importing modules
+gnome = import('gnome')
+i18n  = import('i18n')
+python = import('python3')
+
+# Make sure Python is installed and found
+if not python.find_python().found()
+    error('No valid python3 binary found')
+endif
+
+# Constants
+PACKAGE_URL = 'https://wiki.gnome.org/Apps/Music'
+PACKAGE_URL_BUG = 'https://gitlab.gnome.org/GNOME/gnome-music'
+
+PYTHON_DIR = join_paths(get_option('prefix'), python.sysconfig_path('purelib'))
+PKGDATA_DIR = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
+PKGLIB_DIR = join_paths(PKGDATA_DIR, 'libs')
+# Dependencies 
+dependency('gobject-introspection-1.0', version: '>= 1.35.0')
+dependency('gtk+-3.0', version: '>= 3.19.3')
+dependency('libmediaart-2.0', version: '>= 1.9.1')
+dependency('tracker-sparql-2.0', version: '>= 1.99.1')
+dependency('pygobject-3.0', version: '>= 3.21.1')
+dependency('grilo-0.3', version: '>= 0.3.4')
+
+
+subproject('libgd',
+    default_options: [
+        'with-notifications=true',
+        'with-introspection=true',
+        'with-gtk-hacks=true',
+        'with-main-view=true',
+        'with-tagged-entry=true',
+        'pkgdatadir=' + PKGDATA_DIR,
+        'pkglibdir=' + PKGLIB_DIR
+    ])
+
+subdir('data')
+subdir('help')
+subdir('po')
+
+install_subdir(
+    'gnomemusic',
+    install_dir: PYTHON_DIR
+)
+
+
+# Install the executable file
+bin_config = configuration_data()
+bin_config.set('pkgdatadir', PKGDATA_DIR)
+bin_config.set('localedir', join_paths(get_option('prefix'), get_option('datadir'), 'locale'))
+bin_config.set('pythondir', PYTHON_DIR)
+bin_config.set('pyexecdir', join_paths(get_option('prefix'), python.sysconfig_path('stdlib')))
+# Used for libgd
+bin_config.set('pkglibdir', PKGLIB_DIR)
+
+configure_file(
+    input: 'gnome-music.in',
+    output: 'gnome-music',
+    configuration: bin_config,
+    install_dir: get_option('bindir')
+)
+
+# Run the post install script
+meson.add_install_script('meson_post_install.py')
\ No newline at end of file
diff --git a/meson_post_install.py b/meson_post_install.py
new file mode 100755
index 0000000..4c3a2b7
--- /dev/null
+++ b/meson_post_install.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+import os
+import subprocess
+
+prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local')
+datadir = os.path.join(prefix, 'share')
+
+# Packaging tools define DESTDIR and this isn't needed for them
+if 'DESTDIR' not in os.environ:
+    print('Updating icon cache...')
+    icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor')
+    subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir])
+
+    print("Compiling the schema...")
+    schemas_dir = os.path.join(datadir, 'glib-2.0/schemas')
+    subprocess.call(['glib-compile-schemas', schemas_dir])
+
+    print('Updating desktop database...')
+    desktop_database_dir = os.path.join(datadir, 'applications')
+    subprocess.call(['update-desktop-database', '-q', desktop_database_dir])
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..9116ed7
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1 @@
+i18n.gettext(meson.project_name(), preset:'glib')
\ No newline at end of file


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