topology: add initial module

To use this module, add information about boards and their exposes
records and then request a map of what resulting associations should be
exposed on D-Bus.

Tested: Unit tests pass

Signed-off-by: Benjamin Fair <benjaminfair@google.com>
Change-Id: I42cd79407ab476599f5010c11cc146a569694b24
diff --git a/meson.build b/meson.build
index 105606f..05ade13 100644
--- a/meson.build
+++ b/meson.build
@@ -199,12 +199,15 @@
 if not build_tests.disabled()
     test_boost_args = boost_args + ['-DBOOST_ASIO_DISABLE_THREADS']
     gtest = dependency('gtest', main: true, disabler: true, required: false)
-    if not gtest.found() and build_tests.enabled()
+    gmock = dependency('gmock', disabler: true, required: false)
+    if not (gtest.found() and gmock.found()) and build_tests.enabled()
         cmake = import('cmake')
         gtest_subproject = cmake.subproject('gtest')
         cm_gtest = gtest_subproject.dependency('gtest')
         cm_gtest_main = gtest_subproject.dependency('gtest_main')
         gtest = declare_dependency(dependencies: [cm_gtest, cm_gtest_main, threads])
+        gmock = gtest_subproject.dependency('gmock')
+
     endif
 
     test(
@@ -243,4 +246,20 @@
             include_directories: 'include',
         )
     )
+
+    test(
+        'test_topology',
+        executable(
+            'test_topology',
+            'test/test_topology.cpp',
+            'src/topology.cpp',
+            cpp_args: test_boost_args,
+            dependencies: [
+                gtest,
+                gmock,
+            ],
+            implicit_include_directories: false,
+            include_directories: 'include',
+        )
+    )
 endif