meson: Define HAVE_LOCALE_T for msvc
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 11 Nov 2022 15:00:48 +0000 (16:00 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 11 Nov 2022 15:01:16 +0000 (16:01 +0100)
Meson doesn't see the redefinition of locale_t done in
src/include/port/win32_port.h, so it is not defining HAVE_LOCALE_T,
HAVE_WCSTOMBS_L nor HAVE_MBSTOWCS_L as the current
src/tools/msvc/build.pl script does.  Add manual overrides to fix.

Author: Author: Juan Jose Santamaria Flecha <juanjo.santamaria@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CAC%2BAXB1wJEqfKCuVcNpoH%3Dgxd61N%3D7c2fR3Ew6YRPpSfEUA%3DyQ%40mail.gmail.com

meson.build

index ce2f223a409ae5fac48d5186a7eb8a55cb8356c7..058382046e152d05bd8a84305541111917a9eb34 100644 (file)
@@ -2193,12 +2193,15 @@ endif
 
 # Check for the locale_t type and find the right header file.  macOS
 # needs xlocale.h; standard is locale.h, but glibc also has an
-# xlocale.h file that we should not use.
+# xlocale.h file that we should not use.  MSVC has a replacement
+# defined in src/include/port/win32_port.h.
 if cc.has_type('locale_t', prefix: '#include <locale.h>')
   cdata.set('HAVE_LOCALE_T', 1)
 elif cc.has_type('locale_t', prefix: '#include <xlocale.h>')
   cdata.set('HAVE_LOCALE_T', 1)
   cdata.set('LOCALE_T_IN_XLOCALE', 1)
+elif cc.get_id() == 'msvc'
+  cdata.set('HAVE_LOCALE_T', 1)
 endif
 
 # Check if the C compiler understands typeof or a variant.  Define
@@ -2411,6 +2414,13 @@ if cc.has_function('syslog', args: test_c_args) and \
 endif
 
 
+# MSVC has replacements defined in src/include/port/win32_port.h.
+if cc.get_id() == 'msvc'
+  cdata.set('HAVE_WCSTOMBS_L', 1)
+  cdata.set('HAVE_MBSTOWCS_L', 1)
+endif
+
+
 # if prerequisites for unnamed posix semas aren't fulfilled, fall back to sysv
 # semaphores
 if sema_kind == 'unnamed_posix' and \