diff --git a/meson.build b/meson.build index 8ef1e5f71aa..9af46152f42 100644 --- a/meson.build +++ b/meson.build @@ -1734,15 +1734,24 @@ if build_machine.system() == 'windows' if prog_flex.found() # windows compatibility (uses instead of and _isatty, # _fileno functions) - prog_flex = [prog_flex, '--wincompat', '-D__STDC_VERSION__=199901'] + prog_flex = [prog_flex, '--wincompat'] + if get_option('c_std') == 'c99' + prog_flex += '-D__STDC_VERSION__=199901' + endif else prog_flex = [find_program('flex', 'lex', required : with_any_opengl)] endif # Force flex to use const keyword in prototypes, as relies on __cplusplus or # __STDC__ macro to determine whether it's safe to use const keyword, but - # MSVC never defines __STDC__ unless we disable all MSVC extensions. + # MSVC only defines __STDC_VERSION__ for C11/C17. prog_flex += '-DYY_USE_CONST=' + prog_flex_cpp = prog_flex + if get_option('c_std') != 'c99' + # Convince win_flex to use for C++ files + prog_flex_cpp += '-D__STDC_VERSION__=199901' + endif + prog_bison = find_program('win_bison', required : false) if not prog_bison.found() prog_bison = find_program('bison', 'yacc', required : with_any_opengl) @@ -1763,6 +1772,7 @@ else endif prog_flex = find_program('flex', required : with_any_opengl) + prog_flex_cpp = prog_flex endif dep_selinux = null_dep diff --git a/src/compiler/glsl/meson.build b/src/compiler/glsl/meson.build index 77febac4002..05c4a886589 100644 --- a/src/compiler/glsl/meson.build +++ b/src/compiler/glsl/meson.build @@ -44,7 +44,7 @@ glsl_lexer_cpp = custom_target( 'glsl_lexer_cpp', input : 'glsl_lexer.ll', output : 'glsl_lexer.cpp', - command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], + command : [prog_flex_cpp, '-o', '@OUTPUT@', '@INPUT@'], ) ir_expression_operation_constant_h = custom_target(