summaryrefslogtreecommitdiff
path: root/meson.build
blob: f547a6db580fee62fa50b83bf686d626e27776e6 (plain)
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
project('libgudev', 'c',
  version: '237',
  license: 'LGPLv2.1+',
  meson_version: '>= 0.53.0',
  default_options: [
    'buildtype=debugoptimized',
  ]
)

gnome = import('gnome')
pkg = import('pkgconfig')

# Versioning
api_version = '1.0'
lib_version = '0.3.0'
version = meson.project_version()

package_name = 'gudev'
package_string = '@0@-@1@'.format(package_name, api_version)

# Paths
rootdir = include_directories('.')

srcdir = meson.source_root()
builddir = meson.build_root()

prefix = get_option('prefix')

includedir = join_paths(prefix, get_option('includedir'))
libdir = join_paths(prefix, get_option('libdir'))
datadir = join_paths(prefix, get_option('datadir'))

pkgincludedir = join_paths(includedir, package_string)
typelibdir = join_paths(libdir, 'girepository-1.0')
pkgconfigdir = join_paths(libdir, 'pkgconfig')
girdir = join_paths(datadir, 'gir-1.0')
gtkdocdir = join_paths(datadir, 'gtk-doc')
vapidir = join_paths(datadir, 'vala', 'vapi')

# Dependencies
cc = meson.get_compiler('c')

glib_req = '>= 2.38.0'
libudev_req = '>= 199'

glib_dep = dependency('glib-2.0', version: glib_req)
gobject_dep = dependency('gobject-2.0', version: glib_req)
libudev_dep = dependency('libudev', version: libudev_req)

gio_dep = dependency(
  'gio-2.0', version: glib_req,
  required: get_option('tests'))
umockdev_dep = dependency(
  'umockdev-1.0',
  required: get_option('tests')
)

gir_dep = find_program('g-ir-scanner', required: get_option('introspection'))
vapigen_dep = find_program('vapigen', required : get_option('vapi'))

if vapigen_dep.found()
  assert(gir_dep.found(), 'vapi requires introspection')
endif

# Configurations
config_h = configuration_data()
config_h.set_quoted('VERSION', version)

configure_file(
  output: 'config.h',
  configuration: config_h
)

top_srcdir = meson.current_source_dir()

subdir('gudev')

if umockdev_dep.found()
  subdir('tests')
endif

if get_option('gtk_doc')
  subdir('docs')
endif

summary('Documentation', get_option('gtk_doc'), section: 'Build')
summary('Introspection', gir_dep.found(), section: 'Build')
summary('Vala API', vapigen_dep.found(), section: 'Build')
summary('Tests', umockdev_dep.found(), section: 'Build')

summary('prefix', prefix, section: 'Directories')
summary('includedir', includedir, section: 'Directories')
summary('libdir', libdir, section: 'Directories')
summary('datadir', datadir, section: 'Directories')