1*f06056bcSPatrick Williamsproject('phosphor-logging', 'cpp', 2*f06056bcSPatrick Williams meson_version: '>= 0.57.0', 3*f06056bcSPatrick Williams default_options: [ 4*f06056bcSPatrick Williams 'buildtype=debugoptimized', 5*f06056bcSPatrick Williams 'cpp_std=c++20', 6*f06056bcSPatrick Williams 'warning_level=3', 7*f06056bcSPatrick Williams 'werror=true', 8*f06056bcSPatrick Williams ], 9*f06056bcSPatrick Williams version: '1.0.0', 10*f06056bcSPatrick Williams) 11*f06056bcSPatrick Williams 12*f06056bcSPatrick Williamspython_prog = find_program('python3') 13*f06056bcSPatrick Williams 14*f06056bcSPatrick Williams# Get sdbusplus dependency. 15*f06056bcSPatrick Williamssdbusplus_dep = dependency('sdbusplus', required: false) 16*f06056bcSPatrick Williamsif sdbusplus_dep.found() 17*f06056bcSPatrick Williams sdbusplusplus_prog = find_program('sdbus++') 18*f06056bcSPatrick Williams sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson') 19*f06056bcSPatrick Williamselse 20*f06056bcSPatrick Williams sdbusplus_proj = subproject('sdbusplus', required: true) 21*f06056bcSPatrick Williams sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep') 22*f06056bcSPatrick Williams sdbusplusplus_prog = sdbusplus_proj.get_variable('sdbusplusplus_prog') 23*f06056bcSPatrick Williams sdbuspp_gen_meson_prog = sdbusplus_proj.get_variable( 24*f06056bcSPatrick Williams 'sdbuspp_gen_meson_prog' 25*f06056bcSPatrick Williams ) 26*f06056bcSPatrick Williamsendif 27*f06056bcSPatrick Williams 28*f06056bcSPatrick Williams# Get PDI and sdeventplus dependency. 29*f06056bcSPatrick Williamspdi_dep = dependency( 30*f06056bcSPatrick Williams 'phosphor-dbus-interfaces', 31*f06056bcSPatrick Williams fallback: ['phosphor-dbus-interfaces', 'phosphor_dbus_interfaces_dep'], 32*f06056bcSPatrick Williams) 33*f06056bcSPatrick Williamssdeventplus_dep = dependency( 34*f06056bcSPatrick Williams 'sdeventplus', 35*f06056bcSPatrick Williams fallback: ['sdeventplus', 'sdeventplus_dep' ], 36*f06056bcSPatrick Williams) 37*f06056bcSPatrick Williams 38*f06056bcSPatrick Williams# Find the installed YAML directory, either from a configure option or 39*f06056bcSPatrick Williams# by pulling it from the PDI dependency. 40*f06056bcSPatrick Williamsyamldir = get_option('yamldir') 41*f06056bcSPatrick Williamsif yamldir == '' 42*f06056bcSPatrick Williams yamldir = pdi_dep.get_variable(pkgconfig: 'yamldir', internal: 'yamldir') 43*f06056bcSPatrick Williamsendif 44*f06056bcSPatrick Williams 45*f06056bcSPatrick Williams# Create config.h with constants that use to come from autoconf. 46*f06056bcSPatrick Williamsconf_data = configuration_data() 47*f06056bcSPatrick Williamsconfigure_file( 48*f06056bcSPatrick Williams input: 'config.h.meson', 49*f06056bcSPatrick Williams output: 'config.h', 50*f06056bcSPatrick Williams configuration: conf_data, 51*f06056bcSPatrick Williams) 52*f06056bcSPatrick Williams 53*f06056bcSPatrick Williams# Generate callouts-gen.hpp. 54*f06056bcSPatrick Williamscallouts_gen = custom_target('callouts-gen.hpp'.underscorify(), 55*f06056bcSPatrick Williams input: [ 56*f06056bcSPatrick Williams 'callouts/callouts.py', 57*f06056bcSPatrick Williams 'callouts/callouts-gen.mako.hpp', 58*f06056bcSPatrick Williams get_option('callout_yaml'), 59*f06056bcSPatrick Williams ], 60*f06056bcSPatrick Williams output: 'callouts-gen.hpp', 61*f06056bcSPatrick Williams command: [ python_prog, '@INPUT0@', '-i', '@INPUT2@', '-o', '@OUTPUT0@' ], 62*f06056bcSPatrick Williams) 63*f06056bcSPatrick Williams 64*f06056bcSPatrick Williamssubdir('phosphor-logging') 65*f06056bcSPatrick Williams 66*f06056bcSPatrick Williams# Build libphosphor-logging. 67*f06056bcSPatrick Williamslibphosphor_logging = library( 68*f06056bcSPatrick Williams 'phosphor_logging', 69*f06056bcSPatrick Williams files( 70*f06056bcSPatrick Williams 'elog.cpp', 71*f06056bcSPatrick Williams 'elog_meta.cpp', 72*f06056bcSPatrick Williams 'sdjournal.cpp', 73*f06056bcSPatrick Williams ), 74*f06056bcSPatrick Williams callouts_gen, 75*f06056bcSPatrick Williams elog_errors_gen, 76*f06056bcSPatrick Williams dependencies: [ sdbusplus_dep, pdi_dep, sdeventplus_dep ], 77*f06056bcSPatrick Williams version: meson.project_version(), 78*f06056bcSPatrick Williams install: true, 79*f06056bcSPatrick Williams) 80*f06056bcSPatrick Williams 81*f06056bcSPatrick Williamsimport('pkgconfig').generate( 82*f06056bcSPatrick Williams libphosphor_logging, 83*f06056bcSPatrick Williams name: meson.project_name(), 84*f06056bcSPatrick Williams version: meson.project_version(), 85*f06056bcSPatrick Williams requires: [ 86*f06056bcSPatrick Williams 'libsystemd', 87*f06056bcSPatrick Williams 'phosphor-dbus-interfaces', 88*f06056bcSPatrick Williams 'sdbusplus', 89*f06056bcSPatrick Williams ], 90*f06056bcSPatrick Williams description: 'Phosphor logging utilities', 91*f06056bcSPatrick Williams) 92*f06056bcSPatrick Williams 93*f06056bcSPatrick Williams# Create dependency for use as subproject. 94*f06056bcSPatrick Williamsphosphor_logging_dep = declare_dependency( 95*f06056bcSPatrick Williams include_directories: include_directories('.'), 96*f06056bcSPatrick Williams link_with: libphosphor_logging, 97*f06056bcSPatrick Williams sources: [ callouts_gen, elog_errors_gen ], 98*f06056bcSPatrick Williams dependencies: [ sdbusplus_dep, pdi_dep, sdeventplus_dep], 99*f06056bcSPatrick Williams) 100