etnaviv: remove dead translate_ts_sampler_format(..) declaration
[mesa.git] / scons / dxsdk.py
index a369e1da10ce906694e3d736eafecd98eb24a3e9..9657f58f4d24d0cb4a962eee982314c7378316fb 100644 (file)
@@ -40,25 +40,32 @@ def get_dxsdk_root(env):
     except KeyError:
         return None
 
-def get_dxsdk_paths(env):
+def generate(env):
     dxsdk_root = get_dxsdk_root(env)
     if dxsdk_root is None:
-        raise SCons.Errors.InternalError, "DirectX SDK not found"
+        # DirectX SDK not found
+        return
 
     if env['machine'] in ('generic', 'x86'):
         target_cpu = 'x86'
     elif env['machine'] == 'x86_64':
         target_cpu = 'x64'
     else:
-        raise SCons.Errors.InternalError, "Unsupported target machine"
-    include_dir = 'Include'
+        raise SCons.Errors.InternalError("Unsupported target machine")
+
+    include_dir = os.path.join(dxsdk_root, 'Include')
+    lib_dir = os.path.join(dxsdk_root, 'Lib', target_cpu)
 
     env.Append(CPPDEFINES = [('HAVE_DXSDK', '1')])
-    env.Prepend(CPPPATH = [os.path.join(dxsdk_root, 'Include')])
-    env.Prepend(LIBPATH = [os.path.join(dxsdk_root, 'Lib', target_cpu)])
 
-def generate(env):
-    get_dxsdk_paths(env)
+    gcc = 'gcc' in os.path.basename(env['CC']).split('-')
+    if gcc:
+        # Make GCC more forgiving towards Microsoft's headers
+        env.Prepend(CPPFLAGS = ['-isystem', include_dir])
+    else:
+        env.Prepend(CPPPATH = [include_dir])
+
+    env.Prepend(LIBPATH = [lib_dir])
 
 def exists(env):
     return get_dxsdk_root(env) is not None