xref: /openbmc/phosphor-networkd/src/meson.build (revision 1bbe3d1e)
1*1bbe3d1eSWilliam A. Kennington IIIphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
2*1bbe3d1eSWilliam A. Kennington IIIphosphor_logging_dep = dependency('phosphor-logging')
3*1bbe3d1eSWilliam A. Kennington III
4*1bbe3d1eSWilliam A. Kennington IIIsrc_includes = include_directories('.')
5*1bbe3d1eSWilliam A. Kennington III
6*1bbe3d1eSWilliam A. Kennington IIIexecutable(
7*1bbe3d1eSWilliam A. Kennington III  'ncsi-netlink',
8*1bbe3d1eSWilliam A. Kennington III  'argument.cpp',
9*1bbe3d1eSWilliam A. Kennington III  'ncsi_netlink_main.cpp',
10*1bbe3d1eSWilliam A. Kennington III  'ncsi_util.cpp',
11*1bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
12*1bbe3d1eSWilliam A. Kennington III  include_directories: src_includes,
13*1bbe3d1eSWilliam A. Kennington III  dependencies: [
14*1bbe3d1eSWilliam A. Kennington III    dependency('libnl-3.0'),
15*1bbe3d1eSWilliam A. Kennington III    dependency('libnl-genl-3.0'),
16*1bbe3d1eSWilliam A. Kennington III    phosphor_dbus_interfaces_dep,
17*1bbe3d1eSWilliam A. Kennington III    phosphor_logging_dep,
18*1bbe3d1eSWilliam A. Kennington III  ],
19*1bbe3d1eSWilliam A. Kennington III  install: true,
20*1bbe3d1eSWilliam A. Kennington III  install_dir: get_option('bindir'))
21*1bbe3d1eSWilliam A. Kennington III
22*1bbe3d1eSWilliam A. Kennington IIIjson_dep = declare_dependency()
23*1bbe3d1eSWilliam A. Kennington IIIif get_option('sync-mac')
24*1bbe3d1eSWilliam A. Kennington III  # nlohmann_json might not have a pkg-config. It is header only so just make
25*1bbe3d1eSWilliam A. Kennington III  # sure we can access the needed symbols from the header.
26*1bbe3d1eSWilliam A. Kennington III  has_json = meson.get_compiler('cpp').has_header_symbol(
27*1bbe3d1eSWilliam A. Kennington III    'nlohmann/json.hpp',
28*1bbe3d1eSWilliam A. Kennington III    'nlohmann::json::string_t',
29*1bbe3d1eSWilliam A. Kennington III    required: false)
30*1bbe3d1eSWilliam A. Kennington III  if not has_json
31*1bbe3d1eSWilliam A. Kennington III    json_dep = dependency(
32*1bbe3d1eSWilliam A. Kennington III      'nlohmann_json',
33*1bbe3d1eSWilliam A. Kennington III      fallback: ['nlohmann_json', 'nlohmann_json_dep'],
34*1bbe3d1eSWilliam A. Kennington III      required: true)
35*1bbe3d1eSWilliam A. Kennington III  endif
36*1bbe3d1eSWilliam A. Kennington IIIendif
37*1bbe3d1eSWilliam A. Kennington III
38*1bbe3d1eSWilliam A. Kennington IIInetworkd_deps = [
39*1bbe3d1eSWilliam A. Kennington III  json_dep,
40*1bbe3d1eSWilliam A. Kennington III  phosphor_dbus_interfaces_dep,
41*1bbe3d1eSWilliam A. Kennington III  phosphor_logging_dep,
42*1bbe3d1eSWilliam A. Kennington III  sdbusplus_dep,
43*1bbe3d1eSWilliam A. Kennington III  dependency('sdeventplus', fallback: ['sdeventplus', 'sdeventplus_dep']),
44*1bbe3d1eSWilliam A. Kennington III  dependency('stdplus', fallback: ['stdplus', 'stdplus_dep']),
45*1bbe3d1eSWilliam A. Kennington III]
46*1bbe3d1eSWilliam A. Kennington III
47*1bbe3d1eSWilliam A. Kennington IIIconf_header = configure_file(
48*1bbe3d1eSWilliam A. Kennington III  output: 'config.h',
49*1bbe3d1eSWilliam A. Kennington III  configuration: conf_data)
50*1bbe3d1eSWilliam A. Kennington III
51*1bbe3d1eSWilliam A. Kennington IIInetworkd_generated = [
52*1bbe3d1eSWilliam A. Kennington III  conf_header,
53*1bbe3d1eSWilliam A. Kennington III] + generated_sources
54*1bbe3d1eSWilliam A. Kennington III
55*1bbe3d1eSWilliam A. Kennington IIInetworkd_includes = [
56*1bbe3d1eSWilliam A. Kennington III  src_includes,
57*1bbe3d1eSWilliam A. Kennington III  generated_includes,
58*1bbe3d1eSWilliam A. Kennington III]
59*1bbe3d1eSWilliam A. Kennington III
60*1bbe3d1eSWilliam A. Kennington IIInetworkd_lib = static_library(
61*1bbe3d1eSWilliam A. Kennington III  'networkd',
62*1bbe3d1eSWilliam A. Kennington III  networkd_generated,
63*1bbe3d1eSWilliam A. Kennington III  'ethernet_interface.cpp',
64*1bbe3d1eSWilliam A. Kennington III  'neighbor.cpp',
65*1bbe3d1eSWilliam A. Kennington III  'ipaddress.cpp',
66*1bbe3d1eSWilliam A. Kennington III  'netlink.cpp',
67*1bbe3d1eSWilliam A. Kennington III  'network_config.cpp',
68*1bbe3d1eSWilliam A. Kennington III  'network_manager.cpp',
69*1bbe3d1eSWilliam A. Kennington III  'system_configuration.cpp',
70*1bbe3d1eSWilliam A. Kennington III  'util.cpp',
71*1bbe3d1eSWilliam A. Kennington III  'routing_table.cpp',
72*1bbe3d1eSWilliam A. Kennington III  'config_parser.cpp',
73*1bbe3d1eSWilliam A. Kennington III  'dhcp_configuration.cpp',
74*1bbe3d1eSWilliam A. Kennington III  'vlan_interface.cpp',
75*1bbe3d1eSWilliam A. Kennington III  'rtnetlink_server.cpp',
76*1bbe3d1eSWilliam A. Kennington III  'dns_updater.cpp',
77*1bbe3d1eSWilliam A. Kennington III  'watch.cpp',
78*1bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
79*1bbe3d1eSWilliam A. Kennington III  include_directories: networkd_includes,
80*1bbe3d1eSWilliam A. Kennington III  dependencies: networkd_deps)
81*1bbe3d1eSWilliam A. Kennington III
82*1bbe3d1eSWilliam A. Kennington IIInetworkd_dep = declare_dependency(
83*1bbe3d1eSWilliam A. Kennington III  sources: networkd_generated,
84*1bbe3d1eSWilliam A. Kennington III  dependencies: networkd_deps,
85*1bbe3d1eSWilliam A. Kennington III  include_directories: networkd_includes,
86*1bbe3d1eSWilliam A. Kennington III  link_with: networkd_lib)
87*1bbe3d1eSWilliam A. Kennington III
88*1bbe3d1eSWilliam A. Kennington IIIexecutable(
89*1bbe3d1eSWilliam A. Kennington III  'phosphor-network-manager',
90*1bbe3d1eSWilliam A. Kennington III  'network_manager_main.cpp',
91*1bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
92*1bbe3d1eSWilliam A. Kennington III  dependencies: networkd_dep,
93*1bbe3d1eSWilliam A. Kennington III  install: true,
94*1bbe3d1eSWilliam A. Kennington III  install_dir: get_option('bindir'))
95