blob: 549b4df3409460715cf98d99623d6fa451f142b7 [file] [log] [blame]
William A. Kennington III0a01b2a2021-05-13 18:38:57 -07001project(
Patrick Williams297a63b2025-03-03 11:07:57 -05002 'phosphor-networkd',
3 'cpp',
4 version: '0.1',
5 meson_version: '>=1.1.1',
6 default_options: ['warning_level=3', 'cpp_std=c++23'],
7)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -07008
William A. Kennington III1e710d02021-05-24 13:35:44 -07009default_busname = 'xyz.openbmc_project.Network'
10
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070011conf_data = configuration_data()
William A. Kennington III1e710d02021-05-24 13:35:44 -070012conf_data.set_quoted('DEFAULT_BUSNAME', default_busname)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070013conf_data.set(
Patrick Williams297a63b2025-03-03 11:07:57 -050014 'LINK_LOCAL_AUTOCONFIGURATION',
15 get_option('default-link-local-autoconf'),
16)
17conf_data.set('ENABLE_IPV6_ACCEPT_RA', get_option('default-ipv6-accept-ra'))
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070018conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac'))
Johnathan Mantey609c12d2022-02-03 09:23:09 -080019conf_data.set('PERSIST_MAC', get_option('persist-mac'))
Potin Lai9f621f32022-11-18 12:03:09 +080020conf_data.set10('FORCE_SYNC_MAC_FROM_INVENTORY', get_option('force-sync-mac'))
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070021
Patrick Williams3397be32022-03-21 09:52:57 -050022sdbusplus_dep = dependency('sdbusplus')
23sdbusplusplus_prog = find_program('sdbus++', native: true)
24sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true)
William A. Kennington III4b604172022-09-20 13:13:54 -070025sdbusplusplus_depfiles = files()
26if sdbusplus_dep.type_name() == 'internal'
Patrick Williams297a63b2025-03-03 11:07:57 -050027 sdbusplusplus_depfiles = subproject('sdbusplus').get_variable(
28 'sdbusplusplus_depfiles',
29 )
William A. Kennington III4b604172022-09-20 13:13:54 -070030endif
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070031
Patrick Williams297a63b2025-03-03 11:07:57 -050032yaml_selected_subdirs = ['xyz']
Patrick Williams5be691c2025-01-10 15:12:30 -050033should_generate_cpp = true
34should_generate_markdown = false
35should_generate_registry = false
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070036subdir('gen')
William A. Kennington III37cf66c2021-05-17 14:56:54 -070037networkd_dbus_includes = include_directories('gen')
38
Patrick Williams3397be32022-03-21 09:52:57 -050039phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
William A. Kennington III37cf66c2021-05-17 14:56:54 -070040
Patrick Williams297a63b2025-03-03 11:07:57 -050041networkd_dbus_deps = [phosphor_dbus_interfaces_dep, sdbusplus_dep]
William A. Kennington III37cf66c2021-05-17 14:56:54 -070042
43networkd_dbus_lib = static_library(
Patrick Williams297a63b2025-03-03 11:07:57 -050044 'networkd_dbus',
45 generated_sources,
46 implicit_include_directories: false,
47 include_directories: networkd_dbus_includes,
48 dependencies: networkd_dbus_deps,
49)
William A. Kennington III37cf66c2021-05-17 14:56:54 -070050
51generated_files_headers = []
52foreach s : generated_sources
53 foreach f : s.to_list()
54 p = f.full_path()
55 if p.endswith('.hpp')
56 generated_files_headers += f
57 endif
58 endforeach
59endforeach
60
61networkd_dbus_dep = declare_dependency(
Patrick Williams297a63b2025-03-03 11:07:57 -050062 sources: generated_files_headers,
63 include_directories: networkd_dbus_includes,
64 link_with: networkd_dbus_lib,
65 dependencies: networkd_dbus_deps,
66)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070067
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070068subdir('src')
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070069
70configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050071 input: '60-phosphor-networkd-default.network.in',
72 output: '60-phosphor-networkd-default.network',
73 configuration: conf_data,
74 install: true,
75 install_dir: dependency('systemd').get_variable('systemdutildir') / 'network',
76)
William A. Kennington III93433c12022-08-25 17:54:01 -070077
78configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050079 input: 'xyz.openbmc_project.Network.service.in',
80 output: 'xyz.openbmc_project.Network.service',
81 configuration: {
82 'SYSTEMD_TARGET': 'multi-user.target',
83 'DEFAULT_BUSNAME': default_busname,
84 },
85 install: true,
86 install_dir: dependency('systemd').get_variable('systemdsystemunitdir'),
87)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070088
89configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050090 input: 'xyz.openbmc_project.Network.conf.in',
91 output: 'xyz.openbmc_project.Network.conf',
92 configuration: {'DEFAULT_BUSNAME': default_busname},
93 install: true,
94 install_dir: get_option('datadir') / 'dbus-1' / 'system.d',
95)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070096
Patrick Williams1f3caed2025-01-30 17:47:24 -050097if get_option('tests').allowed()
Patrick Williams297a63b2025-03-03 11:07:57 -050098 subdir('test')
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070099endif