Home | History | Annotate | Line # | Download | only in glapi
      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