scons: Define _ALLOW_KEYWORD_MACROS on MSVC builds.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 14 Mar 2013 17:40:14 +0000 (17:40 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 14 Mar 2013 19:01:10 +0000 (19:01 +0000)
scons/llvm.py defines inline globally to workaround issues with LLVM C
binding headers, so the only way to is to avoid
aggravating xkeycheck.h errors is to set _ALLOW_KEYWORD_MACROS.

This fixes MSVC 2012 build with LLVM.

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

index 3a9f502a7ea5edc6191392b0415dd8496053efca..429c6014845ac3470cc3b14860c6503ea7ccd2b4 100644 (file)
     * Visual Studio 2012 will complain if we define the `inline` keyword, but
     * actually it only supports the keyword on C++.
     *
-    * We could skip this check by defining _ALLOW_KEYWORD_MACROS, but there is
-    * probably value in checking this for other keywords.  So simply include
-    * the checking before we define it below.
+    * To avoid this the _ALLOW_KEYWORD_MACROS must be set.
     */
-#  if _MSC_VER >= 1700
-#    include <xkeycheck.h>
+#  if (_MSC_VER >= 1700) && !defined(_ALLOW_KEYWORD_MACROS)
+#    define _ALLOW_KEYWORD_MACROS
 #  endif
 
    /*
index 4b51b6e7cbf7e426bd9dc7246ec0184bff1912fa..4d3de82d59cb96d7b3a0856bf267459d07de0ff2 100755 (executable)
@@ -289,6 +289,7 @@ def generate(env):
                 '_CRT_SECURE_NO_DEPRECATE',
                 '_SCL_SECURE_NO_WARNINGS',
                 '_SCL_SECURE_NO_DEPRECATE',
+                '_ALLOW_KEYWORD_MACROS',
             ]
         if env['build'] in ('debug', 'checked'):
             cppdefines += ['_DEBUG']