build: Split up features into separate libraries

This makes it much more obvious when a feature is missing for a user.

Change-Id: Ibb17d7ab1f185a1976a32f48933c01a252450dd1
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/meson.build b/test/meson.build
index 2634c45..0317121 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -29,10 +29,20 @@
   'util/string',
 ]
 
+gtest_deps = [
+  stdplus_dep,
+  gtest,
+  gmock,
+]
+
 if has_dl
   gtests += [
     'dl',
   ]
+
+  gtest_deps += [
+    stdplus_dl_dep,
+  ]
 elif build_tests.enabled()
   error('Not testing libdl feature')
 else
@@ -49,6 +59,10 @@
     'fd/mock',
     'fd/ops',
   ]
+
+  gtest_deps += [
+    stdplus_fd_dep,
+  ]
 elif build_tests.enabled()
   error('Not testing file descriptor feature')
 else
@@ -59,6 +73,10 @@
   gtests += [
     'io_uring',
   ]
+
+  gtest_deps += [
+    stdplus_io_uring_dep,
+  ]
 elif build_tests.enabled()
   error('Not testing io_uring feature')
 else
@@ -70,7 +88,7 @@
     test(t, executable(t.underscorify(), t + '.cpp',
                        build_by_default: false,
                        implicit_include_directories: false,
-                       dependencies: [stdplus_dep, gtest, gmock]))
+                       dependencies: gtest_deps))
   endforeach
 endif