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
|
project('tartan', 'cpp', version: '0.4.0', license: 'GPL3',
meson_version: '>= 0.52',
default_options: ['cpp_std=c++14', 'warning_level=3'])
cxx = meson.get_compiler('cpp')
### Check for required libraries ###############################################
llvm_requirement = '>= 13.0'
glib_requirement = '>= 2.38'
gir_requirement = '>= 1.38.0'
glib = dependency('glib-2.0', version: glib_requirement,
fallback: ['glib', 'libglib_dep'])
gobject = dependency('gobject-2.0', version: glib_requirement,
fallback: ['glib', 'libgobject_dep'])
gio = dependency('gio-2.0', version: glib_requirement,
fallback: ['glib', 'libgio_dep'])
gi = dependency('gobject-introspection-1.0', version: gir_requirement,
fallback: ['gobject-introspection', 'girepo_dep'])
llvm_with_link = dependency('llvm', version: llvm_requirement,
include_type: 'system')
# Don't link against the LLVM libs because they're huge. All the symbols
# will be available when the plugin is loaded anyway.
llvm = llvm_with_link.partial_dependency(compile_args: true)
cxx.check_header('clang/AST/Expr.h', dependencies: llvm, required: true)
### Generate config.h ##########################################################
header_conf = configuration_data()
header_conf.set_quoted('VERSION', meson.project_version())
header_conf.set_quoted('LLVM_CONFIG_VERSION', llvm.version())
header_conf.set('HAVE_LLVM_8_0', llvm.version().version_compare('>= 8.0'))
header_conf.set('HAVE_LLVM_9_0', llvm.version().version_compare('>= 9.0'))
header_conf.set('GETTEXT_PACKAGE', meson.project_name())
configure_file(output: 'config.h', configuration: header_conf)
config_h_include = include_directories('.')
### Build ######################################################################
subdir('po')
subdir('clang-plugin')
subdir('scripts')
subdir('tests')
|