blob: d949d432548bedcfda77f0e0774c28b1829b062a [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'))
45conf_data.set_quoted('BAD_VPD_DIR', get_option('BAD_VPD_DIR'))
Anupama B R31c04112025-02-27 02:34:26 -060046conf_data.set_quoted(
47 'INVENTORY_JSON_DEFAULT',
48 get_option('INVENTORY_JSON_DEFAULT'),
49)
50conf_data.set_quoted(
51 'INVENTORY_JSON_SYM_LINK',
52 get_option('INVENTORY_JSON_SYM_LINK'),
53)
54conf_data.set_quoted(
55 'JSON_ABSOLUTE_PATH_PREFIX',
56 get_option('JSON_ABSOLUTE_PATH_PREFIX'),
57)
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050058conf_data.set_quoted('SYSTEM_VPD_FILE_PATH', get_option('SYSTEM_VPD_FILE_PATH'))
59conf_data.set_quoted('VPD_SYMLIMK_PATH', get_option('VPD_SYMLIMK_PATH'))
60conf_data.set_quoted('PIM_PATH_PREFIX', get_option('PIM_PATH_PREFIX'))
Anupama B R31c04112025-02-27 02:34:26 -060061configure_file(output: 'config.h', configuration: conf_data)
SunnySrivastava19847ef54422019-12-03 02:47:37 -060062
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053063services = ['service_files/vpd-manager.service']
Priyanga Ramasamya4a2adf2022-02-03 05:43:41 -060064
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053065if get_option('ibm_system').allowed()
66 subdir('vpd-tool')
67 scripts = ['scripts/wait-vpd-status.sh']
68
Anupama B R31c04112025-02-27 02:34:26 -060069 install_data(
70 scripts,
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053071 install_mode: 'rwxr-xr-x',
Anupama B R31c04112025-02-27 02:34:26 -060072 install_dir: get_option('bindir'),
73 )
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053074
Anupama B R31c04112025-02-27 02:34:26 -060075 services += [
76 'service_files/system-vpd.service',
77 'service_files/wait-vpd-parsers.service',
78 ]
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053079
80 package_datadir = join_paths('share', 'vpd')
Anupama B R31c04112025-02-27 02:34:26 -060081 install_subdir(
82 'configuration/ibm/',
83 install_mode: 'rwxr-xr-x',
84 install_dir: package_datadir,
85 strip_directory: true,
86 )
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053087endif
Priyanga Ramasamya4a2adf2022-02-03 05:43:41 -060088
Anupama B R31c04112025-02-27 02:34:26 -060089libgpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx'])
SunnySrivastava19847ef54422019-12-03 02:47:37 -060090
Anupama B R31c04112025-02-27 02:34:26 -060091libvpdecc_src = files('vpdecc/vpdecc.c', 'vpdecc/vpdecc_support.c')
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053092
Anupama B R31c04112025-02-27 02:34:26 -060093libvpdecc = shared_library(
94 'vpdecc',
95 libvpdecc_src,
96 version: meson.project_version(),
97 install: true,
98)
Sunny Srivastavadfdd4b12025-02-25 12:41:46 +053099
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -0500100subdir('vpd-manager')
Kantesh Nagaradder38ee9c82023-04-07 00:58:12 -0500101
Alpana Kumarib48e6ff2022-04-24 23:42:28 -0500102systemd_system_unit_dir = dependency('systemd').get_variable(
Anupama B R31c04112025-02-27 02:34:26 -0600103 'systemdsystemunitdir',
104)
Priyanga Ramasamy29fbea92023-10-04 01:28:10 -0500105install_data(services, install_dir: systemd_system_unit_dir)