Add gpio-presence-sensor

This is to implement the gpio based hw inventory design [1].

There is a new meson option 'gpio-presence' to enable/disable the
daemon.

Summary of the functionality:

- fetch configuration from EM, according to the configuration interface
- the D-Bus interface is
  xyz.openbmc_project.Configuration.GPIODeviceDetect
- the configuration represents devices for which presence can be
  detected based on gpio values.
- watch gpios for changes
- add/remove the xyz.openbmc_project.Inventory.Source.DevicePresence
  interface on the object path based on gpio values.

References:
[1] https://github.com/openbmc/docs/blob/master/designs/inventory/gpio-based-hardware-inventory.md
[2] https://www.kernel.org/doc/html/latest/admin-guide/gpio/gpio-sim.html

Tested: using linux gpio-sim facility, see below

1. create a fake gpio via [2]
2. configure gpio-presence-sensor as per [1]
3. run the gpio-presence-sensor
4. change the value of the gpio previously configured
5. there should be log output (at debug level)
6. the dbus interfaces exposed should appear/disappear as per [1]

Change-Id: I4cf039b583247581aa5c6c6c59e7fc41ced0bb85
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/src/gpio-presence/meson.build b/src/gpio-presence/meson.build
new file mode 100644
index 0000000..0e2c0f4
--- /dev/null
+++ b/src/gpio-presence/meson.build
@@ -0,0 +1,31 @@
+gpio_presence_lib = static_library(
+    'gpio_presence_lib',
+    'device_presence.cpp',
+    'device_presence.hpp',
+    'gpio_presence_manager.cpp',
+    'gpio_presence_manager.hpp',
+    'config_provider.cpp',
+    'config_provider.hpp',
+    dependencies: [
+        boost,
+        phosphor_logging_dep,
+        phosphor_dbus_interfaces_dep,
+        sdbusplus,
+        libgpio_dep,
+    ],
+)
+
+executable(
+    'gpio-presence-sensor',
+    'main.cpp',
+    dependencies: [
+        boost,
+        phosphor_logging_dep,
+        phosphor_dbus_interfaces_dep,
+        sdbusplus,
+        libgpio_dep,
+    ],
+    install: true,
+    install_dir: installdir,
+    link_with: gpio_presence_lib,
+)