blob: 035e1c073ba70ca800ead72715d4aded8aa96c6f [file] [log] [blame]
Ed Tanous0bff6852023-07-27 09:23:42 -07001project(
2 'libpeci',
3 'c', 'cpp',
4 version : '1.0',
5 meson_version: '>=1.1.1',
6 default_options: [
7 'b_ndebug=if-release',
8 'cpp_rtti=false',
9 'cpp_std=c++20',
10 'warning_level=3',
11 'werror=true',
12 ]
13)
14
15if (get_option('raw-peci').enabled())
16 sdbusplus = dependency('sdbusplus')
17
18 systemd = dependency('systemd', required: true)
19 systemd_system_unit_dir = systemd.get_variable(pkgconfig:
20 'systemdsystemunitdir'
21 )
22
23 boost = dependency('boost', version: '>=1.82')
24 add_project_arguments(
25 [
26 '-DBOOST_ASIO_DISABLE_THREADS',
27 '-DBOOST_ASIO_EXCEPTION_DISABLE',
28 '-DBOOST_ASIO_NO_DEPRECATED',
29 '-DBOOST_NO_RTTI',
30 '-DBOOST_NO_TYPEID',
31 ],
32 language : 'cpp'
33 )
34endif
35
36add_project_arguments(
37 [
38 '-Wcast-align',
39 '-Wconversion',
40 '-Wdouble-promotion',
41 '-Wduplicated-branches',
42 '-Wduplicated-cond',
43 '-Wformat=2',
44 '-Wlogical-op',
45 '-Wsign-conversion',
46 '-Wunused',
47 '-Wno-unused-parameter',
48 '-Wno-psabi',
49 ],
50 language : 'c'
51)
52
53add_project_arguments(
54 [
55 '-Wcast-align',
56 '-Wconversion',
57 '-Wdouble-promotion',
58 '-Wduplicated-branches',
59 '-Wduplicated-cond',
60 '-Wformat=2',
61 '-Wlogical-op',
62 '-Wnull-dereference',
63 '-Wsign-conversion',
64 '-Wunused',
65 '-Wno-psabi',
66 '-Wno-unused-parameter',
67 '-fno-rtti',
68 ],
69 language : 'cpp'
70)
71
72libpeci = library(
73 'peci',
74 'peci.c',
75 version: meson.project_version(),
76 install: true
77)
78install_headers('peci.h')
79
80bindir = get_option('prefix') + '/' + get_option('bindir')
81
82executable(
83 'peci_cmds',
84 'peci_cmds.c',
85 link_with: libpeci,
86 install: true,
87 install_dir: bindir
88)
89
90if (get_option('raw-peci').enabled())
91 executable(
92 'raw-peci',
93 'dbus_raw_peci.cpp',
94 dependencies: [
95 boost,
96 sdbusplus,
97 systemd,
98 ],
99 link_with: libpeci,
100 install: true,
101 install_dir: bindir
102 )
103 subdir('service_files')
104endif
105
106import('pkgconfig').generate(
107 libpeci,
108 name: meson.project_name(),
109 version: meson.project_version(),
110 description: 'PECI utilities',
111)