blob: e30cae859605b7627d8926759bfb2f1d9f0f45e1 [file] [log] [blame]
SunnySrivastava19847ef54422019-12-03 02:47:37 -06001project(
Anupama B R31c04112025-02-27 02:34:26 -06002 'vpd-manager',
3 'c',
4 'cpp',
5 default_options: [
6 'warning_level=3',
7 'werror=true',
8 'cpp_std=c++23',
9 'buildtype=debugoptimized',
10 ],
11 version: '1.0',
12 meson_version: '>=1.1.1',
SunnySrivastava19847ef54422019-12-03 02:47:37 -060013)
14
Anupama B R31c04112025-02-27 02:34:26 -060015add_global_arguments(
16 '-Wno-psabi',
17 '-Wno-ignored-attributes',
18 language: ['c', 'cpp'],
19)
Andrew Jeffery3aec4782021-06-15 11:45:23 +093020
Andrew Jefferyf3953762021-06-15 11:10:10 +093021# Disable FORTIFY_SOURCE when compiling with no optimization
Anupama B R31c04112025-02-27 02:34:26 -060022if (get_option('optimization') == '0')
23 add_project_arguments('-U_FORTIFY_SOURCE', language: ['cpp', 'c'])
24 message('Disabling FORTIFY_SOURCE as optimization is set to 0')
Andrew Jefferyf3953762021-06-15 11:10:10 +093025endif
26
27# Setup googletest before we import any projects that also depend on it to make
28# sure we have control over its configuration
29build_tests = get_option('tests')
Andrew Jeffery60b5bd22021-06-15 10:41:28 +093030
Anupama B R31c04112025-02-27 02:34:26 -060031sdbusplus = dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep'])
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050032phosphor_logging = dependency('phosphor-logging')
33phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
34
Patrick Williamsf2e017d2025-01-30 17:47:50 -050035if build_tests.allowed()
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050036 subdir('test')
37endif
38
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050039compiler = meson.get_compiler('cpp')
40
41conf_data = configuration_data()
42conf_data.set_quoted('BUSNAME', get_option('BUSNAME'))
43conf_data.set_quoted('OBJPATH', get_option('OBJPATH'))
44conf_data.set_quoted('IFACE', get_option('IFACE'))
Anupama B R31c04112025-02-27 02:34:26 -060045conf_data.set_quoted(
46 'INVENTORY_JSON_DEFAULT',
47 get_option('INVENTORY_JSON_DEFAULT'),
48)
49conf_data.set_quoted(
50 'INVENTORY_JSON_SYM_LINK',
51 get_option('INVENTORY_JSON_SYM_LINK'),
52)
53conf_data.set_quoted(
54 'JSON_ABSOLUTE_PATH_PREFIX',
55 get_option('JSON_ABSOLUTE_PATH_PREFIX'),
56)
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050057conf_data.set_quoted('SYSTEM_VPD_FILE_PATH', get_option('SYSTEM_VPD_FILE_PATH'))
58conf_data.set_quoted('VPD_SYMLIMK_PATH', get_option('VPD_SYMLIMK_PATH'))
59conf_data.set_quoted('PIM_PATH_PREFIX', get_option('PIM_PATH_PREFIX'))
Anupama B R31c04112025-02-27 02:34:26 -060060configure_file(output: 'config.h', configuration: conf_data)
SunnySrivastava19847ef54422019-12-03 02:47:37 -060061
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053062services = ['service_files/vpd-manager.service']
Priyanga Ramasamya4a2adf2022-02-03 05:43:41 -060063
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053064if get_option('ibm_system').allowed()
65 subdir('vpd-tool')
66 scripts = ['scripts/wait-vpd-status.sh']
67
Anupama B R31c04112025-02-27 02:34:26 -060068 install_data(
69 scripts,
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053070 install_mode: 'rwxr-xr-x',
Anupama B R31c04112025-02-27 02:34:26 -060071 install_dir: get_option('bindir'),
72 )
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053073
Anupama B R31c04112025-02-27 02:34:26 -060074 services += [
75 'service_files/system-vpd.service',
76 'service_files/wait-vpd-parsers.service',
77 ]
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053078
79 package_datadir = join_paths('share', 'vpd')
Anupama B R31c04112025-02-27 02:34:26 -060080 install_subdir(
81 'configuration/ibm/',
82 install_mode: 'rwxr-xr-x',
83 install_dir: package_datadir,
84 strip_directory: true,
85 )
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053086endif
Priyanga Ramasamya4a2adf2022-02-03 05:43:41 -060087
Anupama B R31c04112025-02-27 02:34:26 -060088libgpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
SunnySrivastava19847ef54422019-12-03 02:47:37 -060089
Anupama B R31c04112025-02-27 02:34:26 -060090libvpdecc_src = files('vpdecc/vpdecc.c', 'vpdecc/vpdecc_support.c')
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053091
Anupama B R31c04112025-02-27 02:34:26 -060092libvpdecc = shared_library(
93 'vpdecc',
94 libvpdecc_src,
95 version: meson.project_version(),
96 install: true,
97)
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053098
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050099subdir('vpd-manager')
Kantesh Nagaradder38ee9c82023-04-07 00:58:12 -0500100
Alpana Kumarib48e6ff2022-04-24 23:42:28 -0500101systemd_system_unit_dir = dependency('systemd').get_variable(
Anupama B R31c04112025-02-27 02:34:26 -0600102 'systemdsystemunitdir',
103)
Priyanga Ramasamy29fbea92023-10-04 01:28:10 -0500104install_data(services, install_dir: systemd_system_unit_dir)