build: Add wrapfiles for dependencies

Update meson.build and add wrapfiles so that all dependencies are
handled as subprojects.

This allows builds completely outside of bitbake or an SDK.

Tested: built phosphor-debug-collector repo successfully using
        `meson -Dtests build`.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I51bae90f4fac113270e259b7acac3630b5ec6778
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
     ]