meson: Use declare_dependency for libraries

Now example binaries and tests don't have to be aware of the nuances for
configuring the build to use the library. This makes the project library
look like any other system dependency.

Change-Id: Ife3bcd3dcbd423f08c513f9a05fc8cabff41e2f6
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/meson.build b/src/meson.build
index 8b4169b..7cd2e92 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,7 +1,11 @@
-libsystemd = dependency('libsystemd')
-stdplus = dependency('stdplus')
+sdeventplus_deps = [
+  dependency('libsystemd'),
+  dependency('stdplus'),
+]
 
-sdeventplus = library(
+sdeventplus_headers = include_directories('.')
+
+sdeventplus_lib = library(
   'sdeventplus',
   [
     'sdeventplus/clock.cpp',
@@ -16,15 +20,17 @@
     'sdeventplus/source/time.cpp',
     'sdeventplus/utility/timer.cpp',
   ],
-  include_directories: includes,
+  include_directories: sdeventplus_headers,
   implicit_include_directories: false,
   version: meson.project_version(),
-  dependencies: [
-    libsystemd,
-    stdplus
-  ],
+  dependencies: sdeventplus_deps,
   install: true)
 
+sdeventplus = declare_dependency(
+  dependencies: sdeventplus_deps,
+  include_directories: sdeventplus_headers,
+  link_with: sdeventplus_lib)
+
 import('pkgconfig').generate(
   name: 'sdeventplus',
   description: 'C++ systemd event wrapper',