1project( 2 '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) 8 9default_busname = 'xyz.openbmc_project.Network' 10 11conf_data = configuration_data() 12conf_data.set_quoted('DEFAULT_BUSNAME', default_busname) 13conf_data.set( 14 'LINK_LOCAL_AUTOCONFIGURATION', 15 get_option('default-link-local-autoconf'), 16) 17conf_data.set('ENABLE_IPV6_ACCEPT_RA', get_option('default-ipv6-accept-ra')) 18conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac')) 19conf_data.set('PERSIST_MAC', get_option('persist-mac')) 20conf_data.set10('FORCE_SYNC_MAC_FROM_INVENTORY', get_option('force-sync-mac')) 21 22sdbusplus_dep = dependency('sdbusplus') 23sdbusplusplus_prog = find_program('sdbus++', native: true) 24sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true) 25sdbusplusplus_depfiles = files() 26if sdbusplus_dep.type_name() == 'internal' 27 sdbusplusplus_depfiles = subproject('sdbusplus').get_variable( 28 'sdbusplusplus_depfiles', 29 ) 30endif 31 32yaml_selected_subdirs = ['xyz'] 33should_generate_cpp = true 34should_generate_markdown = false 35should_generate_registry = false 36subdir('gen') 37networkd_dbus_includes = include_directories('gen') 38 39phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 40 41networkd_dbus_deps = [phosphor_dbus_interfaces_dep, sdbusplus_dep] 42 43networkd_dbus_lib = static_library( 44 'networkd_dbus', 45 generated_sources, 46 implicit_include_directories: false, 47 include_directories: networkd_dbus_includes, 48 dependencies: networkd_dbus_deps, 49) 50 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( 62 sources: generated_files_headers, 63 include_directories: networkd_dbus_includes, 64 link_with: networkd_dbus_lib, 65 dependencies: networkd_dbus_deps, 66) 67 68subdir('src') 69 70configure_file( 71 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) 77 78configure_file( 79 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('systemd_system_unit_dir'), 87) 88 89configure_file( 90 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) 96 97if get_option('tests').allowed() 98 subdir('test') 99endif 100