[Mesa-dev] [PATCH] scons: Define _ALLOW_KEYWORD_MACROS on MSVC builds.

jfonseca at vmware.com jfonseca at vmware.com
Thu Mar 14 10:41:47 PDT 2013


From: José Fonseca <jfonseca at vmware.com>

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.
---
 include/c99_compat.h |    8 +++-----
 scons/gallium.py     |    1 +
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/include/c99_compat.h b/include/c99_compat.h
index 3a9f502..429c601 100644
--- a/include/c99_compat.h
+++ b/include/c99_compat.h
@@ -37,12 +37,10 @@
     * 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
 
    /*
diff --git a/scons/gallium.py b/scons/gallium.py
index 4b51b6e..4d3de82 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -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']
-- 
1.7.9.5



More information about the mesa-dev mailing list