build: Add meson build for google-ipmi-i2c

Tested:
```
ninja install
[0/1] Regenerating build files.
The Meson build system
Version: 0.58.0
Source dir: /workspace/OpenBMC/google-ipmi-i2c
Build dir: /workspace/OpenBMC/google-ipmi-i2c/build-docker
Build type: native build
Project name: google-ipmi-i2c
Project version: 0.1
C++ compiler for the host machine: c++ (gcc 11.1.0 "c++ (Ubuntu 11.1.0-1ubuntu1~21.04) 11.1.0")
C++ linker for the host machine: c++ ld.bfd 2.36.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Header <ipmid/api.h> has symbol "ipmid_get_sd_bus_connection" : YES (cached)
Dependency libipmid found: YES 1.0 (cached)
Build targets in project: 1

Found ninja-1.10.1 at /usr/bin/ninja
[2/3] Installing files.
Installing libi2ccmds.so to /usr/local/lib/x86_64-linux-gnu/ipmid-providers
```

Change-Id: I60b4cd78b6846eeeeffde2492b6b411a8b01df07
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/i2c.cpp b/i2c.cpp
index 546a872..90891f5 100644
--- a/i2c.cpp
+++ b/i2c.cpp
@@ -241,8 +241,8 @@
 
 } // namespace i2c
 
-ipmi_ret_t I2c::transfer(ipmi_cmd_t cmd, const uint8_t* reqBuf,
-                         uint8_t* replyBuf, size_t* dataLen)
+ipmi_ret_t I2c::transfer(ipmi_cmd_t, const uint8_t* reqBuf, uint8_t* replyBuf,
+                         size_t* dataLen)
 {
     // Parse message header.
     auto reqLen = *dataLen;
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..f87ddef
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,32 @@
+project(
+  'google-ipmi-i2c',
+  'cpp',
+  version: '0.1',
+  meson_version: '>=0.57.0',
+  default_options: [
+    'cpp_std=c++20',
+    'warning_level=3',
+    'werror=true',
+  ]
+)
+
+cpp = meson.get_compiler('cpp')
+
+assert(cpp.has_header_symbol(
+  'ipmid/api.h',
+  'ipmid_get_sd_bus_connection')
+)
+assert(cpp.check_header('linux/i2c-dev.h'))
+assert(cpp.check_header('linux/i2c.h'))
+
+shared_module(
+  'i2ccmds',
+  'i2c.cpp',
+  implicit_include_directories: false,
+  include_directories: include_directories('.'),
+  dependencies: [
+    dependency('libipmid'),
+  ],
+  install: true,
+  install_dir: get_option('libdir') / 'ipmid-providers'
+)