forked from linux-nvme/nvme-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmeson.build
More file actions
120 lines (110 loc) · 2.5 KB
/
meson.build
File metadata and controls
120 lines (110 loc) · 2.5 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
119
120
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of libnvme.
# Copyright (c) 2021 Dell Inc.
#
# Authors: Martin Belanger <[email protected]>
#
sources = [
'nvme/base64.c',
'nvme/cmds.c',
'nvme/crc32.c',
'nvme/fabrics.c',
'nvme/filters.c',
'nvme/ioctl.c',
'nvme/lib.c',
'nvme/linux.c',
'nvme/log.c',
'nvme/mi-mctp.c',
'nvme/mi.c',
'nvme/nbft.c',
'nvme/sysfs.c',
'nvme/tree.c',
'nvme/util.c',
]
if json_c_dep.found()
sources += 'nvme/json.c'
else
sources += 'nvme/no-json.c'
endif
# Generate accessors (setter/getter functions)
subdir('nvme') # declares: accessors_dep, accessors_ld_full_path
deps = [
config_dep,
ccan_dep,
json_c_dep,
keyutils_dep,
libdbus_dep,
liburing_dep,
openssl_dep,
accessors_dep,
]
ldfile = 'libnvme.ld'
libnvme = library(
'nvme', # produces libnvme.so
sources,
version: libnvme_so_version,
link_args: [
'-Wl,--version-script=@0@'.format(meson.current_source_dir() / ldfile),
'-Wl,--version-script=@0@'.format(accessors_ld_full_path),
],
dependencies: deps,
install: true,
)
pkg = import('pkgconfig')
pkg.generate(libnvme,
filebase: 'libnvme',
name: 'libnvme',
version: libnvme_so_version,
description: 'Manage "libnvme" subsystem devices (Non-volatile Memory Express)',
url: 'https://github.com/linux-nvme/nvme-cli/',
)
libnvme_dep = declare_dependency(
dependencies: [
json_c_dep.partial_dependency(compile_args: true, includes: true),
accessors_dep,
],
link_with: libnvme,
include_directories: '.',
)
# test library with all symbols visible, to use for MI unit tests. Should
# match libnvme above, but with no version script, and install: false.
libnvme_test = library(
'nvme-test', # produces libnvme-test.so
sources,
dependencies: deps,
install: false,
)
libnvme_test_dep = declare_dependency(
link_with: libnvme_test,
include_directories: '.',
dependencies: [
accessors_dep,
],
)
mode = 'rw-r--r--'
install_headers(
[
'libnvme.h',
'libnvme-mi.h',
],
install_mode: mode,
)
install_headers(
[
'nvme/cmds.h',
'nvme/fabrics.h',
'nvme/filters.h',
'nvme/ioctl.h',
'nvme/lib-types.h',
'nvme/lib.h',
'nvme/linux.h',
'nvme/mi.h',
'nvme/nbft.h',
'nvme/tree.h',
'nvme/types.h',
'nvme/util.h',
],
subdir: 'nvme',
install_mode: mode,
)