diff --git a/meson.build b/meson.build
index 144a74e..9c08597 100644
--- a/meson.build
+++ b/meson.build
@@ -1,13 +1,10 @@
 project(
-  'bios-bmc-smm-error-logger',
-  'cpp',
-  version: '0.1',
-  meson_version: '>=1.1.1',
-  default_options: [
-    'cpp_std=c++23',
-    'warning_level=3',
-    'werror=true',
-  ])
+    'bios-bmc-smm-error-logger',
+    'cpp',
+    version: '0.1',
+    meson_version: '>=1.1.1',
+    default_options: ['cpp_std=c++23', 'warning_level=3', 'werror=true'],
+)
 
 root_inc = include_directories('.')
 bios_bmc_smm_error_logger_inc = include_directories('include')
@@ -29,14 +26,12 @@
 conf_data.set('MAGIC_NUMBER_BYTE3', get_option('magic-number-byte3'))
 conf_data.set('MAGIC_NUMBER_BYTE4', get_option('magic-number-byte4'))
 
-conf_h = configure_file(
-  output: 'config.h',
-  configuration: conf_data)
+conf_h = configure_file(output: 'config.h', configuration: conf_data)
 
 subdir('src/rde')
 subdir('src')
 if get_option('tests').allowed()
-  subdir('test')
+    subdir('test')
 endif
 
 # installation of systemd service files
diff --git a/meson.options b/meson.options
index ef68219..ce07181 100644
--- a/meson.options
+++ b/meson.options
@@ -1,19 +1,69 @@
 option('tests', type: 'feature', value: 'enabled', description: 'Build tests')
 
 # Timer constant
-option('read-interval-ms', type: 'integer', value: 10, description: 'Read loop interval in millisecond (ms)')
+option(
+    'read-interval-ms',
+    type: 'integer',
+    value: 10,
+    description: 'Read loop interval in millisecond (ms)',
+)
 
 # Memory constants
-option('memory-region-size', type: 'integer', value: 16384, description: 'Memory size allcated')
+option(
+    'memory-region-size',
+    type: 'integer',
+    value: 16384,
+    description: 'Memory size allcated',
+)
 # Default value 4035215360 is 0xF0848000 below
-option('memory-region-offset', type: 'integer', value: 4035215360, description: 'Where the memory region is located')
+option(
+    'memory-region-offset',
+    type: 'integer',
+    value: 4035215360,
+    description: 'Where the memory region is located',
+)
 
 # Circular Buffer header constants
-option('bmc-interface-version', type: 'integer', value: 0, description: 'BMC interface version to easily see compatibility')
-option('queue-region-size', type: 'integer', value: 512, description: 'Normal error queue region size')
-option('ue-region-size', type: 'integer', value: 80, description: 'Uncorrectable error region size')
+option(
+    'bmc-interface-version',
+    type: 'integer',
+    value: 0,
+    description: 'BMC interface version to easily see compatibility',
+)
+option(
+    'queue-region-size',
+    type: 'integer',
+    value: 512,
+    description: 'Normal error queue region size',
+)
+option(
+    'ue-region-size',
+    type: 'integer',
+    value: 80,
+    description: 'Uncorrectable error region size',
+)
 # Magic Number Array Constants
-option('magic-number-byte1', type: 'integer', value: 1, description: 'Magic Number array[0] for validity, consists of 4 * uint32_t')
-option('magic-number-byte2', type: 'integer', value: 2, description: 'Magic Number array[1] for validity, consists of 4 * uint32_t')
-option('magic-number-byte3', type: 'integer', value: 3, description: 'Magic Number array[2] for validity, consists of 4 * uint32_t')
-option('magic-number-byte4', type: 'integer', value: 4, description: 'Magic Number array[3] for validity, consists of 4 * uint32_t')
+option(
+    'magic-number-byte1',
+    type: 'integer',
+    value: 1,
+    description: 'Magic Number array[0] for validity, consists of 4 * uint32_t',
+)
+option(
+    'magic-number-byte2',
+    type: 'integer',
+    value: 2,
+    description: 'Magic Number array[1] for validity, consists of 4 * uint32_t',
+)
+option(
+    'magic-number-byte3',
+    type: 'integer',
+    value: 3,
+    description: 'Magic Number array[2] for validity, consists of 4 * uint32_t',
+)
+option(
+    'magic-number-byte4',
+    type: 'integer',
+    value: 4,
+    description: 'Magic Number array[3] for validity, consists of 4 * uint32_t',
+)
diff --git a/service_files/meson.build b/service_files/meson.build
index 1a74ec9..7b105d2 100644
--- a/service_files/meson.build
+++ b/service_files/meson.build
@@ -2,8 +2,9 @@
 conf_data = configuration_data()
 conf_data.set('BINDIR', get_option('prefix') / get_option('bindir'))
 configure_file(
-  input: 'xyz.openbmc_project.bios_bmc_smm_error_logger.service.in',
-  output: 'xyz.openbmc_project.bios_bmc_smm_error_logger.service',
-  configuration: conf_data,
-  install: true,
-  install_dir: systemd.get_variable('systemdsystemunitdir'))
+    input: 'xyz.openbmc_project.bios_bmc_smm_error_logger.service.in',
+    output: 'xyz.openbmc_project.bios_bmc_smm_error_logger.service',
+    configuration: conf_data,
+    install: true,
+    install_dir: systemd.get_variable('systemdsystemunitdir'),
+)
diff --git a/src/meson.build b/src/meson.build
index 0c2f205..58a8040 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,27 +1,27 @@
 bios_bmc_smm_error_logger_pre = declare_dependency(
-  include_directories: [root_inc, bios_bmc_smm_error_logger_inc],
-  dependencies: [
-    dependency('threads'),
-    dependency('stdplus'),
-  ])
+    include_directories: [root_inc, bios_bmc_smm_error_logger_inc],
+    dependencies: [dependency('threads'), dependency('stdplus')],
+)
 
 bios_bmc_smm_error_logger_lib = static_library(
-  'bios_bmc_smm_error_logger',
-  'pci_handler.cpp',
-  'buffer.cpp',
-  implicit_include_directories: false,
-  dependencies: bios_bmc_smm_error_logger_pre)
+    'bios_bmc_smm_error_logger',
+    'pci_handler.cpp',
+    'buffer.cpp',
+    implicit_include_directories: false,
+    dependencies: bios_bmc_smm_error_logger_pre,
+)
 
 bios_bmc_smm_error_logger_dep = declare_dependency(
-  link_with: bios_bmc_smm_error_logger_lib,
-  dependencies: bios_bmc_smm_error_logger_pre)
+    link_with: bios_bmc_smm_error_logger_lib,
+    dependencies: bios_bmc_smm_error_logger_pre,
+)
 
 executable(
-  'bios-bmc-smm-error-logger',
-  'main.cpp',
-  conf_h,
-  implicit_include_directories: false,
-  dependencies: [bios_bmc_smm_error_logger_dep, rde_dep],
-  install: true,
-  install_dir: get_option('bindir')
+    'bios-bmc-smm-error-logger',
+    'main.cpp',
+    conf_h,
+    implicit_include_directories: false,
+    dependencies: [bios_bmc_smm_error_logger_dep, rde_dep],
+    install: true,
+    install_dir: get_option('bindir'),
 )
