Home | History | Annotate | Line # | Download | only in glapi
SConscript revision 1.1.1.1
      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  mrg env.Append(CPPDEFINES = [
     12  1.1  mrg     'MAPI_MODE_UTIL',
     13  1.1  mrg ])
     14  1.1  mrg 
     15  1.1  mrg if env['platform'] == 'windows':
     16  1.1  mrg     env.Append(CPPDEFINES = [
     17  1.1  mrg         '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
     18  1.1  mrg         'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
     19  1.1  mrg     ])
     20  1.1  mrg     if env['gles']:
     21  1.1  mrg         env.Append(CPPDEFINES = ['_GLAPI_DLL_EXPORTS'])
     22  1.1  mrg     else:
     23  1.1  mrg         # prevent _glapi_* from being declared __declspec(dllimport)
     24  1.1  mrg         env.Append(CPPDEFINES = ['_GLAPI_NO_EXPORTS'])
     25  1.1  mrg 
     26  1.1  mrg env.Append(CPPPATH = [
     27  1.1  mrg     '#/src/mapi',
     28  1.1  mrg     '#/src/mesa',
     29  1.1  mrg     Dir('..'), # src/mapi build path
     30  1.1  mrg ])
     31  1.1  mrg 
     32  1.1  mrg glapi_sources = [
     33  1.1  mrg     'glapi_dispatch.c',
     34  1.1  mrg     'glapi_entrypoint.c',
     35  1.1  mrg     'glapi_getproc.c',
     36  1.1  mrg     'glapi_nop.c',
     37  1.1  mrg     'glapi.c',
     38  1.1  mrg ]
     39  1.1  mrg 
     40  1.1  mrg mapi_sources = [
     41  1.1  mrg     'u_current.c',
     42  1.1  mrg     'u_execmem.c',
     43  1.1  mrg ]
     44  1.1  mrg for s in mapi_sources:
     45  1.1  mrg     o = env.SharedObject(s[:-2], '../' + s)
     46  1.1  mrg     glapi_sources.append(o)
     47  1.1  mrg 
     48  1.1  mrg #
     49  1.1  mrg # Assembly sources
     50  1.1  mrg #
     51  1.1  mrg if (env['gcc'] or env['clang']) and \
     52  1.1  mrg    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