meson: Add alternative build system

For now both autotools and meson will be maintained side by side.
Eventually we should remove the autotools build system.

Change-Id: I04382b17d5267ee218e2658fc163da17853f637a
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..4e8b5b5
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,58 @@
+libsystemd = dependency('libsystemd')
+
+sdeventplus = library(
+  'sdeventplus',
+  [
+    'sdeventplus/clock.cpp',
+    'sdeventplus/event.cpp',
+    'sdeventplus/exception.cpp',
+    'sdeventplus/internal/sdevent.cpp',
+    'sdeventplus/internal/sdref.cpp',
+    'sdeventplus/source/base.cpp',
+    'sdeventplus/source/child.cpp',
+    'sdeventplus/source/event.cpp',
+    'sdeventplus/source/io.cpp',
+    'sdeventplus/source/signal.cpp',
+    'sdeventplus/source/time.cpp',
+    'sdeventplus/utility/timer.cpp'
+  ],
+  include_directories: includes,
+  implicit_include_directories: false,
+  dependencies: libsystemd,
+  install: true)
+
+import('pkgconfig').generate(
+  name: 'sdeventplus',
+  description: 'C++ systemd event wrapper',
+  version: meson.project_version(),
+  libraries: [sdeventplus],
+)
+
+install_headers(
+  'sdeventplus/clock.hpp',
+  'sdeventplus/event.hpp',
+  'sdeventplus/exception.hpp',
+  subdir: 'sdeventplus')
+
+install_headers(
+  'sdeventplus/internal/sdevent.hpp',
+  'sdeventplus/internal/sdref.hpp',
+  'sdeventplus/internal/utils.hpp',
+  subdir: 'sdeventplus/internal')
+
+install_headers(
+  'sdeventplus/source/base.hpp',
+  'sdeventplus/source/child.hpp',
+  'sdeventplus/source/event.hpp',
+  'sdeventplus/source/io.hpp',
+  'sdeventplus/source/signal.hpp',
+  'sdeventplus/source/time.hpp',
+  subdir: 'sdeventplus/source')
+
+install_headers(
+  'sdeventplus/test/sdevent.hpp',
+  subdir: 'sdeventplus/test')
+
+install_headers(
+  'sdeventplus/utility/timer.hpp',
+  subdir: 'sdeventplus/utility')