scons: Define YY_USE_CONST on MSVC.
authorJose Fonseca <jfonseca@vmware.com>
Thu, 19 Mar 2015 11:53:36 +0000 (11:53 +0000)
committerJose Fonseca <jfonseca@vmware.com>
Sun, 22 Mar 2015 08:23:24 +0000 (08:23 +0000)
This prevents the MSVC from

  warning C4090: 'function' : different 'const' qualifiers

when compiling flex generated lexers.

Reviewed-by: Brian Paul <brianp@vmware.com>
scons/gallium.py

index 2b115267a8e549663edcaeecf43c640feac8de7f..9924f1e7dcea50aa9694f94ca562c23ac8465457 100755 (executable)
@@ -622,6 +622,14 @@ def generate(env):
 
     # Load tools
     env.Tool('lex')
+    if env['msvc']:
+        env.Append(LEXFLAGS = [
+            # 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.
+            '-DYY_USE_CONST=',
+        ])
     env.Tool('yacc')
     if env['llvm']:
         env.Tool('llvm')