meson/MSVC builds: Use -utf-8 where available

This avoids the build from erroring out on C4819 (Unicode handling issue in
Visual Studio compiler), notably when running on Chinese, Japanese and
Korean locales.

Also apply -D_USE_MATH_DEFINES, -FImsvc_recommended_pragmas.h and -utf-8 to
the C++ compiler options as well.
This commit is contained in:
Chun-wei Fan 2020-01-15 15:27:59 +08:00
parent 69ed4c90e5
commit f8d3845b1a

View File

@ -223,9 +223,17 @@ endif
if cc.get_id() == 'msvc' if cc.get_id() == 'msvc'
# Compiler options taken from msvc_recommended_pragmas.h # Compiler options taken from msvc_recommended_pragmas.h
# in GLib, based on _Win32_Programming_ by Rector and Newcomer # in GLib, based on _Win32_Programming_ by Rector and Newcomer
test_cflags = [] test_cflags = [
add_project_arguments('-FImsvc_recommended_pragmas.h', language: 'c') '-FImsvc_recommended_pragmas.h',
add_project_arguments('-D_USE_MATH_DEFINES', language: 'c') '-D_USE_MATH_DEFINES',
'-utf-8',
]
add_project_arguments(cc.get_supported_arguments(test_cflags), language: 'c')
cxx = meson.get_compiler('cpp')
if cxx.get_id() == 'msvc'
add_project_arguments(cxx.get_supported_arguments(test_cflags), language: 'cpp')
endif
elif cc.get_id() == 'gcc' or cc.get_id() == 'clang' elif cc.get_id() == 'gcc' or cc.get_id() == 'clang'
test_cflags = [ test_cflags = [
'-fno-strict-aliasing', '-fno-strict-aliasing',