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