xref: /openbmc/phosphor-networkd/src/meson.build (revision bb0eaccb)
11bbe3d1eSWilliam A. Kennington IIIsrc_includes = include_directories('.')
21bbe3d1eSWilliam A. Kennington III
3e7c5aaadSWilliam A. Kennington IIIstdplus_dep = dependency('stdplus')
4a68ab4bbSWilliam A. Kennington III
51bbe3d1eSWilliam A. Kennington IIIexecutable(
61bbe3d1eSWilliam A. Kennington III  'ncsi-netlink',
71bbe3d1eSWilliam A. Kennington III  'argument.cpp',
81bbe3d1eSWilliam A. Kennington III  'ncsi_netlink_main.cpp',
91bbe3d1eSWilliam A. Kennington III  'ncsi_util.cpp',
101bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
111bbe3d1eSWilliam A. Kennington III  include_directories: src_includes,
121bbe3d1eSWilliam A. Kennington III  dependencies: [
131bbe3d1eSWilliam A. Kennington III    dependency('libnl-3.0'),
141bbe3d1eSWilliam A. Kennington III    dependency('libnl-genl-3.0'),
15e7c5aaadSWilliam A. Kennington III    stdplus_dep,
161bbe3d1eSWilliam A. Kennington III  ],
171bbe3d1eSWilliam A. Kennington III  install: true,
181bbe3d1eSWilliam A. Kennington III  install_dir: get_option('bindir'))
191bbe3d1eSWilliam A. Kennington III
201bbe3d1eSWilliam A. Kennington IIIjson_dep = declare_dependency()
211bbe3d1eSWilliam A. Kennington IIIif get_option('sync-mac')
221bbe3d1eSWilliam A. Kennington III  # nlohmann_json might not have a pkg-config. It is header only so just make
231bbe3d1eSWilliam A. Kennington III  # sure we can access the needed symbols from the header.
241bbe3d1eSWilliam A. Kennington III  has_json = meson.get_compiler('cpp').has_header_symbol(
251bbe3d1eSWilliam A. Kennington III    'nlohmann/json.hpp',
261bbe3d1eSWilliam A. Kennington III    'nlohmann::json::string_t',
271bbe3d1eSWilliam A. Kennington III    required: false)
281bbe3d1eSWilliam A. Kennington III  if not has_json
293397be3cSPatrick Williams    json_dep = dependency('nlohmann_json')
301bbe3d1eSWilliam A. Kennington III  endif
311bbe3d1eSWilliam A. Kennington IIIendif
321bbe3d1eSWilliam A. Kennington III
331bbe3d1eSWilliam A. Kennington IIInetworkd_deps = [
341bbe3d1eSWilliam A. Kennington III  json_dep,
351bbe3d1eSWilliam A. Kennington III  phosphor_dbus_interfaces_dep,
36e7c5aaadSWilliam A. Kennington III  dependency('phosphor-logging'),
3737cf66c8SWilliam A. Kennington III  networkd_dbus_dep,
381bbe3d1eSWilliam A. Kennington III  sdbusplus_dep,
393397be3cSPatrick Williams  dependency('sdeventplus'),
40e7c5aaadSWilliam A. Kennington III  stdplus_dep,
411bbe3d1eSWilliam A. Kennington III]
421bbe3d1eSWilliam A. Kennington III
431bbe3d1eSWilliam A. Kennington IIIconf_header = configure_file(
441bbe3d1eSWilliam A. Kennington III  output: 'config.h',
451bbe3d1eSWilliam A. Kennington III  configuration: conf_data)
461bbe3d1eSWilliam A. Kennington III
471bbe3d1eSWilliam A. Kennington IIInetworkd_lib = static_library(
481bbe3d1eSWilliam A. Kennington III  'networkd',
4937cf66c8SWilliam A. Kennington III  conf_header,
501bbe3d1eSWilliam A. Kennington III  'ethernet_interface.cpp',
511bbe3d1eSWilliam A. Kennington III  'neighbor.cpp',
521bbe3d1eSWilliam A. Kennington III  'ipaddress.cpp',
531bbe3d1eSWilliam A. Kennington III  'netlink.cpp',
541bbe3d1eSWilliam A. Kennington III  'network_config.cpp',
551bbe3d1eSWilliam A. Kennington III  'network_manager.cpp',
561bbe3d1eSWilliam A. Kennington III  'system_configuration.cpp',
572e09d278SWilliam A. Kennington III  'system_queries.cpp',
58*bb0eaccbSWilliam A. Kennington III  'types.cpp',
591bbe3d1eSWilliam A. Kennington III  'util.cpp',
601bbe3d1eSWilliam A. Kennington III  'routing_table.cpp',
611bbe3d1eSWilliam A. Kennington III  'config_parser.cpp',
621bbe3d1eSWilliam A. Kennington III  'dhcp_configuration.cpp',
631bbe3d1eSWilliam A. Kennington III  'vlan_interface.cpp',
641bbe3d1eSWilliam A. Kennington III  'rtnetlink_server.cpp',
651bbe3d1eSWilliam A. Kennington III  'dns_updater.cpp',
661bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
6737cf66c8SWilliam A. Kennington III  include_directories: src_includes,
681bbe3d1eSWilliam A. Kennington III  dependencies: networkd_deps)
691bbe3d1eSWilliam A. Kennington III
701bbe3d1eSWilliam A. Kennington IIInetworkd_dep = declare_dependency(
7137cf66c8SWilliam A. Kennington III  sources: conf_header,
721bbe3d1eSWilliam A. Kennington III  dependencies: networkd_deps,
7337cf66c8SWilliam A. Kennington III  include_directories: src_includes,
741bbe3d1eSWilliam A. Kennington III  link_with: networkd_lib)
751bbe3d1eSWilliam A. Kennington III
761bbe3d1eSWilliam A. Kennington IIIexecutable(
771bbe3d1eSWilliam A. Kennington III  'phosphor-network-manager',
781bbe3d1eSWilliam A. Kennington III  'network_manager_main.cpp',
791bbe3d1eSWilliam A. Kennington III  implicit_include_directories: false,
801bbe3d1eSWilliam A. Kennington III  dependencies: networkd_dep,
811bbe3d1eSWilliam A. Kennington III  install: true,
821bbe3d1eSWilliam A. Kennington III  install_dir: get_option('bindir'))
83be2bdecbSAsmitha Karunanithi
84be2bdecbSAsmitha Karunanithiif (get_option('hyp-nw-config') == true)
85be2bdecbSAsmitha Karunanithi  subdir('ibm')
86be2bdecbSAsmitha Karunanithiendif
87