blob: fb476882aab900be2a6d24d6a24a486abb479ce0 [file] [log] [blame]
William A. Kennington III220b5da2019-03-29 15:30:59 -07001# Function2 might not have a pkg-config. It is header only so just make
2# sure we can access the needed symbols from the header.
3function2_dep = dependency('function2', required: false)
4has_function2 = meson.get_compiler('cpp').has_header_symbol(
5 'function2/function2.hpp',
6 'fu2::unique_function',
7 dependencies: function2_dep,
8 required: false)
9if not has_function2
10 function2_proj = import('cmake').subproject(
11 'function2',
12 cmake_options: [
13 '-DBUILD_TESTING=OFF',
14 ],
15 required: false)
16 assert(function2_proj.found(), 'function2 is required')
17 if function2_proj.found()
18 function2_dep = function2_proj.dependency('function2')
19 endif
20endif
21
William A. Kennington III8ec59e62019-04-03 13:38:17 -070022sdeventplus_deps = [
William A. Kennington IIIa5b752a2019-03-22 19:26:27 -070023 dependency('libsystemd', version: '>=240'),
William A. Kennington IIIfa277342020-02-20 15:16:22 -080024 dependency('stdplus', fallback: ['stdplus', 'stdplus']),
William A. Kennington III220b5da2019-03-29 15:30:59 -070025 function2_dep,
William A. Kennington III8ec59e62019-04-03 13:38:17 -070026]
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080027
William A. Kennington III8ec59e62019-04-03 13:38:17 -070028sdeventplus_headers = include_directories('.')
29
30sdeventplus_lib = library(
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080031 'sdeventplus',
32 [
33 'sdeventplus/clock.cpp',
34 'sdeventplus/event.cpp',
35 'sdeventplus/exception.cpp',
36 'sdeventplus/internal/sdevent.cpp',
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080037 'sdeventplus/source/base.cpp',
38 'sdeventplus/source/child.cpp',
39 'sdeventplus/source/event.cpp',
40 'sdeventplus/source/io.cpp',
41 'sdeventplus/source/signal.cpp',
42 'sdeventplus/source/time.cpp',
William A. Kennington III5457dae2019-04-03 03:06:57 -070043 'sdeventplus/utility/timer.cpp',
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080044 ],
William A. Kennington III8ec59e62019-04-03 13:38:17 -070045 include_directories: sdeventplus_headers,
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080046 implicit_include_directories: false,
William A. Kennington III2d8f8cc2019-03-28 03:27:50 -070047 version: meson.project_version(),
William A. Kennington III8ec59e62019-04-03 13:38:17 -070048 dependencies: sdeventplus_deps,
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080049 install: true)
50
William A. Kennington III8ec59e62019-04-03 13:38:17 -070051sdeventplus = declare_dependency(
52 dependencies: sdeventplus_deps,
53 include_directories: sdeventplus_headers,
54 link_with: sdeventplus_lib)
55
William A. Kennington III05784722020-06-03 00:48:02 -070056sdeventplus_reqs = []
57foreach dep : sdeventplus_deps
58 if dep.type_name() == 'pkgconfig'
59 sdeventplus_reqs += dep
60 endif
61endforeach
62
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080063import('pkgconfig').generate(
64 name: 'sdeventplus',
65 description: 'C++ systemd event wrapper',
66 version: meson.project_version(),
William A. Kennington III05784722020-06-03 00:48:02 -070067 libraries: sdeventplus,
68 requires: sdeventplus_reqs)
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080069
70install_headers(
71 'sdeventplus/clock.hpp',
72 'sdeventplus/event.hpp',
73 'sdeventplus/exception.hpp',
William A. Kennington III546fa932020-06-03 14:24:24 -070074 'sdeventplus/types.hpp',
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080075 subdir: 'sdeventplus')
76
77install_headers(
78 'sdeventplus/internal/sdevent.hpp',
William A. Kennington IIId4b33e92018-12-04 17:22:05 -080079 'sdeventplus/internal/utils.hpp',
80 subdir: 'sdeventplus/internal')
81
82install_headers(
83 'sdeventplus/source/base.hpp',
84 'sdeventplus/source/child.hpp',
85 'sdeventplus/source/event.hpp',
86 'sdeventplus/source/io.hpp',
87 'sdeventplus/source/signal.hpp',
88 'sdeventplus/source/time.hpp',
89 subdir: 'sdeventplus/source')
90
91install_headers(
92 'sdeventplus/test/sdevent.hpp',
93 subdir: 'sdeventplus/test')
94
95install_headers(
96 'sdeventplus/utility/timer.hpp',
97 subdir: 'sdeventplus/utility')