diff --git a/src/rde/meson.build b/src/rde/meson.build
index 3e73226..c5a3a5c 100644
--- a/src/rde/meson.build
+++ b/src/rde/meson.build
@@ -1,23 +1,22 @@
 rde_pre = declare_dependency(
-  include_directories: [rde_inc],
-  dependencies: [
-    dependency('libbej'),
-    dependency('nlohmann_json', include_type: 'system'),
-    dependency('phosphor-dbus-interfaces'),
-    dependency('sdbusplus'),
-    dependency('stdplus'),
-  ]
+    include_directories: [rde_inc],
+    dependencies: [
+        dependency('libbej'),
+        dependency('nlohmann_json', include_type: 'system'),
+        dependency('phosphor-dbus-interfaces'),
+        dependency('sdbusplus'),
+        dependency('stdplus'),
+    ],
 )
 
 rde_lib = static_library(
-  'rde',
-  'rde_dictionary_manager.cpp',
-  'external_storer_file.cpp',
-  'rde_handler.cpp',
-  'notifier_dbus_handler.cpp',
-  implicit_include_directories: false,
-  dependencies: rde_pre)
+    'rde',
+    'rde_dictionary_manager.cpp',
+    'external_storer_file.cpp',
+    'rde_handler.cpp',
+    'notifier_dbus_handler.cpp',
+    implicit_include_directories: false,
+    dependencies: rde_pre,
+)
 
-rde_dep = declare_dependency(
-  link_with: rde_lib,
-  dependencies: rde_pre)
+rde_dep = declare_dependency(link_with: rde_lib, dependencies: rde_pre)
diff --git a/test/meson.build b/test/meson.build
index 8dc31c3..18f7732 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,36 +1,47 @@
 gtest = dependency('gtest', main: true, disabler: true, required: false)
 gmock = dependency('gmock', disabler: true, required: false)
 if not gtest.found() or not gmock.found()
-  gtest_opt = import('cmake').subproject_options()
-  gtest_opt.append_compile_args('c++', ['-DCMAKE_CXX_FLAGS=-Wno-pedantic'])
-  gtest_proj = cmake.subproject('googletest', options: gtest_opt, required: false)
+    gtest_opt = import('cmake').subproject_options()
+    gtest_opt.append_compile_args('c++', ['-DCMAKE_CXX_FLAGS=-Wno-pedantic'])
+    gtest_proj = cmake.subproject(
+        'googletest',
+        options: gtest_opt,
+        required: false,
+    )
 
-  if gtest_proj.found()
-    gtest = declare_dependency(
-      dependencies: [
-        dependency('threads'),
-        gtest_proj.dependency('gtest'),
-        gtest_proj.dependency('gtest_main'),
-      ])
-    gmock = gtest_proj.dependency('gmock')
-  endif
+    if gtest_proj.found()
+        gtest = declare_dependency(
+            dependencies: [
+                dependency('threads'),
+                gtest_proj.dependency('gtest'),
+                gtest_proj.dependency('gtest_main'),
+            ],
+        )
+        gmock = gtest_proj.dependency('gmock')
+    endif
 endif
 
 test_dep = declare_dependency(
-  include_directories: include_directories('include'),
-  dependencies: [bios_bmc_smm_error_logger_dep, gtest, gmock, rde_dep]
+    include_directories: include_directories('include'),
+    dependencies: [bios_bmc_smm_error_logger_dep, gtest, gmock, rde_dep],
 )
 
 gtests = [
-  'pci_handler',
-  'rde_dictionary_manager',
-  'buffer',
-  'external_storer_file',
-  'rde_handler',
+    'pci_handler',
+    'rde_dictionary_manager',
+    'buffer',
+    'external_storer_file',
+    'rde_handler',
 ]
 foreach t : gtests
-  test(t, executable(t.underscorify(), t + '_test.cpp',
-                     build_by_default: false,
-                     implicit_include_directories: false,
-                     dependencies: test_dep))
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            t + '_test.cpp',
+            build_by_default: false,
+            implicit_include_directories: false,
+            dependencies: test_dep,
+        ),
+    )
 endforeach
