xref: /openbmc/phosphor-networkd/meson.build (revision 297a63b46b2eae315e91b2c69239e23dbf52c22e)
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