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
122 lines (112 loc) · 2.69 KB
/
meson.build
File metadata and controls
122 lines (112 loc) · 2.69 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
121
122
# 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/crc32.c',
'nvme/fabrics.c',
'nvme/filters.c',
'nvme/ioctl.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('generated')
sources += generated_accessors_c
deps = [
json_c_dep,
keyutils_dep,
libdbus_dep,
liburing_dep,
openssl_dep,
config_dep,
generated_accessors_dep,
]
source_dir = meson.current_source_dir()
mapfile = 'libnvme.map'
version_script_arg = join_paths(source_dir, mapfile)
libnvme = library(
'nvme', # produces libnvme.so
sources,
version: library_version,
link_args: ['-Wl,--version-script=' + version_script_arg],
dependencies: deps,
link_depends: mapfile,
c_args: [
'-include', config_h_path,
'-include', generated_accessors_h_path,
],
include_directories: [incdir, ],
install: true,
link_with: libccan,
)
pkg = import('pkgconfig')
pkg.generate(libnvme,
filebase: meson.project_name(),
name: meson.project_name(),
version: meson.project_version(),
description: 'Manage "libnvme" subsystem devices (Non-volatile Memory Express)',
url: 'http://github.com/linux-nvme/libnvme/',
)
libnvme_dep = declare_dependency(
include_directories: ['.'],
dependencies: [
json_c_dep.partial_dependency(compile_args: true, includes: true),
],
link_with: libnvme,
)
# 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,
c_args: [
'-include', config_h_path,
'-include', generated_accessors_h_path,
],
include_directories: [incdir, ],
install: false,
link_with: libccan,
)
libnvme_test_dep = declare_dependency(
include_directories: ['.'],
link_with: libnvme_test,
)
mode = ['rw-r--r--', 0, 0]
install_headers([
'libnvme.h',
'libnvme-mi.h',
],
install_mode: mode,
)
install_headers([
'nvme/fabrics.h',
'nvme/filters.h',
'nvme/ioctl.h',
'nvme/linux.h',
'nvme/log.h',
'nvme/nbft.h',
'nvme/tree.h',
'nvme/types.h',
'nvme/util.h',
'nvme/mi.h',
],
subdir: 'nvme',
install_mode: mode,
)