summaryrefslogtreecommitdiff
path: root/src/tracker-extract/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker-extract/meson.build')
-rw-r--r--src/tracker-extract/meson.build205
1 files changed, 205 insertions, 0 deletions
diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
new file mode 100644
index 000000000..2ce2a92ec
--- /dev/null
+++ b/src/tracker-extract/meson.build
@@ -0,0 +1,205 @@
+# Extract modules are tracked here as arrays with the following elements:
+#
+# [ name, source-files, rule-files, dependencies ]
+#
+# This might be nicer if Meson supported dictionary types.
+
+modules = [
+ ['extract-bmp', 'tracker-extract-bmp.c', '10-bmp.rule', [tracker_common_dep]],
+ ['extract-dummy', 'tracker-extract-dummy.c', ['10-comics.rule', '10-ebooks.rule'], [tracker_common_dep]]
+]
+
+if get_option('abiword')
+ modules += [['extract-abw', 'tracker-extract-abw.c', '10-abw.rule', [tracker_common_dep]]]
+endif
+
+if get_option('dvi')
+ modules += [['extract-dvi', 'tracker-extract-dvi.c', '10-dvi.rule', [tracker_common_dep]]]
+endif
+
+if libgsf.found()
+ modules += [['extract-epub', 'tracker-extract-epub.c', '10-epub.rule', [libgsf, tracker_common_dep]]]
+ modules += [['extract-msoffice', 'tracker-extract-msoffice.c', '10-msoffice.rule', [libgsf, tracker_common_dep]]]
+ modules += [['extract-msoffice-xml', 'tracker-extract-msoffice-xml.c', '11-msoffice-xml.rule', [libgsf, tracker_common_dep]]]
+ modules += [['extract-oasis', 'tracker-extract-oasis.c', '10-oasis.rule', [libgsf, tracker_common_dep]]]
+endif
+
+if flac.found()
+ modules += [['extract-flac', 'tracker-extract-flac.c', '10-flac.rule', [flac, tracker_common_dep]]]
+endif
+
+if libgif.found()
+ modules += [['extract-gif', 'tracker-extract-gif.c', '10-gif.rule', [libgif, tracker_common_dep]]]
+endif
+
+if generic_media_handler_name == 'gstreamer'
+ sources = ['tracker-extract-gstreamer.c', 'tracker-cue-sheet.c']
+ rules = ['10-svg.rule', '15-gstreamer-guess.rule', '90-gstreamer-image-generic.rule', '90-gstreamer-audio-generic.rule', '90-gstreamer-video-generic.rule']
+ dependencies = [gstreamer, libcue, tracker_common_dep]
+
+ if gstreamer_backend_name == 'GUPnP-DNLA'
+ rules += '91-gstreamer-generic-dnla.rule'
+ dependencies += gupnp_dnla
+ elif gstreamer_backend_name == 'discoverer'
+ dependencies += gstreamer_pbutils
+ endif
+
+ modules += [['extract-gstreamer', sources, rules, dependencies]]
+endif
+
+if libxml2.found()
+ modules += [['extract-html', 'tracker-extract-html.c', '10-html.rule', [libxml2]]]
+endif
+
+if libjpeg.found()
+ modules += [['extract-jpeg', 'tracker-extract-jpeg.c', '10-jpeg.rule', [libjpeg, tracker_common_dep]]]
+endif
+
+if generic_media_handler_name == 'libav'
+ rules = ['90-libav-audio-generic.rule', '90-libav-video-generic.rule']
+ dependencies = [avcodec, avformat, avutil, tracker_common_dep]
+ modules += [['extract-libav', 'tracker-extract-libav.c', rules, dependencies]]
+endif
+
+if get_option('icon')
+ modules += [['extract-icon', 'tracker-extract-icon.c', '10-ico.rule', []]]
+endif
+
+if libosinfo.found()
+ modules += [['extract-iso', 'tracker-extract-iso.c', '11-iso.rule', [libosinfo]]]
+endif
+
+if get_option('mp3')
+ modules += [['extract-mp3', 'tracker-extract-mp3.c', '10-mp3.rule', [tracker_common_dep]]]
+endif
+
+if poppler.found()
+ modules += [['extract-pdf', 'tracker-extract-pdf.c', '10-pdf.rule', [poppler, tracker_common_dep]]]
+endif
+
+if totem_plparser.found()
+ modules += [['extract-playlist', 'tracker-extract-playlist.c', '15-playlist.rule', [totem_plparser]]]
+endif
+
+if libpng.found()
+ modules += [['extract-png', 'tracker-extract-png.c', '10-png.rule', [libpng, tracker_common_dep]]]
+endif
+
+if get_option('ps')
+ modules += [['extract-ps', 'tracker-extract-ps.c', '10-ps.rule', [tracker_common_dep]]]
+endif
+
+if get_option('text')
+ modules += [['extract-text', 'tracker-extract-text.c', ['15-source-code.rule', '90-text-generic.rule'], []]]
+endif
+
+if libtiff.found()
+ modules += [['extract-tiff', 'tracker-extract-tiff.c', '10-tiff.rule', [libtiff, tracker_common_dep]]]
+endif
+
+if libvorbis.found()
+ modules += [['extract-vorbis', 'tracker-extract-vorbis.c', '10-vorbis.rule', [libvorbis, tracker_common_dep]]]
+endif
+
+if exempi.found()
+ modules += [['extract-xmp', 'tracker-extract-xmp.c', '10-xmp.rule', []]]
+endif
+
+if libgxps.found()
+ modules += [['extract-xps', 'tracker-extract-xps.c', '10-xps.rule', [libgxps, tracker_common_dep]]]
+endif
+
+
+foreach module : modules
+ name = module[0]
+ sources = module[1]
+ rule = module[2]
+ dependencies = module[3]
+
+ shared_module(name, sources,
+ c_args: [ '-DTRACKER_COMPILATION' ],
+ dependencies: [tracker_extract_dep] + dependencies,
+ include_directories: configinc,
+ install: true,
+ install_dir: tracker_extract_modules_dir)
+
+ install_data(rule, install_dir: tracker_extract_rules_dir)
+endforeach
+
+tracker_extract_priority_dbus = gnome.gdbus_codegen(
+ 'tracker-extract-priority-dbus',
+ 'tracker-extract-priority.xml',
+ interface_prefix: 'org.freedesktop.Tracker1.Extract.',
+ namespace: 'TrackerExtractDBus')
+
+tracker_extract_sources = [
+ 'tracker-config.c',
+ 'tracker-extract.c',
+ 'tracker-extract-controller.c',
+ 'tracker-extract-decorator.c',
+ 'tracker-extract-persistence.c',
+ 'tracker-read.c',
+ 'tracker-main.c',
+ tracker_extract_priority_dbus
+]
+
+tracker_extract_dependencies = [
+ tracker_common_dep, tracker_data_dep, tracker_extract_dep,
+ tracker_miner_dep, tracker_sparql_dep
+]
+
+if libgsf.found()
+ tracker_extract_sources += 'tracker-gsf.c'
+ tracker_extract_dependencies += libgsf
+endif
+
+executable('tracker-extract',
+ tracker_extract_sources,
+ c_args: [ '-DTRACKER_COMPILATION' ],
+ dependencies: tracker_extract_dependencies,
+ install: true,
+ install_dir: join_paths(get_option('prefix'), get_option('libexecdir')))
+
+install_data(
+ 'tracker-extract-priority.xml',
+ install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'tracker'))
+
+dbus_service_file_untranslated = configure_file(
+ input: 'org.freedesktop.Tracker1.Miner.Extract.service.in.in',
+ output: 'org.freedesktop.Tracker1.Miner.Extract.service.in',
+ configuration: conf)
+
+dbus_service_file = custom_target('tracker-extract-dbus-service-file',
+ input: dbus_service_file_untranslated,
+ output: 'org.freedesktop.Tracker1.Miner.Extract.service',
+ command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
+ install: true,
+ install_dir: dbus_services_dir)
+
+desktop_file_untranslated = configure_file(
+ input: 'tracker-extract.desktop.in.in',
+ output: 'tracker-extract.desktop.in',
+ configuration: conf)
+
+desktop_file = custom_target('tracker-extract-desktop-file',
+ input: desktop_file_untranslated,
+ output: 'tracker-extract.desktop',
+ command: ['intltool-merge', '--quiet', '--desktop-style', '--utf8', join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
+ install: true,
+ install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'))
+
+custom_target('tracker-extract-settings-schema',
+ input: 'org.freedesktop.Tracker.Extract.gschema.xml.in',
+ output: 'org.freedesktop.Tracker.Extract.gschema.xml',
+ command: ['intltool-merge', '--quiet', '--xml-style', '--utf8', join_paths(meson.source_root(), 'po'), '@INPUT@', '@OUTPUT@'],
+ install: true,
+ install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas'))
+
+if install_systemd_user_services
+ configure_file(
+ input: 'tracker-extract.service.in',
+ output: 'tracker-extract.service',
+ configuration: conf,
+ install: true,
+ install_dir: systemd_user_services_dir)
+endif