build: Add fmt subproject support

This makes it possible to build again without using the openbmc
container.

Change-Id: Ifa4c0ad2b1e070a0247480d4e0319e9a812046ab
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/meson.build b/src/meson.build
index a2c3758..8013bf5 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -4,6 +4,21 @@
 
 src_includes = include_directories('.')
 
+fmt_dep = dependency('fmt', required: false)
+if not fmt_dep.found()
+  fmt_opts = import('cmake').subproject_options()
+  fmt_opts.add_cmake_defines({
+    'CMAKE_POSITION_INDEPENDENT_CODE': 'ON',
+    'MASTER_PROJECT': 'OFF',
+  })
+  fmt_proj = import('cmake').subproject(
+    'fmt',
+    options: fmt_opts,
+    required: false)
+  assert(fmt_proj.found(), 'fmtlib is required')
+  fmt_dep = fmt_proj.dependency('fmt')
+endif
+
 executable(
   'ncsi-netlink',
   'argument.cpp',
@@ -12,7 +27,7 @@
   implicit_include_directories: false,
   include_directories: src_includes,
   dependencies: [
-    dependency('fmt'),
+    fmt_dep,
     dependency('libnl-3.0'),
     dependency('libnl-genl-3.0'),
     phosphor_dbus_interfaces_dep,