-
-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathmeson.build
More file actions
118 lines (103 loc) · 3.42 KB
/
Copy pathmeson.build
File metadata and controls
118 lines (103 loc) · 3.42 KB
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
# SPDX-License-Identifier: GPL-3.0-only
# SPDX-FileCopyrightText: Workbench Contributors
# SPDX-FileContributor: Andy Holmes <andyholmes@gnome.org>
prefix = get_option('prefix')
datadir = join_paths(prefix, get_option('datadir'))
includedir = join_paths(prefix, get_option('includedir'))
libdir = join_paths(prefix, get_option('libdir'))
girdir = join_paths(datadir, 'gir-1.0')
typelibdir = join_paths(libdir, 'girepository-1.0')
vapidir = join_paths(datadir, 'vala', 'vapi')
libworkbench_api_version = '0'
libworkbench_api_name = 'libworkbench-@0@'.format(libworkbench_api_version)
#
# Shared Library
#
libworkbench_c_args = [
'-Wall',
'-Wextra',
'-Wfloat-equal',
'-Wformat=2',
'-Wincompatible-pointer-types',
'-Wint-conversion',
'-Wint-to-pointer-cast',
'-Wmissing-include-dirs',
'-Woverflow',
'-Wpointer-arith',
'-Wpointer-to-int-cast',
'-Wredundant-decls',
'-Wshadow',
'-Wstrict-prototypes',
'-Wundef',
'-Wno-discarded-array-qualifiers',
'-Wno-missing-field-initializers',
'-Wno-unused-parameter',
'-Wno-missing-declarations',
'-DWORKBENCH_COMPILATION',
'-DWORKBENCH_EXPORT=__attribute__((visibility("default"))) extern',
]
libworkbench_link_args = []
libworkbench_deps = [
dependency('gio-2.0', version: '>= 2.76.0'),
dependency('gtk4', version: '>= 4.10.0'),
dependency('gtksourceview-5', version: '>= 5.8.0'),
]
if get_option('profile') != 'development'
libworkbench_c_args += [
'-DG_DISABLE_ASSERT',
'-DG_DISABLE_CAST_CHECKS',
]
endif
libworkbench_headers = files([
'workbench.h',
'workbench-completion-provider.h',
'workbench-completion-request.h',
'workbench-global.h',
])
libworkbench_sources = files([
'workbench-completion-provider.c',
'workbench-completion-request.c',
'workbench-global.c',
])
install_headers(libworkbench_headers,
subdir: join_paths(includedir, 'libworkbench'),
)
libworkbench_enums = gnome.mkenums_simple('libworkbench-enums',
sources: libworkbench_headers,
decorator: 'WORKBENCH_EXPORT',
install_header: true,
install_dir: join_paths(includedir, 'libworkbench'),
)
libworkbench = shared_library('workbench-@0@'.format(libworkbench_api_version),
libworkbench_headers,
libworkbench_sources,
libworkbench_enums,
include_directories: [include_directories('.')],
dependencies: libworkbench_deps,
c_args: libworkbench_c_args,
link_args: libworkbench_link_args,
gnu_symbol_visibility: 'hidden',
soversion: meson.project_version(),
version: libworkbench_api_version,
install: true,
)
# GObject Introspection
libworkbench_gir = gnome.generate_gir(libworkbench,
identifier_prefix: meson.project_name(),
namespace: meson.project_name(),
nsversion: libworkbench_api_version,
symbol_prefix: meson.project_name().to_lower(),
sources: [libworkbench_headers, libworkbench_sources, libworkbench_enums],
extra_args: ['--c-include=workbench.h'],
includes: ['Gio-2.0', 'Gtk-4.0', 'GtkSource-5'],
install_dir_gir: girdir,
install_dir_typelib: typelibdir,
install: true,
)
# Vala API Bindings
libworkbench_vapi = gnome.generate_vapi(libworkbench_api_name,
sources: libworkbench_gir[0],
packages: ['gio-2.0', 'gtk4', 'gtksourceview-5'],
install: true,
install_dir: vapidir,
)