meson.build (1e710d04a61092b45ff4ccd58656cb5cee3cba5b) meson.build (1bbe3d1e3bce52044874294e353e80af9ee706a2)
1project(
2 'phosphor-networkd',
3 'cpp',
4 version: '0.1',
5 meson_version: '>=0.57.0',
6 default_options: [
7 'warning_level=3',
8 'cpp_std=c++20',

--- 7 unchanged lines hidden (view full) ---

16conf_data.set(
17 'LINK_LOCAL_AUTOCONFIGURATION',
18 get_option('default-link-local-autoconf'))
19conf_data.set(
20 'ENABLE_IPV6_ACCEPT_RA',
21 get_option('default-ipv6-accept-ra'))
22conf_data.set('NIC_SUPPORTS_ETHTOOL', get_option('nic-ethtool'))
23conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac'))
1project(
2 'phosphor-networkd',
3 'cpp',
4 version: '0.1',
5 meson_version: '>=0.57.0',
6 default_options: [
7 'warning_level=3',
8 'cpp_std=c++20',

--- 7 unchanged lines hidden (view full) ---

16conf_data.set(
17 'LINK_LOCAL_AUTOCONFIGURATION',
18 get_option('default-link-local-autoconf'))
19conf_data.set(
20 'ENABLE_IPV6_ACCEPT_RA',
21 get_option('default-ipv6-accept-ra'))
22conf_data.set('NIC_SUPPORTS_ETHTOOL', get_option('nic-ethtool'))
23conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac'))
24conf_header = configure_file(
25 output: 'config.h',
26 configuration: conf_data)
27
28sdbusplus_dep = dependency('sdbusplus', required: false)
29if sdbusplus_dep.found()
30 sdbusplusplus_prog = find_program('sdbus++', native: true)
31 sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true)
32else
33 sdbusplus_proj = subproject('sdbusplus', required: true)
34 sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
35 sdbusplusplus_prog = sdbusplus_proj.get_variable('sdbusplusplus_prog')
36 sdbuspp_gen_meson_prog = sdbusplus_proj.get_variable('sdbuspp_gen_meson_prog')
37endif
38
24
25sdbusplus_dep = dependency('sdbusplus', required: false)
26if sdbusplus_dep.found()
27 sdbusplusplus_prog = find_program('sdbus++', native: true)
28 sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true)
29else
30 sdbusplus_proj = subproject('sdbusplus', required: true)
31 sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
32 sdbusplusplus_prog = sdbusplus_proj.get_variable('sdbusplusplus_prog')
33 sdbuspp_gen_meson_prog = sdbusplus_proj.get_variable('sdbuspp_gen_meson_prog')
34endif
35
39phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
40phosphor_logging_dep = dependency('phosphor-logging')
41
42generated_sources = [ conf_header ]
36generated_sources = []
43generated_others = []
44yaml_sources = []
45subdir('gen')
46subdir('gen/xyz')
37generated_others = []
38yaml_sources = []
39subdir('gen')
40subdir('gen/xyz')
41generated_includes = include_directories('gen')
47
42
48networkd_headers = include_directories('.', 'gen')
43subdir('src')
49
44
50executable(
51 'ncsi-netlink',
52 'argument.cpp',
53 'ncsi_netlink_main.cpp',
54 'ncsi_util.cpp',
55 implicit_include_directories: false,
56 include_directories: networkd_headers,
57 dependencies: [
58 dependency('libnl-3.0'),
59 dependency('libnl-genl-3.0'),
60 phosphor_dbus_interfaces_dep,
61 phosphor_logging_dep,
62 ],
63 install: true,
64 install_dir: get_option('bindir'))
65
66json_dep = declare_dependency()
67if get_option('sync-mac')
68 # nlohmann_json might not have a pkg-config. It is header only so just make
69 # sure we can access the needed symbols from the header.
70 has_json = meson.get_compiler('cpp').has_header_symbol(
71 'nlohmann/json.hpp',
72 'nlohmann::json::string_t',
73 required: false)
74 if not has_json
75 json_dep = dependency(
76 'nlohmann_json',
77 fallback: ['nlohmann_json', 'nlohmann_json_dep'],
78 required: true)
79 endif
80endif
81
82networkd_deps = [
83 json_dep,
84 phosphor_dbus_interfaces_dep,
85 phosphor_logging_dep,
86 sdbusplus_dep,
87 dependency('sdeventplus', fallback: ['sdeventplus', 'sdeventplus_dep']),
88 dependency('stdplus', fallback: ['stdplus', 'stdplus_dep']),
89]
90
91networkd_lib = static_library(
92 'networkd',
93 generated_sources,
94 'ethernet_interface.cpp',
95 'neighbor.cpp',
96 'ipaddress.cpp',
97 'netlink.cpp',
98 'network_config.cpp',
99 'network_manager.cpp',
100 'system_configuration.cpp',
101 'util.cpp',
102 'routing_table.cpp',
103 'config_parser.cpp',
104 'dhcp_configuration.cpp',
105 'vlan_interface.cpp',
106 'rtnetlink_server.cpp',
107 'dns_updater.cpp',
108 'watch.cpp',
109 implicit_include_directories: false,
110 include_directories: networkd_headers,
111 dependencies: networkd_deps)
112
113networkd_dep = declare_dependency(
114 sources: generated_sources,
115 dependencies: networkd_deps,
116 include_directories: networkd_headers,
117 link_with: networkd_lib)
118
119executable(
120 'phosphor-network-manager',
121 'network_manager_main.cpp',
122 implicit_include_directories: false,
123 dependencies: networkd_dep,
124 install: true,
125 install_dir: get_option('bindir'))
126
127configure_file(
128 input: 'xyz.openbmc_project.Network.service.in',
129 output: 'xyz.openbmc_project.Network.service',
130 configuration: {
131 'SYSTEMD_TARGET': 'multi-user.target',
132 'DEFAULT_BUSNAME': default_busname,
133 },
134 install: true,

--- 13 unchanged lines hidden ---
45configure_file(
46 input: 'xyz.openbmc_project.Network.service.in',
47 output: 'xyz.openbmc_project.Network.service',
48 configuration: {
49 'SYSTEMD_TARGET': 'multi-user.target',
50 'DEFAULT_BUSNAME': default_busname,
51 },
52 install: true,

--- 13 unchanged lines hidden ---