blob: 84c2f824952035607c3ba2cb0d5d3e97cb8c61ad [file] [log] [blame]
William A. Kennington III1bbe3d12021-05-13 23:45:09 -07001src_includes = include_directories('.')
2
William A. Kennington IIIe7c5aaa2022-10-06 13:17:15 -07003stdplus_dep = dependency('stdplus')
William A. Kennington IIIa68ab4b2021-10-07 19:16:16 -07004
William A. Kennington III1bbe3d12021-05-13 23:45:09 -07005executable(
6 'ncsi-netlink',
7 'argument.cpp',
8 'ncsi_netlink_main.cpp',
9 'ncsi_util.cpp',
10 implicit_include_directories: false,
11 include_directories: src_includes,
12 dependencies: [
13 dependency('libnl-3.0'),
14 dependency('libnl-genl-3.0'),
William A. Kennington IIIe7c5aaa2022-10-06 13:17:15 -070015 stdplus_dep,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070016 ],
17 install: true,
18 install_dir: get_option('bindir'))
19
20json_dep = declare_dependency()
21if get_option('sync-mac')
22 # nlohmann_json might not have a pkg-config. It is header only so just make
23 # sure we can access the needed symbols from the header.
24 has_json = meson.get_compiler('cpp').has_header_symbol(
25 'nlohmann/json.hpp',
26 'nlohmann::json::string_t',
27 required: false)
28 if not has_json
Patrick Williams3397be32022-03-21 09:52:57 -050029 json_dep = dependency('nlohmann_json')
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070030 endif
31endif
32
33networkd_deps = [
34 json_dep,
35 phosphor_dbus_interfaces_dep,
William A. Kennington IIIe7c5aaa2022-10-06 13:17:15 -070036 dependency('phosphor-logging'),
William A. Kennington III37cf66c2021-05-17 14:56:54 -070037 networkd_dbus_dep,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070038 sdbusplus_dep,
Patrick Williams3397be32022-03-21 09:52:57 -050039 dependency('sdeventplus'),
William A. Kennington IIIe7c5aaa2022-10-06 13:17:15 -070040 stdplus_dep,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070041]
42
43conf_header = configure_file(
44 output: 'config.h',
45 configuration: conf_data)
46
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070047networkd_lib = static_library(
48 'networkd',
William A. Kennington III37cf66c2021-05-17 14:56:54 -070049 conf_header,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070050 'ethernet_interface.cpp',
51 'neighbor.cpp',
52 'ipaddress.cpp',
53 'netlink.cpp',
54 'network_config.cpp',
55 'network_manager.cpp',
56 'system_configuration.cpp',
57 'util.cpp',
58 'routing_table.cpp',
59 'config_parser.cpp',
60 'dhcp_configuration.cpp',
61 'vlan_interface.cpp',
62 'rtnetlink_server.cpp',
63 'dns_updater.cpp',
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070064 implicit_include_directories: false,
William A. Kennington III37cf66c2021-05-17 14:56:54 -070065 include_directories: src_includes,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070066 dependencies: networkd_deps)
67
68networkd_dep = declare_dependency(
William A. Kennington III37cf66c2021-05-17 14:56:54 -070069 sources: conf_header,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070070 dependencies: networkd_deps,
William A. Kennington III37cf66c2021-05-17 14:56:54 -070071 include_directories: src_includes,
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070072 link_with: networkd_lib)
73
74executable(
75 'phosphor-network-manager',
76 'network_manager_main.cpp',
77 implicit_include_directories: false,
78 dependencies: networkd_dep,
79 install: true,
80 install_dir: get_option('bindir'))
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050081
82if (get_option('hyp-nw-config') == true)
83 subdir('ibm')
84endif