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