meson: force inclusion of inttypes.h for glcpp with msvc

Because we provide a copy if MSVC doesn't, and we need it to make flex
do what we want.

Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
This commit is contained in:
Dylan Baker 2018-05-23 10:05:20 -07:00
parent 8b19c5b145
commit 150aec5d1f

View file

@ -35,13 +35,23 @@ glcpp_lex = custom_target(
command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'],
)
_extra_args = []
if cpp.get_id() == 'msvc'
# Flex relies on __STDC_VERSION__>=199901L to decide when to include C99
# inttypes.h. We always have inttypes.h available with MSVC (either the one
# bundled with MSVC 2013, or the one we bundle ourselves), but we can't just
# define __STDC_VERSION__ without breaking stuff, as MSVC doesn't fully
# support C99. There's also no way to premptively include stdint.
_extra_args += '-FIinttypes.h'
endif
libglcpp = static_library(
'glcpp',
[glcpp_lex, glcpp_parse, files('glcpp.h', 'pp.c')],
dependencies : idep_mesautil,
include_directories : [inc_common],
c_args : [c_vis_args, no_override_init_args, c_msvc_compat_args],
cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
c_args : [c_vis_args, no_override_init_args, c_msvc_compat_args, _extra_args],
cpp_args : [cpp_vis_args, cpp_msvc_compat_args, _extra_args],
build_by_default : false,
)