Add initial Meson build file
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..584a187
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,102 @@
+project(
+  'jsoncpp',
+  'cpp',
+  version : '1.8.0',
+  default_options : [
+    'buildtype=release',
+    'warning_level=1'],
+  license : 'Public Domain',
+  meson_version : '>= 0.41.1')
+
+jsoncpp_ver_arr = meson.project_version().split('.')
+jsoncpp_major_version = jsoncpp_ver_arr[0]
+jsoncpp_minor_version = jsoncpp_ver_arr[1]
+jsoncpp_patch_version = jsoncpp_ver_arr[2]
+
+jsoncpp_cdata = configuration_data()
+jsoncpp_cdata.set('JSONCPP_VERSION', meson.project_version())
+jsoncpp_cdata.set('JSONCPP_VERSION_MAJOR', jsoncpp_major_version)
+jsoncpp_cdata.set('JSONCPP_VERSION_MINOR', jsoncpp_minor_version)
+jsoncpp_cdata.set('JSONCPP_VERSION_PATCH', jsoncpp_patch_version)
+
+jsoncpp_gen_sources = configure_file(
+  input : 'src/lib_json/version.h.in',
+  output : 'version.h',
+  configuration : jsoncpp_cdata,
+  install : true,
+  install_dir : join_paths(get_option('prefix'), get_option('includedir'), 'json')
+)
+
+jsoncpp_headers = [
+  'include/json/allocator.h',
+  'include/json/assertions.h',
+  'include/json/autolink.h',
+  'include/json/config.h',
+  'include/json/features.h',
+  'include/json/forwards.h',
+  'include/json/json.h',
+  'include/json/reader.h',
+  'include/json/value.h',
+  'include/json/writer.h']
+jsoncpp_include_directories = include_directories('include')
+
+install_headers(
+  jsoncpp_headers,
+  subdir : 'json')
+
+jsoncpp_lib = library(
+  'jsoncpp',
+  [ jsoncpp_gen_sources,
+    jsoncpp_headers,
+    'src/lib_json/json_tool.h',
+    'src/lib_json/json_reader.cpp',
+    'src/lib_json/json_value.cpp',
+    'src/lib_json/json_writer.cpp'],
+  soversion : 18,
+  install : true,
+  include_directories : jsoncpp_include_directories)
+
+import('pkgconfig').generate(
+  libraries : jsoncpp_lib,
+  version : meson.project_version(),
+  name : 'jsoncpp',
+  filebase : 'jsoncpp',
+  description : 'A C++ library for interacting with JSON')
+
+# for libraries bundling jsoncpp
+declare_dependency(
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  version : meson.project_version(),
+  sources : jsoncpp_gen_sources)
+
+# tests
+python = import('python3').find_python()
+
+jsoncpp_test = executable(
+  'jsoncpp_test',
+  [ 'src/test_lib_json/jsontest.cpp',
+    'src/test_lib_json/jsontest.h',
+    'src/test_lib_json/main.cpp'],
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  install : false)
+test(
+  'unittest_jsoncpp_test',
+  jsoncpp_test)
+
+jsontestrunner = executable(
+  'jsontestrunner',
+  'src/jsontestrunner/main.cpp',
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  install : false)
+test(
+  'unittest_jsontestrunner',
+  python,
+  args : [
+    '-B',
+    join_paths(meson.current_source_dir(), 'test/runjsontests.py'),
+    jsontestrunner,
+    join_paths(meson.current_source_dir(), 'test/data')]
+  )