blob: 1ce272b7d01d3a584833f060c39f7562aed0f0ed [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('HAVE_UBOOT_ENV', get_option('uboot-env'))
14conf_data.set(
Patrick Williams297a63b2025-03-03 11:07:57 -050015 'LINK_LOCAL_AUTOCONFIGURATION',
16 get_option('default-link-local-autoconf'),
17)
18conf_data.set('ENABLE_IPV6_ACCEPT_RA', get_option('default-ipv6-accept-ra'))
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070019conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac'))
Johnathan Mantey609c12d2022-02-03 09:23:09 -080020conf_data.set('PERSIST_MAC', get_option('persist-mac'))
Potin Lai9f621f32022-11-18 12:03:09 +080021conf_data.set10('FORCE_SYNC_MAC_FROM_INVENTORY', get_option('force-sync-mac'))
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070022
Patrick Williams3397be32022-03-21 09:52:57 -050023sdbusplus_dep = dependency('sdbusplus')
24sdbusplusplus_prog = find_program('sdbus++', native: true)
25sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true)
William A. Kennington III4b604172022-09-20 13:13:54 -070026sdbusplusplus_depfiles = files()
27if sdbusplus_dep.type_name() == 'internal'
Patrick Williams297a63b2025-03-03 11:07:57 -050028 sdbusplusplus_depfiles = subproject('sdbusplus').get_variable(
29 'sdbusplusplus_depfiles',
30 )
William A. Kennington III4b604172022-09-20 13:13:54 -070031endif
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070032
Patrick Williams297a63b2025-03-03 11:07:57 -050033yaml_selected_subdirs = ['xyz']
Patrick Williams5be691c2025-01-10 15:12:30 -050034should_generate_cpp = true
35should_generate_markdown = false
36should_generate_registry = false
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070037subdir('gen')
William A. Kennington III37cf66c2021-05-17 14:56:54 -070038networkd_dbus_includes = include_directories('gen')
39
Patrick Williams3397be32022-03-21 09:52:57 -050040phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
William A. Kennington III37cf66c2021-05-17 14:56:54 -070041
Patrick Williams297a63b2025-03-03 11:07:57 -050042networkd_dbus_deps = [phosphor_dbus_interfaces_dep, sdbusplus_dep]
William A. Kennington III37cf66c2021-05-17 14:56:54 -070043
44networkd_dbus_lib = static_library(
Patrick Williams297a63b2025-03-03 11:07:57 -050045 'networkd_dbus',
46 generated_sources,
47 implicit_include_directories: false,
48 include_directories: networkd_dbus_includes,
49 dependencies: networkd_dbus_deps,
50)
William A. Kennington III37cf66c2021-05-17 14:56:54 -070051
52generated_files_headers = []
53foreach s : generated_sources
54 foreach f : s.to_list()
55 p = f.full_path()
56 if p.endswith('.hpp')
57 generated_files_headers += f
58 endif
59 endforeach
60endforeach
61
62networkd_dbus_dep = declare_dependency(
Patrick Williams297a63b2025-03-03 11:07:57 -050063 sources: generated_files_headers,
64 include_directories: networkd_dbus_includes,
65 link_with: networkd_dbus_lib,
66 dependencies: networkd_dbus_deps,
67)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070068
William A. Kennington III1bbe3d12021-05-13 23:45:09 -070069subdir('src')
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070070
71configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050072 input: '60-phosphor-networkd-default.network.in',
73 output: '60-phosphor-networkd-default.network',
74 configuration: conf_data,
75 install: true,
76 install_dir: dependency('systemd').get_variable('systemdutildir') / 'network',
77)
William A. Kennington III93433c12022-08-25 17:54:01 -070078
79configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050080 input: 'xyz.openbmc_project.Network.service.in',
81 output: 'xyz.openbmc_project.Network.service',
82 configuration: {
83 'SYSTEMD_TARGET': 'multi-user.target',
84 'DEFAULT_BUSNAME': default_busname,
85 },
86 install: true,
87 install_dir: dependency('systemd').get_variable('systemdsystemunitdir'),
88)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070089
90configure_file(
Patrick Williams297a63b2025-03-03 11:07:57 -050091 input: 'xyz.openbmc_project.Network.conf.in',
92 output: 'xyz.openbmc_project.Network.conf',
93 configuration: {'DEFAULT_BUSNAME': default_busname},
94 install: true,
95 install_dir: get_option('datadir') / 'dbus-1' / 'system.d',
96)
William A. Kennington III0a01b2a2021-05-13 18:38:57 -070097
Patrick Williams1f3caed2025-01-30 17:47:24 -050098if get_option('tests').allowed()
Patrick Williams297a63b2025-03-03 11:07:57 -050099 subdir('test')
William A. Kennington III0a01b2a2021-05-13 18:38:57 -0700100endif