meson: Define HAVE_LOCALE_T for msvc

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
This commit is contained in:
Peter Eisentraut 2022-11-11 16:00:48 +01:00
parent b9424d014e
commit 373679c4a8

View 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 \