cpp_args_smbios = boost_args
if get_option('dimm-dbus').allowed()
  cpp_args_smbios += ['-DDIMM_DBUS']
endif

if get_option('assoc-trim-path').allowed()
  cpp_args_smbios += ['-DASSOC_TRIM_PATH']
endif

if get_option('dimm-only-locator').allowed()
  cpp_args_smbios += ['-DDIMM_ONLY_LOCATOR']
endif

executable(
  'smbiosmdrv2app',
  'mdrv2.cpp',
  'mdrv2_main.cpp',
  'cpu.cpp',
  'dimm.cpp',
  'system.cpp',
  'pcieslot.cpp',
  cpp_args: cpp_args_smbios,
  dependencies: [
    boost_dep,
    sdbusplus_dep,
    phosphor_logging_dep,
    phosphor_dbus_interfaces_dep,
  ],
  implicit_include_directories: false,
  include_directories: root_inc,
  install: true,
)

if get_option('cpuinfo').allowed()
  cpp = meson.get_compiler('cpp')
  # i2c-tools provides no pkgconfig so we need to find it manually
  i2c_dep = cpp.find_library('i2c')

  peci_dep = []
  peci_flag = []
  peci_files = []
  if get_option('cpuinfo-peci').allowed()
    peci_flag = '-DPECI_ENABLED=1'
    peci_dep = dependency('libpeci')
    peci_files = ['speed_select.cpp', 'sst_mailbox.cpp']
  endif

  executable(
    'cpuinfoapp',
    'cpuinfo_main.cpp',
    'cpuinfo_utils.cpp',
    peci_files,
    cpp_args: boost_args + peci_flag,
    dependencies: [
      boost_dep,
      sdbusplus_dep,
      phosphor_logging_dep,
      phosphor_dbus_interfaces_dep,
      i2c_dep,
      peci_dep,
    ],
    implicit_include_directories: false,
    include_directories: root_inc,
    install: true,
  )
endif

if get_option('smbios-ipmi-blob').allowed()
  subdir('smbios-ipmi-blobs')
endif
