summaryrefslogtreecommitdiff
path: root/src/libcamera/base/meson.build
blob: 7030ad1f5927629b72fdef78d2e33100e0c340fb (plain)
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
# SPDX-License-Identifier: CC0-1.0

libcamera_base_sources = files([
    'backtrace.cpp',
    'class.cpp',
    'bound_method.cpp',
    'event_dispatcher.cpp',
    'event_dispatcher_poll.cpp',
    'event_notifier.cpp',
    'file.cpp',
    'flags.cpp',
    'log.cpp',
    'message.cpp',
    'mutex.cpp',
    'object.cpp',
    'semaphore.cpp',
    'shared_fd.cpp',
    'signal.cpp',
    'thread.cpp',
    'timer.cpp',
    'unique_fd.cpp',
    'utils.cpp',
])

libdw = cc.find_library('libdw', required : false)
libunwind = cc.find_library('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 = [
    dependency('threads'),
    libatomic,
    libdw,
    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_sources, libcamera_base_headers],
                                    version : libcamera_version,
                                    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)