1848b8605Smrg####################################################################### 2848b8605Smrg# SConscript for glapi 3848b8605Smrg 4848b8605Smrg 5848b8605Smrgfrom sys import executable as python_cmd 6848b8605Smrg 7848b8605SmrgImport('*') 8848b8605Smrg 9848b8605Smrgenv = env.Clone() 10848b8605Smrg 11b8e80941Smrgenv.MSVC2013Compat() 12b8e80941Smrg 13848b8605Smrgenv.Append(CPPDEFINES = [ 14848b8605Smrg 'MAPI_MODE_UTIL', 15848b8605Smrg]) 16848b8605Smrg 17848b8605Smrgif env['platform'] == 'windows': 18848b8605Smrg env.Append(CPPDEFINES = [ 19848b8605Smrg '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers 20848b8605Smrg 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers 21b8e80941Smrg 'KHRONOS_DLL_EXPORTS', # declare gl* as __declspec(dllexport) in Khronos headers 22b8e80941Smrg '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport) 23848b8605Smrg ]) 24848b8605Smrg 25848b8605Smrgenv.Append(CPPPATH = [ 26b8e80941Smrg '#/src', 27848b8605Smrg '#/src/mapi', 28848b8605Smrg '#/src/mesa', 29b8e80941Smrg Dir('.'), # src/mapi/glapi build path 30848b8605Smrg Dir('..'), # src/mapi build path 31848b8605Smrg]) 32848b8605Smrg 33848b8605Smrgglapi_sources = [ 34848b8605Smrg 'glapi_dispatch.c', 35848b8605Smrg 'glapi_entrypoint.c', 36848b8605Smrg 'glapi_getproc.c', 37848b8605Smrg 'glapi_nop.c', 38848b8605Smrg 'glapi.c', 39848b8605Smrg] 40848b8605Smrg 41848b8605Smrgmapi_sources = [ 42848b8605Smrg 'u_current.c', 43848b8605Smrg 'u_execmem.c', 44848b8605Smrg] 45848b8605Smrgfor s in mapi_sources: 46848b8605Smrg o = env.SharedObject(s[:-2], '../' + s) 47848b8605Smrg glapi_sources.append(o) 48848b8605Smrg 49848b8605Smrg# 50848b8605Smrg# Assembly sources 51848b8605Smrg# 52b8e80941Smrgif env['platform'] not in ('cygwin', 'darwin', 'windows'): 53848b8605Smrg GLAPI = '#src/mapi/glapi/' 54848b8605Smrg sources = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml') 55848b8605Smrg 56848b8605Smrg if env['machine'] == 'x86': 57848b8605Smrg env.Append(CPPDEFINES = [ 58848b8605Smrg 'USE_X86_ASM', 59848b8605Smrg ]) 60848b8605Smrg glapi_sources += [ 61848b8605Smrg 'glapi_x86.S', 62848b8605Smrg ] 63848b8605Smrg env.CodeGenerate( 64848b8605Smrg target = 'glapi_x86.S', 65848b8605Smrg script = GLAPI + 'gen/gl_x86_asm.py', 66848b8605Smrg source = sources, 67848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 68848b8605Smrg ) 69848b8605Smrg elif env['machine'] == 'x86_64': 70848b8605Smrg env.Append(CPPDEFINES = [ 71848b8605Smrg 'USE_X86_64_ASM', 72848b8605Smrg ]) 73848b8605Smrg glapi_sources += [ 74848b8605Smrg 'glapi_x86-64.S' 75848b8605Smrg ] 76848b8605Smrg env.CodeGenerate( 77848b8605Smrg target = 'glapi_x86-64.S', 78848b8605Smrg script = GLAPI + 'gen/gl_x86-64_asm.py', 79848b8605Smrg source = sources, 80848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 81848b8605Smrg ) 82848b8605Smrg elif env['machine'] == 'sparc': 83848b8605Smrg env.Append(CPPDEFINES = [ 84848b8605Smrg 'USE_SPARC_ASM', 85848b8605Smrg ]) 86848b8605Smrg glapi_sources += [ 87848b8605Smrg 'glapi_sparc.S' 88848b8605Smrg ] 89848b8605Smrg env.CodeGenerate( 90848b8605Smrg target = 'glapi_sparc.S', 91848b8605Smrg script = GLAPI + 'gen/gl_SPARC_asm.py', 92848b8605Smrg source = sources, 93848b8605Smrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 94848b8605Smrg ) 95848b8605Smrg else: 96848b8605Smrg pass 97848b8605Smrg 98848b8605Smrgglapi = env.ConvenienceLibrary( 99848b8605Smrg target = 'glapi', 100848b8605Smrg source = glapi_sources, 101848b8605Smrg) 102848b8605SmrgExport('glapi') 103