xref: /openbmc/phosphor-host-ipmid/user_channel/meson.build (revision ed7dbeffdc1d81444ef2639c65893ebd35db63b5)
1user_channel_inc = include_directories('.')
2
3channellayer_pre = declare_dependency(
4    include_directories: [root_inc, user_channel_inc],
5    dependencies: [
6        crypto,
7        ipmid_dep,
8        libsystemd_dep,
9        nlohmann_json_dep,
10        phosphor_dbus_interfaces_dep,
11        phosphor_logging_dep,
12    ],
13)
14
15channellayer_src = ['channel_layer.cpp', 'channel_mgmt.cpp', 'cipher_mgmt.cpp']
16
17channellayer_lib = library(
18    'channellayer',
19    channellayer_src,
20    implicit_include_directories: false,
21    dependencies: channellayer_pre,
22    version: meson.project_version(),
23    install: true,
24    install_dir: get_option('libdir'),
25    override_options: ['b_lundef=false'],
26)
27
28channellayer_dep = declare_dependency(
29    link_with: channellayer_lib,
30    dependencies: channellayer_pre,
31)
32
33import('pkgconfig').generate(
34    channellayer_lib,
35    name: 'libchannellayer',
36    version: meson.project_version(),
37    description: 'libchannellayer',
38)
39
40if get_option('libuserlayer').allowed()
41    userlayer_pre = declare_dependency(
42        include_directories: [root_inc, user_channel_inc],
43        dependencies: [
44            channellayer_dep,
45            crypto,
46            ipmid_dep,
47            libsystemd_dep,
48            nlohmann_json_dep,
49            pam,
50            phosphor_dbus_interfaces_dep,
51            phosphor_logging_dep,
52        ],
53    )
54
55    userlayer_src = ['user_layer.cpp', 'user_mgmt.cpp', 'passwd_mgr.cpp']
56
57    userlayer_lib = library(
58        'userlayer',
59        userlayer_src,
60        implicit_include_directories: false,
61        dependencies: userlayer_pre,
62        version: meson.project_version(),
63        install: true,
64        install_dir: get_option('libdir'),
65        override_options: ['b_lundef=false'],
66    )
67
68    userlayer_dep = declare_dependency(
69        link_with: userlayer_lib,
70        dependencies: userlayer_pre,
71    )
72
73    usercmds_pre = declare_dependency(
74        include_directories: [root_inc, user_channel_inc],
75        dependencies: [
76            phosphor_logging_dep,
77            ipmid_dep,
78            userlayer_dep,
79            channellayer_dep,
80        ],
81    )
82
83    usercmds_lib = library(
84        'usercmds',
85        'usercommands.cpp',
86        implicit_include_directories: false,
87        dependencies: usercmds_pre,
88        install: true,
89        install_dir: get_option('libdir') / 'ipmid-providers',
90        version: meson.project_version(),
91        override_options: ['b_lundef=false'],
92    )
93
94    import('pkgconfig').generate(
95        userlayer_lib,
96        name: 'libuserlayer',
97        version: meson.project_version(),
98        description: 'libuserlayer',
99    )
100
101endif
102