From 75d8998f7c8a38c2299fd8d0fa65da8e322438ac Mon Sep 17 00:00:00 2001 From: James Park Date: Mon, 12 Apr 2021 15:09:57 -0700 Subject: [PATCH] meson: Fix winflexbison warnings Undefine __STDC_VERSION__ for C files to avoid mismatch with C11/C17. Define __STDC_VERSION__ for C++ files to use path. Reviewed-by: Jesse Natalie Reviewed-by: Dylan Baker Part-of: --- meson.build | 14 ++++++++++++-- src/compiler/glsl/meson.build | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) 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(