"""dxsdk Tool-specific initialization for Microsoft DirectX SDK """ # # Copyright (c) 2009 VMware, Inc. # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # import os import os.path import SCons.Errors import SCons.Util def get_dxsdk_root(env): try: return os.environ['DXSDK_DIR'] except KeyError: return None def generate(env): dxsdk_root = get_dxsdk_root(env) if dxsdk_root is None: # 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 = os.path.join(dxsdk_root, 'Include') lib_dir = os.path.join(dxsdk_root, 'Lib', target_cpu) env.Append(CPPDEFINES = [('HAVE_DXSDK', '1')]) 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 # vim:set ts=4 sw=4 et: