diff --git a/bmc/firmware-handler/meson.build b/bmc/firmware-handler/meson.build
new file mode 100644
index 0000000..7d6b719
--- /dev/null
+++ b/bmc/firmware-handler/meson.build
@@ -0,0 +1,126 @@
+firmware_inc = include_directories('.')
+
+# phosphor-ipmi-flash config
+config_data = []
+if get_option('update-type') == 'static-layout'
+  if get_option('reboot-update')
+    config_data += 'config-static-bmc-reboot.json'
+  else
+    if get_option('update-status')
+      config_data += 'config-static-bmc-with-update-status.json'
+    else
+      config_data += 'config-static-bmc.json'
+    endif
+  endif
+endif
+
+if get_option('host-bios')
+  config_data += 'config-bios.json'
+endif
+
+foreach data : config_data
+  configure_file(
+    input: data + '.in',
+    output: data,
+    configuration: conf_data,
+    install: true,
+    install_dir: get_option('datadir') / 'phosphor-ipmi-flash')
+endforeach
+
+# temp files
+install_data(
+  'phosphor-ipmi-flash.conf',
+  install_dir: get_option('libdir') / 'tmpfiles.d')
+
+# systemd configs
+systemd_data = [
+  'phosphor-ipmi-flash-bmc-prepare.target',
+  'phosphor-ipmi-flash-bmc-verify.target',
+  'phosphor-ipmi-flash-bmc-update.target',
+]
+
+if get_option('host-bios')
+  systemd_data += [
+    'phosphor-ipmi-flash-bios-prepare.target',
+    'phosphor-ipmi-flash-bios-verify.target',
+    'phosphor-ipmi-flash-bios-update.target']
+endif
+
+systemd = dependency('systemd')
+if systemd.found()
+  foreach data : systemd_data
+    configure_file(
+      input: data + '.in',
+      output: data,
+      configuration: conf_data,
+      install: true,
+      install_dir: systemd.get_variable(pkgconfig: 'systemdsystemunitdir'))
+  endforeach
+endif
+
+firmware_source = [
+  'firmware_handlers_builder.cpp',
+  'firmware_handler.cpp',
+  'lpc_handler.cpp']
+
+if (get_option('lpc-type') == 'aspeed-lpc' or
+    not get_option('tests').disabled())
+  firmware_source += 'lpc_aspeed.cpp'
+endif
+
+if (get_option('lpc-type') == 'nuvoton-lpc' or
+    not get_option('tests').disabled())
+  firmware_source += 'lpc_nuvoton.cpp'
+endif
+
+if (get_option('p2a-type') == 'aspeed-p2a' or
+    not get_option('tests').disabled())
+  firmware_source += 'pci_handler.cpp'
+endif
+
+if get_option('p2a-type') == 'nuvoton-p2a-vga'
+  firmware_source += 'pci_nuvoton_handler.cpp'
+endif
+
+if get_option('p2a-type') == 'nuvoton-p2a-mbox'
+  firmware_source += 'pci_nuvoton_handler.cpp'
+endif
+
+if get_option('net-bridge')
+  firmware_source += 'net_handler.cpp'
+endif
+
+firmware_pre = declare_dependency(
+  include_directories: [root_inc, bmc_inc, firmware_inc],
+  dependencies : [
+    dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']),
+    common_dep,
+    blobs_dep,
+    sys_dep,
+    phosphor_logging_dep])
+
+firmware_lib = static_library(
+  'firmwareblob',
+  firmware_source,
+  conf_h,
+  implicit_include_directories: false,
+  dependencies: firmware_pre)
+
+firmware_dep = declare_dependency(
+  link_with: firmware_lib,
+  dependencies: firmware_pre)
+
+shared_module(
+  'firmwareblob',
+  'main.cpp',
+  implicit_include_directories: false,
+  dependencies: [
+    firmware_dep,
+    dependency('libipmid'),
+  ],
+  install: true,
+  install_dir: get_option('libdir') / 'blob-ipmid')
+
+if not get_option('tests').disabled()
+  subdir('test')
+endif
\ No newline at end of file
diff --git a/bmc/firmware-handler/test/meson.build b/bmc/firmware-handler/test/meson.build
new file mode 100644
index 0000000..38a8a1c
--- /dev/null
+++ b/bmc/firmware-handler/test/meson.build
@@ -0,0 +1,42 @@
+firmware_tests = [
+  'handler',
+  'stat',
+  'canhandle',
+  'write',
+  'writemeta',
+  'open',
+  'close',
+  'sessionstat',
+  'commit',
+  'state_notyetstarted',
+  'state_uploadinprogress',
+  'state_verificationpending',
+  'state_verificationstarted',
+  'state_verificationcompleted',
+  'state_updatepending',
+  'state_updatestarted',
+  'state_updatecompleted',
+  'state_notyetstarted_tarball',
+  'multiplebundle',
+  'json',
+  'skip']
+
+foreach t : firmware_tests
+  test(
+    t,
+    executable(
+      t.underscorify(), 'firmware_' + t + '_unittest.cpp',
+      build_by_default: false,
+      implicit_include_directories: false,
+      include_directories: [root_inc, bmc_test_inc, firmware_inc],
+      dependencies: [firmware_dep, gtest, gmock]))
+endforeach
+
+file_handler_test = executable(
+  'file_handler',
+  'file_handler_unittest.cpp',
+  build_by_default: false,
+  implicit_include_directories: false,
+  include_directories: [root_inc, bmc_inc, bmc_test_inc, firmware_inc],
+  dependencies: [common_dep, blobs_dep, gtest, gmock])
+test('file_handler', file_handler_test)
diff --git a/bmc/meson.build b/bmc/meson.build
new file mode 100644
index 0000000..0ccd3c2
--- /dev/null
+++ b/bmc/meson.build
@@ -0,0 +1,25 @@
+bmc_inc = include_directories('.')
+
+common_pre = declare_dependency(
+  include_directories: [root_inc, bmc_inc])
+
+common_lib = static_library(
+  'common',
+  'buildjson.cpp',
+  'file_handler.cpp',
+  'fs.cpp',
+  'general_systemd.cpp',
+  'skip_action.cpp',
+  implicit_include_directories: false,
+  dependencies: common_pre)
+
+common_dep = declare_dependency(
+  link_with: common_lib,
+  dependencies: common_pre)
+
+if not get_option('tests').disabled()
+  subdir('test')
+endif
+
+subdir('firmware-handler')
+subdir('version-handler')
\ No newline at end of file
diff --git a/bmc/test/meson.build b/bmc/test/meson.build
new file mode 100644
index 0000000..c579ec8
--- /dev/null
+++ b/bmc/test/meson.build
@@ -0,0 +1 @@
+bmc_test_inc = include_directories('.')
diff --git a/bmc/version-handler/meson.build b/bmc/version-handler/meson.build
new file mode 100644
index 0000000..f5b4694
--- /dev/null
+++ b/bmc/version-handler/meson.build
@@ -0,0 +1,35 @@
+version_inc = include_directories('.')
+
+version_pre = declare_dependency(
+  include_directories: [root_inc, version_inc],
+  dependencies : [
+    common_dep,
+    firmware_dep,
+  ])
+
+version_lib = static_library(
+  'versionblob',
+  'version_handler.cpp',
+  'version_handlers_builder.cpp',
+  implicit_include_directories: false,
+  dependencies: version_pre)
+
+
+version_dep = declare_dependency(
+  link_with: version_lib,
+  dependencies: common_pre)
+
+shared_module(
+  'versionblob',
+  'main.cpp',
+  implicit_include_directories: false,
+  dependencies: [
+    version_dep,
+    dependency('libipmid'),
+  ],
+  install: true,
+  install_dir: get_option('libdir') / 'blob-ipmid')
+
+if not get_option('tests').disabled()
+  subdir('test')
+endif
\ No newline at end of file
diff --git a/bmc/version-handler/test/meson.build b/bmc/version-handler/test/meson.build
new file mode 100644
index 0000000..4c12464
--- /dev/null
+++ b/bmc/version-handler/test/meson.build
@@ -0,0 +1,19 @@
+version_tests = [
+  'json',
+  'canhandle_enumerate',
+  'createhandler',
+  'open',
+  'close',
+  'read',
+  'stat']
+
+foreach t : version_tests
+  test(
+    t,
+    executable(
+      t.underscorify(), 'version_' + t + '_unittest.cpp',
+      build_by_default: false,
+      implicit_include_directories: false,
+      include_directories: [root_inc, bmc_test_inc, version_inc],
+      dependencies: [version_dep, blobs_dep, gtest, gmock]))
+endforeach
