[tracker-miners/tracker-miners-2.1] build: Add feature options for all external deps



commit 38bac9ed8f7864e6ad987fa94b5a5649412e3160
Author: Mart Raudsepp <leio gentoo org>
Date:   Fri Feb 15 00:15:08 2019 +0200

    build: Add feature options for all external deps
    
    Automagic dependencies are bad for distributions. Add feature options
    for all of them that didn't have it before. If no options are specified,
    the behavior matches with before, but now it's possible to specify
    exactly what is linked to and what isn't.
    
    Fixes: #39
    
    (cherry-picked from db824e0e1fd73aef96c8b0c10ec1563369f5c5bc)

 meson.build       | 36 ++++++++++++++++++------------------
 meson_options.txt | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 18 deletions(-)
---
diff --git a/meson.build b/meson.build
index 8b580cabb..21e3b8001 100644
--- a/meson.build
+++ b/meson.build
@@ -57,9 +57,9 @@ avcodec = dependency('libavcodec', version: '>= 0.8.4', required: false)
 avformat = dependency('libavformat', version: '>= 0.8.4', required: false)
 avutil = dependency('libavutil', version: '>= 0.8.4', required: false)
 dbus = dependency('dbus-1', version: '> 1.3.1')
-exempi = dependency('exempi-2.0', version: '> 2.1.0', required: false)
-flac = dependency('flac', version: '> 1.2.1', required: false)
-gexiv2 = dependency('gexiv2', required: false)
+exempi = dependency('exempi-2.0', version: '> 2.1.0', required: get_option('xmp'))
+flac = dependency('flac', version: '> 1.2.1', required: get_option('flac'))
+gexiv2 = dependency('gexiv2', required: get_option('raw'))
 gio = dependency('gio-2.0', version: '>' + glib_required)
 gio_unix = dependency('gio-unix-2.0', version: '>' + glib_required)
 glib = dependency('glib-2.0', version: '>' + glib_required)
@@ -72,25 +72,25 @@ gupnp_dlna = dependency('gupnp-dlna-2.0', version: '> 0.9.4', required: false)
 gupnp_dlna_gst = dependency('gupnp-dlna-gst-2.0', version: '> 0.9.4', required: false)
 icu_i18n = dependency('icu-i18n', version: '> 4.8.1.1', required: false)
 icu_uc = dependency('icu-uc', version: '> 4.8.1.1', required: false)
-libcue = dependency('libcue', required: false)
-libexif = dependency('libexif', version: '> 0.6', required: false)
-libgsf = dependency('libgsf-1', version: '> 1.14.24', required: false)
-libgxps = dependency('libgxps', required: false)
-libiptcdata = dependency('libiptcdata', required: false)
-libjpeg = dependency('libjpeg', required: false)
-libosinfo = dependency('libosinfo-1.0', version: '> 0.2.9', required: false)
-libpng = dependency('libpng', version: '> 0.89', required: false)
+libcue = dependency('libcue', required: get_option('cue'))
+libexif = dependency('libexif', version: '> 0.6', required: get_option('exif'))
+libgsf = dependency('libgsf-1', version: '> 1.14.24', required: get_option('gsf'))
+libgxps = dependency('libgxps', required: get_option('xps'))
+libiptcdata = dependency('libiptcdata', required: get_option('iptc'))
+libjpeg = dependency('libjpeg', required: get_option('jpeg'))
+libosinfo = dependency('libosinfo-1.0', version: '> 0.2.9', required: get_option('iso'))
+libpng = dependency('libpng', version: '> 0.89', required: get_option('png'))
 libseccomp = dependency('libseccomp', version: '>= 2.0', required: false)
-libtiff = dependency('libtiff-4', required: false)
-libxml2 = dependency('libxml-2.0', version: '> 2.6')
-libvorbis = dependency('vorbisfile', version: '> 0.22')
-poppler = dependency('poppler-glib', version: '> 0.16.0', required: false)
-taglib = dependency('taglib_c', version: '> 1.6', required: false)
-totem_plparser = dependency('totem-plparser', required: false)
+libtiff = dependency('libtiff-4', required: get_option('tiff'))
+libxml2 = dependency('libxml-2.0', version: '> 2.6', required: get_option('xml'))
+libvorbis = dependency('vorbisfile', version: '> 0.22', required: get_option('vorbis'))
+poppler = dependency('poppler-glib', version: '> 0.16.0', required: get_option('pdf'))
+taglib = dependency('taglib_c', version: '> 1.6', required: get_option('taglib'))
+totem_plparser = dependency('totem-plparser', required: get_option('playlist'))
 upower = dependency('upower-glib', version: '> 0.9.0', required: false)
 zlib = dependency('zlib')
 
-libgif = cc.find_library('gif', required: false)
+libgif = cc.find_library('gif', required: get_option('gif'))
 libmath = cc.find_library('m', required: false)
 
 # FIXME: here we work around a quirk todo with Meson and Vala: the 'uuid'
diff --git a/meson_options.txt b/meson_options.txt
index d19533686..57e3422f2 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -35,6 +35,43 @@ option('text', type: 'boolean', value: 'true',
 option('unzip_ps_gz_files', type: 'boolean', value: 'true',
        description: 'Enable extractor for PS.GZ metadata')
 
+option('cue', type: 'feature', value: 'auto',
+       description: 'Support cue sheet parsing')
+option('exif', type: 'feature', value: 'auto',
+       description: 'Support EXIF metadata')
+option('flac', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from Flac audio')
+option('gif', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from GIF images')
+option('gsf', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from MS & Open Office documents')
+option('iptc', type: 'feature', value: 'auto',
+       description: 'Support IPTC photo metadata')
+option('iso', type: 'feature', value: 'auto',
+       description: 'Support ISO image parsing')
+option('jpeg', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from JPEG images')
+option('pdf', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from PDF documents')
+option('playlist', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from playlists (w/ Totem)')
+option('png', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from PNG images')
+option('raw', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from RAW photos')
+option('taglib', type: 'feature', value: 'auto',
+       description: 'Support writeback for audio files using Taglib')
+option('tiff', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from TIFF images')
+option('vorbis', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from Vorbis (ogg/etc) files')
+option('xml', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from XML and HTML documents')
+option('xmp', type: 'feature', value: 'auto',
+       description: 'Support XMP metadata')
+option('xps', type: 'feature', value: 'auto',
+       description: 'Support extracting metadata from XPS documents')
+
 option('battery_detection', type: 'combo', choices: ['auto', 'hal', 'upower', 'none'], value: 'auto',
        description: 'Enable upower or HAL for battery/mains power detection')
 option('charset_detection', type: 'combo', choices: ['auto', 'enca', 'icu', 'none'], value: 'auto',


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