Upgrade expat to R_2_3_0

Test: make
Change-Id: I59fc27b318cf832555ce17d7c3747924901f5f1b
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dfbd0c5..e356469 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,7 +33,7 @@
 
 project(expat
     VERSION
-        2.2.10
+        2.3.0
     LANGUAGES
         C
 )
@@ -48,11 +48,6 @@
 include(GNUInstallDirs)
 
 #
-# Detect use by means of add_subdirectory
-#
-get_directory_property(_EXPAT_PARENT_DIRECTORY PARENT_DIRECTORY)
-
-#
 # Configuration defaults
 #
 if(WINCE)
@@ -117,6 +112,11 @@
     set(EXPAT_MSVC_STATIC_CRT OFF CACHE BOOL "Use /MT flag (static CRT) when compiling in MSVC")
 endif()
 
+if(EXPAT_BUILD_TESTS)
+    # We have to call enable_language() before modifying any CMAKE_CXX_* variables
+    enable_language(CXX)
+endif()
+
 #
 # Environment checks
 #
@@ -129,6 +129,14 @@
     endif()
 endif()
 
+if(MSVC)
+    # Minimum supported MSVC version is 1910 = Visual Studio 15.0/2017
+    # See also https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html
+    if(MSVC_VERSION VERSION_LESS 1910)
+        message(SEND_ERROR "MSVC_VERSION ${MSVC_VERSION} is not a supported Visual Studio compiler version. Please use Visual Studio 15.0/2017 or any later version.")
+    endif()
+endif()
+
 macro(_expat_copy_bool_int source_ref dest_ref)
     if(${source_ref})
         set(${dest_ref} 1)
@@ -327,9 +335,9 @@
     target_link_libraries(expat ${LIB_BSD})
 endif()
 
-set(LIBCURRENT 7)    # sync
-set(LIBREVISION 12)  # with
-set(LIBAGE 6)        # configure.ac!
+set(LIBCURRENT 8)   # sync
+set(LIBREVISION 0)  # with
+set(LIBAGE 7)       # configure.ac!
 math(EXPR LIBCURRENT_MINUS_AGE "${LIBCURRENT} - ${LIBAGE}")
 
 set_property(TARGET expat PROPERTY OUTPUT_NAME "${_EXPAT_OUTPUT_NAME}")
@@ -423,7 +431,6 @@
 #
 if(EXPAT_BUILD_TESTS)
     ## these are unittests that can be run on any platform
-    enable_language(CXX)
     enable_testing()
 
     set(test_SRCS