Port to meson
OpenBMC is moving everything to meson, so do that here, too.
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
Change-Id: Id40b891c4273894aa02a87c1105277939d90e044
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..6f6a1f7
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,69 @@
+project(
+ 'host-error-monitor',
+ 'cpp',
+ version : '1.0',
+ meson_version: '>=1.1.1',
+ default_options: [
+ 'b_ndebug=if-release',
+ 'cpp_rtti=false',
+ 'cpp_std=c++20',
+ 'warning_level=3',
+ 'werror=true',
+ ]
+)
+
+if(get_option('libpeci').enabled())
+ add_project_arguments('-DLIBPECI', language : 'cpp')
+endif
+
+if(get_option('crashdump').enabled())
+ add_project_arguments('-DCRASHDUMP', language : 'cpp')
+endif
+
+sdbusplus = dependency('sdbusplus')
+gpiodcxx = dependency('libgpiodcxx',
+ default_options: ['bindings=cxx'],
+)
+
+systemd = dependency('systemd', required: true)
+systemd_system_unit_dir = systemd.get_variable(pkgconfig:
+ 'systemdsystemunitdir'
+)
+
+boost = dependency('boost', version: '>=1.82')
+add_project_arguments(
+ [
+ '-DBOOST_ASIO_DISABLE_THREADS',
+ '-DBOOST_ASIO_EXCEPTION_DISABLE',
+ '-DBOOST_ASIO_NO_DEPRECATED',
+ '-DBOOST_NO_RTTI',
+ '-DBOOST_NO_TYPEID',
+ ],
+ language : 'cpp'
+)
+
+bindir = get_option('prefix') + '/' + get_option('bindir')
+
+deps = [
+ boost,
+ gpiodcxx,
+ sdbusplus,
+]
+
+if(get_option('libpeci').enabled())
+ peci = dependency('libpeci')
+ deps += [
+ peci,
+ ]
+endif
+
+executable(
+ 'host-error-monitor',
+ 'src/host_error_monitor.cpp',
+ include_directories: include_directories('include'),
+ dependencies: deps,
+ install: true,
+ install_dir: bindir
+)
+
+subdir('service_files')
diff --git a/meson.options b/meson.options
new file mode 100644
index 0000000..ed29e7b
--- /dev/null
+++ b/meson.options
@@ -0,0 +1,13 @@
+option(
+ 'libpeci',
+ type: 'feature',
+ value: 'disabled',
+ description: 'Enable use of old peci driver API via libpeci',
+)
+
+option(
+ 'crashdump',
+ type: 'feature',
+ value: 'disabled',
+ description: 'Enable use of the Intel Crashdump service',
+)
diff --git a/service_files/meson.build b/service_files/meson.build
new file mode 100644
index 0000000..e2df524
--- /dev/null
+++ b/service_files/meson.build
@@ -0,0 +1,4 @@
+install_data(
+ 'xyz.openbmc_project.HostErrorMonitor.service',
+ install_dir: systemd_system_unit_dir,
+)