| ####################################################################### |
| # SConscript for glapi |
| |
| |
| from sys import executable as python_cmd |
| |
| Import('*') |
| |
| env = env.Clone() |
| |
| env.MSVC2013Compat() |
| |
| env.Append(CPPDEFINES = [ |
| 'MAPI_MODE_UTIL', |
| ]) |
| |
| if env['platform'] == 'windows': |
| env.Append(CPPDEFINES = [ |
| '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers |
| 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers |
| 'KHRONOS_DLL_EXPORTS', # declare gl* as __declspec(dllexport) in Khronos headers |
| '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport) |
| ]) |
| |
| env.Append(CPPPATH = [ |
| '#/src', |
| '#/src/mapi', |
| '#/src/mesa', |
| Dir('.'), # src/mapi/glapi build path |
| Dir('gen'), # src/mapi/glapi/gen build path |
| ]) |
| |
| glapi_sources = [ |
| 'glapi_dispatch.c', |
| 'glapi_entrypoint.c', |
| 'glapi_getproc.c', |
| 'glapi_nop.c', |
| 'glapi.c', |
| ] |
| |
| mapi_sources = [ |
| 'u_current.c', |
| 'u_execmem.c', |
| ] |
| for s in mapi_sources: |
| o = env.SharedObject(s[:-2], '../' + s) |
| glapi_sources.append(o) |
| |
| # |
| # Assembly sources |
| # |
| if env['platform'] not in ('cygwin', 'darwin', 'windows'): |
| GLAPI = '#src/mapi/glapi/' |
| sources = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml') |
| |
| if env['machine'] == 'x86': |
| env.Append(CPPDEFINES = [ |
| 'USE_X86_ASM', |
| ]) |
| glapi_sources += [ |
| 'glapi_x86.S', |
| ] |
| env.CodeGenerate( |
| target = 'glapi_x86.S', |
| script = GLAPI + 'gen/gl_x86_asm.py', |
| source = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' |
| ) |
| elif env['machine'] == 'x86_64': |
| env.Append(CPPDEFINES = [ |
| 'USE_X86_64_ASM', |
| ]) |
| glapi_sources += [ |
| 'glapi_x86-64.S' |
| ] |
| env.CodeGenerate( |
| target = 'glapi_x86-64.S', |
| script = GLAPI + 'gen/gl_x86-64_asm.py', |
| source = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' |
| ) |
| elif env['machine'] == 'sparc': |
| env.Append(CPPDEFINES = [ |
| 'USE_SPARC_ASM', |
| ]) |
| glapi_sources += [ |
| 'glapi_sparc.S' |
| ] |
| env.CodeGenerate( |
| target = 'glapi_sparc.S', |
| script = GLAPI + 'gen/gl_SPARC_asm.py', |
| source = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' |
| ) |
| else: |
| pass |
| |
| glapi = env.ConvenienceLibrary( |
| target = 'glapi', |
| source = glapi_sources, |
| ) |
| Export('glapi') |