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
|
# SPDX-License-Identifier: CC0-1.0
libcamera_base_public_sources = files([
'bound_method.cpp',
'class.cpp',
'flags.cpp',
'object.cpp',
'shared_fd.cpp',
'signal.cpp',
'unique_fd.cpp',
])
libcamera_base_internal_sources = files([
'backtrace.cpp',
'event_dispatcher.cpp',
'event_dispatcher_poll.cpp',
'event_notifier.cpp',
'file.cpp',
'log.cpp',
'memfd.cpp',
'message.cpp',
'mutex.cpp',
'semaphore.cpp',
'thread.cpp',
'timer.cpp',
'utils.cpp',
])
libdw = dependency('libdw', required : false)
libunwind = dependency('libunwind', required : false)
if cc.has_header_symbol('execinfo.h', 'backtrace')
config_h.set('HAVE_BACKTRACE', 1)
endif
if libdw.found()
config_h.set('HAVE_DW', 1)
endif
if libunwind.found()
config_h.set('HAVE_UNWIND', 1)
endif
libcamera_base_deps = [
libatomic,
libdw,
libthreads,
libunwind,
]
# Internal components must use the libcamera_base_private dependency to enable
# the use of headers which must not be exposed to the libcamera public api.
libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ]
libcamera_base_lib = shared_library('libcamera-base',
[
libcamera_base_public_sources,
libcamera_base_internal_sources,
libcamera_base_headers,
],
version : libcamera_version,
soversion : libcamera_soversion,
name_prefix : '',
install : true,
cpp_args : libcamera_base_args,
include_directories : libcamera_includes,
dependencies : libcamera_base_deps)
libcamera_base = declare_dependency(sources : [
libcamera_base_headers,
],
include_directories : libcamera_includes,
link_with : libcamera_base_lib)
pkg_mod = import('pkgconfig')
pkg_mod.generate(libcamera_base_lib,
description : 'Camera support base utility library',
subdirs : 'libcamera')
libcamera_base_private = declare_dependency(dependencies : libcamera_base,
compile_args : libcamera_base_args)
|