1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
project('libmediaart', 'c', 'cpp',
version: '1.9.1',
default_options: [ 'warning_level=1' ])
gnome = import('gnome')
pkgconfig = import('pkgconfig')
cc = meson.get_compiler('c')
# This is the X.Y used in -lliblibmediaart-FOO-X.Y
libmediaart_api_version = '2.0'
glib_required = '2.38.0'
gdk_pixbuf = dependency('gdk-pixbuf-2.0', version: '> 2.12.0', required: false)
glib = dependency('glib-2.0', version: '> ' + glib_required)
gio = dependency('gio-2.0', version: '> ' + glib_required)
gio_unix = dependency('gio-unix-2.0', version: '> ' + glib_required)
gobject = dependency('gobject-2.0', version: '> ' + glib_required)
qt4 = dependency('qt4', version: '> 4.7.1', modules: 'Gui', required: false)
qt5 = dependency('qt5', version: '> 5.0.0', modules: 'Gui', required: false)
##################################################################
# Choose between backends (GdkPixbuf/Qt/etc)
##################################################################
image_library_name = ''
if gdk_pixbuf.found()
if get_option('image_library') == 'auto' or get_option('image_library') == 'gdk-pixbuf'
image_library = gdk_pixbuf
image_library_name = 'gdk-pixbuf-2.0'
endif
elif get_option('image_library') == 'gdk-pixbuf'
error('gdk-pixbuf backend explicitly requested, but gdk-pixbuf library was not found')
endif
if image_library_name == ''
if qt5.found()
if get_option('image_library') == 'auto' or get_option('image_library') == 'qt5'
image_library = qt5
image_library_name = 'Qt5Gui'
endif
elif get_option('image_library') == 'qt5'
error('qt5 explicitly requested, but not found')
endif
endif
if image_library_name == ''
if qt4.found()
if get_option('image_library') == 'auto' or get_option('image_library') == 'qt4'
image_library = qt4
image_library_name = 'QtGui'
endif
elif get_option('image_library') == 'qt4'
error('qt4 explicitly requested, but not found')
endif
endif
if image_library_name == ''
error('No usable image processing backends were found.')
endif
conf = configuration_data()
conf.set('HAVE_GDKPIXBUF', (image_library_name == 'gdk-pixbuf-2.0'),
description: 'Define if GdkPixbuf is available')
conf.set('HAVE_QT', (image_library_name == 'QtGui' or image_library_name == 'Qt5Gui'),
description: 'Define if QtGui is available')
conf.set('HAVE_QT4', (image_library_name == 'QtGui'),
description: 'Define if Qt4 is available')
conf.set('HAVE_QT5', (image_library_name == 'Qt5Gui'),
description: 'Define Qt5 is available')
conf.set('LIBMEDIAART_VERSION', meson.project_version(),
description: 'Libmediaart version')
visibility_cflags = []
libmediaart_cflags = [
'-DLIBMEDIAART_COMPILATION'
]
# Symbol visibility.
if get_option('default_library') != 'static'
if host_machine.system() == 'windows'
conf.set('DLL_EXPORT', true,
description: 'Define if DLL_EXPORT is available')
conf.set('_LIBMEDIAART_EXTERN', '__declspec(dllexport) extern',
description: 'Define for publicly visible symbols')
if cc.get_id() != 'msvc'
visibility_cflags = ['-fvisibility=hidden']
endif
else
conf.set('_LIBMEDIAART_EXTERN', '__attribute__((visibility("default"))) extern',
description: 'Define for publicly visible symbols')
visibility_cflags = ['-fvisibility=hidden']
endif
endif
configure_file(output: 'config.h',
configuration: conf)
root_inc = include_directories('.')
subdir('libmediaart')
subdir('docs/reference/libmediaart')
subdir('tests')
pkgconfig.generate(
libraries: libmediaart,
name: 'libmediaart- ' + libmediaart_api_version,
version: meson.project_version(),
description: 'libmediaart - Media art extraction and cache management library',
filebase: 'libmediaart-' + libmediaart_api_version,
subdirs: 'libmediaart-' + libmediaart_api_version,
requires: 'glib-2.0',
requires_private: image_library_name,
libraries_private: ['-lz', '-lm'])
summary = [
'\nBuild Configuration:',
' Prefix: ' + get_option('prefix'),
' Source code location: ' + meson.source_root(),
' Compiler: ' + cc.get_id(),
' Image processing library: ' + image_library_name,
]
message('\n'.join(summary))
|