1project( 2 'phosphor-networkd', 3 'cpp', 4 version: '0.1', 5 meson_version: '>=0.57.0', 6 default_options: [ 7 'warning_level=3', 8 'cpp_std=c++20', 9 ]) 10 11default_busname = 'xyz.openbmc_project.Network' 12 13conf_data = configuration_data() 14conf_data.set_quoted('DEFAULT_BUSNAME', default_busname) 15conf_data.set('HAVE_UBOOT_ENV', get_option('uboot-env')) 16conf_data.set( 17 'LINK_LOCAL_AUTOCONFIGURATION', 18 get_option('default-link-local-autoconf')) 19conf_data.set( 20 'ENABLE_IPV6_ACCEPT_RA', 21 get_option('default-ipv6-accept-ra')) 22conf_data.set('SYNC_MAC_FROM_INVENTORY', get_option('sync-mac')) 23conf_data.set('PERSIST_MAC', get_option('persist-mac')) 24conf_data.set10('FORCE_SYNC_MAC_FROM_INVENTORY', get_option('force-sync-mac')) 25 26sdbusplus_dep = dependency('sdbusplus') 27sdbusplusplus_prog = find_program('sdbus++', native: true) 28sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', native: true) 29sdbusplusplus_depfiles = files() 30if sdbusplus_dep.type_name() == 'internal' 31 sdbusplusplus_depfiles = subproject('sdbusplus').get_variable('sdbusplusplus_depfiles') 32endif 33 34generated_sources = [] 35generated_others = [] 36yaml_sources = [] 37subdir('gen') 38subdir('gen/xyz') 39networkd_dbus_includes = include_directories('gen') 40 41phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') 42 43networkd_dbus_deps = [ 44 phosphor_dbus_interfaces_dep, 45 sdbusplus_dep, 46] 47 48networkd_dbus_lib = static_library( 49 'networkd_dbus', 50 generated_sources, 51 implicit_include_directories: false, 52 include_directories: networkd_dbus_includes, 53 dependencies: networkd_dbus_deps) 54 55generated_files_headers = [] 56foreach s : generated_sources 57 foreach f : s.to_list() 58 p = f.full_path() 59 if p.endswith('.hpp') 60 generated_files_headers += f 61 endif 62 endforeach 63endforeach 64 65networkd_dbus_dep = declare_dependency( 66 sources: generated_files_headers, 67 include_directories: networkd_dbus_includes, 68 link_with: networkd_dbus_lib, 69 dependencies: networkd_dbus_deps) 70 71subdir('src') 72 73configure_file( 74 input: '60-phosphor-networkd-default.network.in', 75 output: '60-phosphor-networkd-default.network', 76 configuration: conf_data, 77 install: true, 78 install_dir: dependency('systemd').get_variable( 79 pkgconfig: 'systemdutildir') / 'network') 80 81configure_file( 82 input: 'xyz.openbmc_project.Network.service.in', 83 output: 'xyz.openbmc_project.Network.service', 84 configuration: { 85 'SYSTEMD_TARGET': 'multi-user.target', 86 'DEFAULT_BUSNAME': default_busname, 87 }, 88 install: true, 89 install_dir: dependency('systemd').get_variable( 90 pkgconfig: 'systemdsystemunitdir')) 91 92configure_file( 93 input: 'xyz.openbmc_project.Network.conf.in', 94 output: 'xyz.openbmc_project.Network.conf', 95 configuration: {'DEFAULT_BUSNAME': default_busname}, 96 install: true, 97 install_dir: get_option('datadir') / 'dbus-1' / 'system.d') 98 99if not get_option('tests').disabled() 100 subdir('test') 101endif 102