1 1.1 mrg ####################################################################### 2 1.1 mrg # SConscript for glapi 3 1.1 mrg 4 1.1 mrg 5 1.1 mrg from sys import executable as python_cmd 6 1.1 mrg 7 1.1 mrg Import('*') 8 1.1 mrg 9 1.1 mrg env = env.Clone() 10 1.1 mrg 11 1.1.1.2 mrg env.MSVC2013Compat() 12 1.1.1.2 mrg 13 1.1 mrg env.Append(CPPDEFINES = [ 14 1.1 mrg 'MAPI_MODE_UTIL', 15 1.1 mrg ]) 16 1.1 mrg 17 1.1 mrg if env['platform'] == 'windows': 18 1.1 mrg env.Append(CPPDEFINES = [ 19 1.1 mrg '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers 20 1.1 mrg 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers 21 1.1.1.2 mrg 'KHRONOS_DLL_EXPORTS', # declare gl* as __declspec(dllexport) in Khronos headers 22 1.1.1.2 mrg '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport) 23 1.1 mrg ]) 24 1.1 mrg 25 1.1 mrg env.Append(CPPPATH = [ 26 1.1.1.2 mrg '#/src', 27 1.1 mrg '#/src/mapi', 28 1.1 mrg '#/src/mesa', 29 1.1.1.2 mrg Dir('.'), # src/mapi/glapi build path 30 1.1 mrg Dir('..'), # src/mapi build path 31 1.1 mrg ]) 32 1.1 mrg 33 1.1 mrg glapi_sources = [ 34 1.1 mrg 'glapi_dispatch.c', 35 1.1 mrg 'glapi_entrypoint.c', 36 1.1 mrg 'glapi_getproc.c', 37 1.1 mrg 'glapi_nop.c', 38 1.1 mrg 'glapi.c', 39 1.1 mrg ] 40 1.1 mrg 41 1.1 mrg mapi_sources = [ 42 1.1 mrg 'u_current.c', 43 1.1 mrg 'u_execmem.c', 44 1.1 mrg ] 45 1.1 mrg for s in mapi_sources: 46 1.1 mrg o = env.SharedObject(s[:-2], '../' + s) 47 1.1 mrg glapi_sources.append(o) 48 1.1 mrg 49 1.1 mrg # 50 1.1 mrg # Assembly sources 51 1.1 mrg # 52 1.1.1.2 mrg if env['platform'] not in ('cygwin', 'darwin', 'windows'): 53 1.1 mrg GLAPI = '#src/mapi/glapi/' 54 1.1 mrg sources = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml') 55 1.1 mrg 56 1.1 mrg if env['machine'] == 'x86': 57 1.1 mrg env.Append(CPPDEFINES = [ 58 1.1 mrg 'USE_X86_ASM', 59 1.1 mrg ]) 60 1.1 mrg glapi_sources += [ 61 1.1 mrg 'glapi_x86.S', 62 1.1 mrg ] 63 1.1 mrg env.CodeGenerate( 64 1.1 mrg target = 'glapi_x86.S', 65 1.1 mrg script = GLAPI + 'gen/gl_x86_asm.py', 66 1.1 mrg source = sources, 67 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 68 1.1 mrg ) 69 1.1 mrg elif env['machine'] == 'x86_64': 70 1.1 mrg env.Append(CPPDEFINES = [ 71 1.1 mrg 'USE_X86_64_ASM', 72 1.1 mrg ]) 73 1.1 mrg glapi_sources += [ 74 1.1 mrg 'glapi_x86-64.S' 75 1.1 mrg ] 76 1.1 mrg env.CodeGenerate( 77 1.1 mrg target = 'glapi_x86-64.S', 78 1.1 mrg script = GLAPI + 'gen/gl_x86-64_asm.py', 79 1.1 mrg source = sources, 80 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 81 1.1 mrg ) 82 1.1 mrg elif env['machine'] == 'sparc': 83 1.1 mrg env.Append(CPPDEFINES = [ 84 1.1 mrg 'USE_SPARC_ASM', 85 1.1 mrg ]) 86 1.1 mrg glapi_sources += [ 87 1.1 mrg 'glapi_sparc.S' 88 1.1 mrg ] 89 1.1 mrg env.CodeGenerate( 90 1.1 mrg target = 'glapi_sparc.S', 91 1.1 mrg script = GLAPI + 'gen/gl_SPARC_asm.py', 92 1.1 mrg source = sources, 93 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' 94 1.1 mrg ) 95 1.1 mrg else: 96 1.1 mrg pass 97 1.1 mrg 98 1.1 mrg glapi = env.ConvenienceLibrary( 99 1.1 mrg target = 'glapi', 100 1.1 mrg source = glapi_sources, 101 1.1 mrg ) 102 1.1 mrg Export('glapi') 103