build: add support for building with meson
Follow the OpenBMC herd and support a more modern, more comprehensible,
more performant build framework.
To build using meson:
meson build
ninja -C build
ninja -C build install
Added -Dtests to match de-facto OpenBMC meson usage conventions.
Dropped support for --enable-oe-sdk rpath munging. This was a
workaround for broken oe sdks that don't figure out the correct rpath
when running make check or ninja test.
Ran existing unit tests (which passed) using ninja test.
Change-Id: I198700d866e1b23ba0a22b156335bbb973b98f43
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..c60e1b4
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,64 @@
+project(
+ 'phosphor-gpio-monitor',
+ 'cpp',
+ default_options: [
+ 'warning_level=3',
+ 'werror=true',
+ 'cpp_std=c++17'
+ ],
+ license: 'Apache-2.0',
+ version: '1.0',
+)
+
+build_tests = get_option('tests')
+
+cppfs = meson.get_compiler('cpp').find_library('stdc++fs')
+libevdev = dependency('libevdev')
+libsystemd = dependency('libsystemd')
+phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
+phosphor_logging = dependency('phosphor-logging')
+sdbusplus = dependency('sdbusplus')
+
+libevdev_o = static_library(
+ 'libevdev_o',
+ 'evdev.cpp',
+ dependencies: [
+ libevdev,
+ phosphor_dbus_interfaces,
+ phosphor_logging,
+ sdbusplus,
+ ]
+)
+
+libmonitor_o = static_library(
+ 'libmonitor_o',
+ 'monitor.cpp',
+ dependencies: [
+ libevdev,
+ libsystemd,
+ phosphor_logging,
+ ],
+ link_with: [
+ libevdev_o,
+ ],
+)
+
+phosphor_gpio_monitor = executable(
+ 'phosphor-gpio-monitor',
+ 'argument.cpp',
+ 'mainapp.cpp',
+ dependencies: [
+ libevdev,
+ libsystemd,
+ phosphor_logging,
+ ],
+ install: true,
+ link_with: [
+ libevdev_o,
+ libmonitor_o,
+ ],
+)
+
+subdir('gpio-util')
+subdir('presence')
+subdir('test')