diff --git a/README.md b/README.md
index e5c9d1d..6f14a5f 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,6 @@
 
 or with an OpenBMC x86 sdk(see below for x86 steps).
 ```
-meson -Doe-sdk=enabled -Dtests=enabled build
+meson -Dtests=enabled build
 ninja -C build test
 ```
diff --git a/meson.build b/meson.build
index fcb3004..7c8ff03 100644
--- a/meson.build
+++ b/meson.build
@@ -16,9 +16,33 @@
 
 cppfs = meson.get_compiler('cpp').find_library('stdc++fs')
 libsystemd = dependency('libsystemd', version : '>=221')
-phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
-sdbusplus = dependency('sdbusplus')
-phosphor_logging = dependency('phosphor-logging')
+
+sdbusplus_dep = dependency('sdbusplus', required: false)
+if sdbusplus_dep.found()
+    sdbusplusplus_prog = find_program('sdbus++')
+    sdbuspp_gen_meson_prog = find_program('sdbus++-gen-meson')
+else
+    sdbusplus_proj = subproject('sdbusplus', required: true)
+    sdbusplus_dep = sdbusplus_proj.get_variable('sdbusplus_dep')
+    sdbusplusplus_prog = sdbusplus_proj.get_variable('sdbusplusplus_prog')
+    sdbuspp_gen_meson_prog = sdbusplus_proj.get_variable(
+        'sdbuspp_gen_meson_prog'
+    )
+endif
+phosphor_dbus_interfaces_dep = dependency(
+    'phosphor-dbus-interfaces',
+    fallback: [
+        'phosphor-dbus-interfaces',
+        'phosphor_dbus_interfaces_dep'
+    ],
+)
+phosphor_logging_dep = dependency(
+    'phosphor-logging',
+    fallback: [
+        'phosphor-logging',
+        'phosphor_logging_dep'
+    ],
+)
 
 # Disable FORTIFY_SOURCE when compiling with no optimization
 if(get_option('optimization') == '0')
@@ -131,9 +155,9 @@
     ]
 
 phosphor_dump_manager_dependency = [
-        phosphor_dbus_interfaces,
-        sdbusplus,
-        phosphor_logging,
+        phosphor_dbus_interfaces_dep,
+        sdbusplus_dep,
+        phosphor_logging_dep,
         cppfs
     ]
 
@@ -156,8 +180,8 @@
     ]
 
 phosphor_dump_monitor_dependency = [
-        phosphor_dbus_interfaces,
-        phosphor_logging,
+        phosphor_dbus_interfaces_dep,
+        phosphor_logging_dep,
         cppfs
     ]
 
diff --git a/meson_options.txt b/meson_options.txt
index 93c8fc4..4bcf664 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -2,8 +2,6 @@
 
 option('tests', type: 'feature', description: 'Build tests')
 
-option('oe-sdk', type: 'feature', description: 'Enable OE SDK')
-
 option('jffs-workaround', type: 'feature',
         description : 'Turn on jffs workaround for core file'
       )
diff --git a/subprojects/googletest.wrap b/subprojects/googletest.wrap
new file mode 100644
index 0000000..766a562
--- /dev/null
+++ b/subprojects/googletest.wrap
@@ -0,0 +1,3 @@
+[wrap-git]
+url = https://github.com/google/googletest.git
+revision = HEAD
diff --git a/subprojects/phosphor-dbus-interfaces.wrap b/subprojects/phosphor-dbus-interfaces.wrap
new file mode 100644
index 0000000..935a8b2
--- /dev/null
+++ b/subprojects/phosphor-dbus-interfaces.wrap
@@ -0,0 +1,3 @@
+[wrap-git]
+url = https://github.com/openbmc/phosphor-dbus-interfaces.git
+revision = HEAD
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/test/meson.build b/test/meson.build
index d375acc..2f23272 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,21 +1,24 @@
-# SPDX-License-Identifier: Apache-2.0
-if get_option('oe-sdk').enabled()
-    # Setup OE SYSROOT
-    OECORE_TARGET_SYSROOT = run_command('sh', '-c', 'echo $OECORE_TARGET_SYSROOT').stdout().strip()
-    if OECORE_TARGET_SYSROOT == ''
-        error('Unable to get OECORE_TARGET_SYSROOT, check your environment.')
-    endif
-    message('OECORE_TARGET_SYSROOT: ' + OECORE_TARGET_SYSROOT)
-    rpath = ':'.join([OECORE_TARGET_SYSROOT + '/lib', OECORE_TARGET_SYSROOT + '/usr/lib'])
-    ld_so = run_command('sh', '-c', 'find ' + OECORE_TARGET_SYSROOT + '/lib/ld-*.so | sort -r -n | head -n1').stdout().strip()
-    dynamic_linker = ['-Wl,-dynamic-linker,' + ld_so]
-else
-    dynamic_linker = []
+gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
+gmock_dep = dependency('gmock', disabler: true, required: false)
+if not gtest_dep.found() or not gmock_dep.found()
+    gtest_proj = import('cmake').subproject('googletest', required: false)
+    if gtest_proj.found()
+        gtest_dep = declare_dependency(
+            dependencies: [
+                dependency('threads'),
+                gtest_proj.dependency('gtest'),
+                gtest_proj.dependency('gtest_main'),
+            ]
+        )
+        gmock_dep = gtest_proj.dependency('gmock')
+  else
+        assert(
+            not get_option('tests').enabled(),
+            'Googletest is required if tests are enabled'
+        )
+  endif
 endif
 
-gtest = dependency('gtest', main: true, disabler: true, required: true)
-gmock = dependency('gmock', disabler: true, required: true)
-
 dump = declare_dependency(
          sources: [
         '../dump_serialize.cpp'
@@ -29,12 +32,10 @@
   test(t, executable(t.underscorify(), t + '.cpp',
                      include_directories: ['.', '../'],
                      implicit_include_directories: false,
-                     link_args: dynamic_linker,
-                     build_rpath: get_option('oe-sdk').enabled() ? rpath : '',
-                     dependencies:[ gtest,
-                                    gmock,
+                     dependencies:[ gtest_dep,
+                                    gmock_dep,
                                     dump,
-                                    phosphor_logging,
+                                    phosphor_logging_dep,
                                     cppfs]),
        workdir: meson.current_source_dir())
 endforeach
