Make project buildable with subproject

Subproject dependencies make this project easier to build and maintain.

Change-Id: I26c2221d7d7984d38d782b2abc3115d227c60cfe
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6f4a302
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+/build*
+
+### Meson ###
+# subproject directories
+/subprojects/*
+!/subprojects/*.wrap
+!/subprojects/packagefiles
diff --git a/meson.build b/meson.build
index f28fd1e..8ac1ebc 100644
--- a/meson.build
+++ b/meson.build
@@ -18,13 +18,26 @@
     language: 'cpp'
 )
 
-deps = [dependency('libsystemd', version : '>=221'),
-        dependency('systemd'),
-        dependency('phosphor-logging'),
-        dependency('sdbusplus'),
-        dependency('threads')
+sdbusplus = dependency('sdbusplus')
+cli11 = dependency('CLI11')
+phosphor_logging = dependency('phosphor-logging')
 
-]
+boost = dependency(
+  'boost',
+  version : '>=1.83.0',
+  required : false,
+)
+
+if not boost.found()
+  cmake = import('cmake')
+  opt = cmake.subproject_options()
+  opt.add_cmake_defines({
+    'BOOST_INCLUDE_LIBRARIES': 'asio'
+  })
+  boost_cmake = cmake.subproject('boost', required: true, options: opt)
+  boost_asio = boost_cmake.dependency('boost_asio').as_system()
+  boost = [boost_asio]
+endif
 
 # Configure and install systemd unit files
 systemd = dependency('systemd')
@@ -40,5 +53,10 @@
 )
 
 executable('ssifbridged','ssifbridged.cpp',
-           dependencies: deps,
+           dependencies: [
+		boost,
+		sdbusplus,
+		cli11,
+		phosphor_logging,
+	   ],
            install: true)
diff --git a/subprojects/boost.wrap b/subprojects/boost.wrap
new file mode 100644
index 0000000..2e6b7d1
--- /dev/null
+++ b/subprojects/boost.wrap
@@ -0,0 +1,9 @@
+[wrap-file]
+directory = boost-1.83.0
+
+source_url = https://github.com/boostorg/boost/releases/download/boost-1.83.0/boost-1.83.0.tar.gz
+source_hash = 0c6049764e80aa32754acd7d4f179fd5551d8172a83b71532ae093e7384e98da
+source_filename = 1_83_0.tar.gz
+
+[provide]
+boost = boost_dep
diff --git a/subprojects/cli11.wrap b/subprojects/cli11.wrap
new file mode 100644
index 0000000..8401683
--- /dev/null
+++ b/subprojects/cli11.wrap
@@ -0,0 +1,10 @@
+[wrap-file]
+directory = CLI11-2.3.2
+source_url = https://github.com/CLIUtils/CLI11/archive/refs/tags/v2.3.2.tar.gz
+source_filename = CLI11-2.3.2.tar.gz
+source_hash = aac0ab42108131ac5d3344a9db0fdf25c4db652296641955720a4fbe52334e22
+wrapdb_version = 2.3.2-1
+
+[provide]
+cli11 = CLI11_dep
+
diff --git a/subprojects/phosphor-logging.wrap b/subprojects/phosphor-logging.wrap
new file mode 100644
index 0000000..b88f58e
--- /dev/null
+++ b/subprojects/phosphor-logging.wrap
@@ -0,0 +1,7 @@
+[wrap-git]
+url = https://github.com/openbmc/phosphor-logging.git
+revision = HEAD
+
+[provide]
+phosphor-logging = phosphor_logging_dep
+
diff --git a/subprojects/sdbusplus.wrap b/subprojects/sdbusplus.wrap
new file mode 100644
index 0000000..7b076d0
--- /dev/null
+++ b/subprojects/sdbusplus.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/openbmc/sdbusplus.git
+revision = HEAD
+
+[provide]
+sdbusplus = sdbusplus_dep