diff --git a/checkstop_app.cpp b/checkstop_app.cpp
index 5673284..a708f8e 100644
--- a/checkstop_app.cpp
+++ b/checkstop_app.cpp
@@ -3,7 +3,7 @@
 
 #include <phosphor-logging/elog.hpp>
 
-int main(int argc, char* argv[])
+int main(int /*argc*/, char** /*argv*/)
 {
     using namespace phosphor::logging;
     using error = sdbusplus::org::open_power::Host::Boot::Error::Checkstop;
diff --git a/gen/meson.build b/gen/meson.build
new file mode 100644
index 0000000..af850f2
--- /dev/null
+++ b/gen/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+sdbuspp_gen_meson_ver = run_command(
+    sdbuspp_gen_meson_prog,
+    '--version',
+).stdout().strip().split('\n')[0]
+
+if sdbuspp_gen_meson_ver != 'sdbus++-gen-meson version 2'
+    warning('Generated meson files from wrong version of sdbus++-gen-meson.')
+    warning(
+        'Expected "sdbus++-gen-meson version 2", got:',
+        sdbuspp_gen_meson_ver
+    )
+endif
+
diff --git a/gen/org/meson.build b/gen/org/meson.build
new file mode 100644
index 0000000..6488f22
--- /dev/null
+++ b/gen/org/meson.build
@@ -0,0 +1,2 @@
+# Generated file; do not modify.
+subdir('open_power')
diff --git a/gen/org/open_power/Host/Boot/meson.build b/gen/org/open_power/Host/Boot/meson.build
new file mode 100644
index 0000000..718b2c2
--- /dev/null
+++ b/gen/org/open_power/Host/Boot/meson.build
@@ -0,0 +1,14 @@
+# Generated file; do not modify.
+generated_sources += custom_target(
+    'org/open_power/Host/Boot__cpp'.underscorify(),
+    input: [ meson.project_source_root() / 'org/open_power/Host/Boot.errors.yaml',  ],
+    output: [ 'error.cpp', 'error.hpp',  ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'cpp',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.project_source_root(),
+        'org/open_power/Host/Boot',
+    ],
+)
+
diff --git a/gen/org/open_power/Host/meson.build b/gen/org/open_power/Host/meson.build
new file mode 100644
index 0000000..fed2c12
--- /dev/null
+++ b/gen/org/open_power/Host/meson.build
@@ -0,0 +1,16 @@
+# Generated file; do not modify.
+subdir('Boot')
+generated_others += custom_target(
+    'org/open_power/Host/Boot__markdown'.underscorify(),
+    input: [ meson.project_source_root() / 'org/open_power/Host/Boot.errors.yaml',  ],
+    output: [ 'Boot.md' ],
+    command: [
+        sdbuspp_gen_meson_prog, '--command', 'markdown',
+        '--output', meson.current_build_dir(),
+        '--tool', sdbusplusplus_prog,
+        '--directory', meson.project_source_root(),
+        'org/open_power/Host/Boot',
+    ],
+    build_by_default: true,
+)
+
diff --git a/gen/org/open_power/meson.build b/gen/org/open_power/meson.build
new file mode 100644
index 0000000..e5645b3
--- /dev/null
+++ b/gen/org/open_power/meson.build
@@ -0,0 +1,2 @@
+# Generated file; do not modify.
+subdir('Host')
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..0996878
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,92 @@
+project(
+    'openpower-debug-collector',
+    'cpp',
+    meson_version: '>= 0.57.0',
+    default_options: [
+        'warning_level=3',
+        'werror=true',
+        'cpp_std=c++20'
+    ],
+    license: 'Apache-2.0',
+    version: '1.0.0',
+)
+
+systemd = dependency('systemd', required : true)
+
+sdbusplus = dependency(
+    'sdbusplus',
+    fallback: [
+        'sdbusplus',
+        'sdbusplus_dep'
+    ]
+)
+sdbusplusplus_prog = find_program('sdbus++', required : true)
+sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson', required : true)
+
+phosphorlogging = dependency(
+    'phosphor-logging',
+    fallback: [
+        'phosphor-logging',
+        'phosphor_logging_dep'
+    ]
+)
+
+deps = [
+    systemd, sdbusplus, phosphorlogging
+]
+
+realpath_prog = find_program('realpath')
+
+selected_subdirs = []
+selected_subdirs += 'org/open_power'
+
+generated_root = meson.current_build_dir() / 'gen'
+generated_others = []
+generated_sources = []
+
+# Source the generated meson files
+subdir('gen')
+foreach d : selected_subdirs
+    subdir('gen' / d)
+endforeach
+
+# Parse through the list from sdbus++-gendir and put into sets.
+generated_headers = []
+generated_cpp = []
+generated_others_files = []
+
+foreach g : generated_sources generated_others
+    foreach f : g.to_list()
+        rel_path = run_command(
+            realpath_prog,
+            '--relative-to', generated_root,
+            f.full_path(),
+        ).stdout().strip().split('\n')[-1]
+
+        if rel_path.endswith('.hpp')
+            generated_headers += rel_path
+        elif rel_path.endswith('.cpp')
+            generated_cpp += rel_path
+        else
+            generated_others_files += rel_path
+        endif
+    endforeach
+endforeach
+
+executable('watchdog_timeout',
+    'watchdog_timeout.cpp',
+    generated_sources,
+    dependencies: deps,
+    include_directories: include_directories('gen'),
+    implicit_include_directories: true,
+    install: true
+)
+
+executable('checkstop_app',
+    'checkstop_app.cpp',
+    generated_sources,
+    dependencies: deps,
+    include_directories: include_directories('gen'),
+    implicit_include_directories: true,
+    install: true
+)
diff --git a/phosphor-logging/elog-errors.hpp b/phosphor-logging/elog-errors.hpp
new file mode 100644
index 0000000..53f322c
--- /dev/null
+++ b/phosphor-logging/elog-errors.hpp
@@ -0,0 +1,129 @@
+// This file was autogenerated.  Do not edit!
+// See elog-gen.py for more details
+#pragma once
+
+#include <phosphor-logging/elog.hpp>
+#include <phosphor-logging/log.hpp>
+#include <sdbusplus/exception.hpp>
+
+#include <string>
+#include <tuple>
+#include <type_traits>
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace Boot
+{
+namespace Error
+{
+struct WatchdogTimedOut;
+} // namespace Error
+} // namespace Boot
+} // namespace Host
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace Boot
+{
+namespace Error
+{
+struct Checkstop;
+} // namespace Error
+} // namespace Boot
+} // namespace Host
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace phosphor
+{
+
+namespace logging
+{
+
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace Boot
+{
+namespace _Checkstop
+{} // namespace _Checkstop
+
+struct Checkstop
+{
+    static constexpr auto L = level::ERR;
+    using metadata_types = std::tuple<>;
+};
+
+} // namespace Boot
+} // namespace Host
+} // namespace open_power
+} // namespace org
+
+namespace details
+{
+
+template <>
+struct map_exception_type<
+    sdbusplus::org::open_power::Host::Boot::Error::Checkstop>
+{
+    using type = org::open_power::Host::Boot::Checkstop;
+};
+
+} // namespace details
+
+namespace org
+{
+namespace open_power
+{
+namespace Host
+{
+namespace Boot
+{
+namespace _WatchdogTimedOut
+{} // namespace _WatchdogTimedOut
+
+struct WatchdogTimedOut
+{
+    static constexpr auto L = level::ERR;
+    using metadata_types = std::tuple<>;
+};
+
+} // namespace Boot
+} // namespace Host
+} // namespace open_power
+} // namespace org
+
+namespace details
+{
+
+template <>
+struct map_exception_type<
+    sdbusplus::org::open_power::Host::Boot::Error::WatchdogTimedOut>
+{
+    using type = org::open_power::Host::Boot::WatchdogTimedOut;
+};
+
+} // namespace details
+
+} // namespace logging
+
+} // namespace phosphor
diff --git a/subprojects/phosphor-logging.wrap b/subprojects/phosphor-logging.wrap
new file mode 100644
index 0000000..a039fcf
--- /dev/null
+++ b/subprojects/phosphor-logging.wrap
@@ -0,0 +1,3 @@
+[wrap-git]
+url = https://github.com/openbmc/phosphor-logging.git
+revision = HEAD
diff --git a/subprojects/sdbusplus.wrap b/subprojects/sdbusplus.wrap
new file mode 100644
index 0000000..d470130
--- /dev/null
+++ b/subprojects/sdbusplus.wrap
@@ -0,0 +1,3 @@
+[wrap-git]
+url = https://github.com/openbmc/sdbusplus.git
+revision = HEAD
diff --git a/watchdog_timeout.cpp b/watchdog_timeout.cpp
index c479b35..10361f2 100644
--- a/watchdog_timeout.cpp
+++ b/watchdog_timeout.cpp
@@ -3,7 +3,7 @@
 
 #include <phosphor-logging/elog.hpp>
 
-int main(int argc, char* argv[])
+int main(int /*argc*/, char** /*argv*/)
 {
     using namespace phosphor::logging;
     using error =
