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