-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathmeson.build
84 lines (74 loc) · 2.1 KB
/
meson.build
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
project('dsymbol', 'd',
meson_version: '>=0.44',
license: 'BSL-1.0',
version: '0.4.8'
)
project_soversion = '0'
pkgc = import('pkgconfig')
dparse_dep = dependency('dparse', version: '>= 0.9.0', fallback: ['dparse', 'dparse_dep'])
dcontainers_dep = dependency('dcontainers', version: '>= 0.8.0', fallback: ['dcontainers', 'dcontainers_dep'])
#
# Sources
#
dsymbol_src = [
'src/dsymbol/builtin/names.d',
'src/dsymbol/builtin/symbols.d',
'src/dsymbol/cache_entry.d',
'src/dsymbol/conversion/first.d',
'src/dsymbol/conversion/package.d',
'src/dsymbol/conversion/second.d',
'src/dsymbol/deferred.d',
'src/dsymbol/import_.d',
'src/dsymbol/modulecache.d',
'src/dsymbol/scope_.d',
'src/dsymbol/semantic.d',
'src/dsymbol/string_interning.d',
'src/dsymbol/symbol.d',
'src/dsymbol/tests.d',
'src/dsymbol/type_lookup.d',
]
src_dir = include_directories('src/')
#
# Targets
#
dsymbol_lib = library('dsymbol',
[dsymbol_src],
include_directories: [src_dir],
install: true,
version: meson.project_version(),
soversion: project_soversion,
dependencies: [dparse_dep, dcontainers_dep]
)
pkgc.generate(name: 'dsymbol',
libraries: [dsymbol_lib],
subdirs: 'd/dsymbol',
requires: ['dparse', 'dcontainers'],
version: meson.project_version(),
description: 'Library for lexing and parsing D source code.'
)
# for use by others which embed this as subproject
dsymbol_dep = declare_dependency(
link_with: [dsymbol_lib],
include_directories: [src_dir],
dependencies: [dparse_dep, dcontainers_dep]
)
#
# Tests
#
if meson.get_compiler('d').get_id() == 'llvm'
extra_args = ['-main', '-link-defaultlib-shared']
else
extra_args = ['-main']
endif
dsymbol_test_exe = executable('test_dsymbol',
[dsymbol_src],
include_directories: [src_dir],
dependencies: [dparse_dep, dcontainers_dep],
d_unittest: true,
link_args: extra_args
)
test('test_dsymbol', dsymbol_test_exe)
#
# Install
#
install_subdir('src/dsymbol/', install_dir: 'include/d/dsymbol/')