Fix for #798

Add preprocessor definitions for MSVC dllexport/dllimport statements

(cherry picked from commit 2654b6bbbf089bf85d29c9a9ca1283e07cc6fe43)
diff --git a/meson.build b/meson.build
index f5573c0..058d55a 100644
--- a/meson.build
+++ b/meson.build
@@ -46,6 +46,14 @@
   jsoncpp_headers,
   subdir : 'json')
 
+if get_option('default_library') == 'shared' and meson.get_compiler('cpp').get_id() == 'msvc'
+  dll_export_flag = '-DJSON_DLL_BUILD'
+  dll_import_flag = '-DJSON_DLL'
+else
+  dll_export_flag = ''
+  dll_import_flag = ''
+endif
+
 jsoncpp_lib = library(
   'jsoncpp',
   [ jsoncpp_gen_sources,
@@ -56,7 +64,8 @@
     'src/lib_json/json_writer.cpp'],
   soversion : 20,
   install : true,
-  include_directories : jsoncpp_include_directories)
+  include_directories : jsoncpp_include_directories,
+  cpp_args: dll_export_flag)
 
 import('pkgconfig').generate(
   libraries : jsoncpp_lib,
@@ -82,7 +91,8 @@
     'src/test_lib_json/main.cpp'],
   include_directories : jsoncpp_include_directories,
   link_with : jsoncpp_lib,
-  install : false)
+  install : false,
+  cpp_args: dll_import_flag)
 test(
   'unittest_jsoncpp_test',
   jsoncpp_test)
@@ -92,7 +102,8 @@
   'src/jsontestrunner/main.cpp',
   include_directories : jsoncpp_include_directories,
   link_with : jsoncpp_lib,
-  install : false)
+  install : false,
+  cpp_args: dll_import_flag)
 test(
   'unittest_jsontestrunner',
   python,