xref: /openbmc/openpower-vpd-parser/meson.build (revision 31c04110b5f85e4788ae5796539be694720fb409)
17ef54422SSunnySrivastava1984project(
2fa5e4d32SSunny Srivastava    'vpd-manager',
37ef54422SSunnySrivastava1984    'c',
47ef54422SSunnySrivastava1984    'cpp',
57ef54422SSunnySrivastava1984    default_options: [
69d149345SPriyanga Ramasamy        'warning_level=3',
79d149345SPriyanga Ramasamy        'werror=true',
813d4200bSPatrick Williams        'cpp_std=c++23',
9*31c04110SAnupama B R        'buildtype=debugoptimized',
107ef54422SSunnySrivastava1984    ],
118e532c10SPatrick Williams    version: '1.0',
1213d4200bSPatrick Williams    meson_version: '>=1.1.1',
137ef54422SSunnySrivastava1984)
147ef54422SSunnySrivastava1984
15*31c04110SAnupama B Radd_global_arguments(
16*31c04110SAnupama B R    '-Wno-psabi',
17*31c04110SAnupama B R    '-Wno-ignored-attributes',
18*31c04110SAnupama B R    language: ['c', 'cpp'],
19*31c04110SAnupama B R)
203aec4787SAndrew Jeffery
21f3953763SAndrew Jeffery# Disable FORTIFY_SOURCE when compiling with no optimization
22f3953763SAndrew Jefferyif (get_option('optimization') == '0')
23f3953763SAndrew Jeffery    add_project_arguments('-U_FORTIFY_SOURCE', language: ['cpp', 'c'])
24f3953763SAndrew Jeffery    message('Disabling FORTIFY_SOURCE as optimization is set to 0')
25f3953763SAndrew Jefferyendif
26f3953763SAndrew Jeffery
27f3953763SAndrew Jeffery# Setup googletest before we import any projects that also depend on it to make
28f3953763SAndrew Jeffery# sure we have control over its configuration
29f3953763SAndrew Jefferybuild_tests = get_option('tests')
3060b5bd2fSAndrew Jeffery
3160b5bd2fSAndrew Jefferysdbusplus = dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep'])
32fa5e4d32SSunny Srivastavaphosphor_logging = dependency('phosphor-logging')
33fa5e4d32SSunny Srivastavaphosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
34fa5e4d32SSunny Srivastava
35f2e017d1SPatrick Williamsif build_tests.allowed()
36fa5e4d32SSunny Srivastava    subdir('test')
37fa5e4d32SSunny Srivastavaendif
38fa5e4d32SSunny Srivastava
39fa5e4d32SSunny Srivastavacompiler = meson.get_compiler('cpp')
40fa5e4d32SSunny Srivastava
41fa5e4d32SSunny Srivastavaconf_data = configuration_data()
42fa5e4d32SSunny Srivastavaconf_data.set_quoted('BUSNAME', get_option('BUSNAME'))
43fa5e4d32SSunny Srivastavaconf_data.set_quoted('OBJPATH', get_option('OBJPATH'))
44fa5e4d32SSunny Srivastavaconf_data.set_quoted('IFACE', get_option('IFACE'))
45fa5e4d32SSunny Srivastavaconf_data.set_quoted('BAD_VPD_DIR', get_option('BAD_VPD_DIR'))
46*31c04110SAnupama B Rconf_data.set_quoted(
47*31c04110SAnupama B R    'INVENTORY_JSON_DEFAULT',
48*31c04110SAnupama B R    get_option('INVENTORY_JSON_DEFAULT'),
49*31c04110SAnupama B R)
50*31c04110SAnupama B Rconf_data.set_quoted(
51*31c04110SAnupama B R    'INVENTORY_JSON_SYM_LINK',
52*31c04110SAnupama B R    get_option('INVENTORY_JSON_SYM_LINK'),
53*31c04110SAnupama B R)
54*31c04110SAnupama B Rconf_data.set_quoted(
55*31c04110SAnupama B R    'JSON_ABSOLUTE_PATH_PREFIX',
56*31c04110SAnupama B R    get_option('JSON_ABSOLUTE_PATH_PREFIX'),
57*31c04110SAnupama B R)
58fa5e4d32SSunny Srivastavaconf_data.set_quoted('SYSTEM_VPD_FILE_PATH', get_option('SYSTEM_VPD_FILE_PATH'))
59fa5e4d32SSunny Srivastavaconf_data.set_quoted('VPD_SYMLIMK_PATH', get_option('VPD_SYMLIMK_PATH'))
60fa5e4d32SSunny Srivastavaconf_data.set_quoted('PIM_PATH_PREFIX', get_option('PIM_PATH_PREFIX'))
61*31c04110SAnupama B Rconfigure_file(output: 'config.h', configuration: conf_data)
627ef54422SSunnySrivastava1984
63dfdd4b10SSunny Srivastavaservices = ['service_files/vpd-manager.service']
64dfdd4b10SSunny Srivastava
65dfdd4b10SSunny Srivastavaif get_option('ibm_system').allowed()
66dfdd4b10SSunny Srivastava    subdir('vpd-tool')
67dfdd4b10SSunny Srivastava    scripts = ['scripts/wait-vpd-status.sh']
68dfdd4b10SSunny Srivastava
69*31c04110SAnupama B R    install_data(
70*31c04110SAnupama B R        scripts,
71dfdd4b10SSunny Srivastava        install_mode: 'rwxr-xr-x',
72*31c04110SAnupama B R        install_dir: get_option('bindir'),
73*31c04110SAnupama B R    )
74dfdd4b10SSunny Srivastava
75*31c04110SAnupama B R    services += [
76*31c04110SAnupama B R        'service_files/system-vpd.service',
77*31c04110SAnupama B R        'service_files/wait-vpd-parsers.service',
78*31c04110SAnupama B R    ]
79dfdd4b10SSunny Srivastava
80dfdd4b10SSunny Srivastava    package_datadir = join_paths('share', 'vpd')
81*31c04110SAnupama B R    install_subdir(
82*31c04110SAnupama B R        'configuration/ibm/',
83*31c04110SAnupama B R        install_mode: 'rwxr-xr-x',
84*31c04110SAnupama B R        install_dir: package_datadir,
85*31c04110SAnupama B R        strip_directory: true,
86*31c04110SAnupama B R    )
87dfdd4b10SSunny Srivastavaendif
88dfdd4b10SSunny Srivastava
89*31c04110SAnupama B Rlibgpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
90dfdd4b10SSunny Srivastava
91*31c04110SAnupama B Rlibvpdecc_src = files('vpdecc/vpdecc.c', 'vpdecc/vpdecc_support.c')
92a4a2adfaSPriyanga Ramasamy
93a4a2adfaSPriyanga Ramasamylibvpdecc = shared_library(
94a4a2adfaSPriyanga Ramasamy    'vpdecc',
95a4a2adfaSPriyanga Ramasamy    libvpdecc_src,
96a4a2adfaSPriyanga Ramasamy    version: meson.project_version(),
97a4a2adfaSPriyanga Ramasamy    install: true,
98a4a2adfaSPriyanga Ramasamy)
99a4a2adfaSPriyanga Ramasamy
100a739259fSSunnySrivastava1984subdir('vpd-manager')
101fa5e4d32SSunny Srivastava
102b48e6ffaSAlpana Kumarisystemd_system_unit_dir = dependency('systemd').get_variable(
103*31c04110SAnupama B R    'systemdsystemunitdir',
104*31c04110SAnupama B R)
10529fbea93SPriyanga Ramasamyinstall_data(services, install_dir: systemd_system_unit_dir)
106