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