SConscript revision 1.1 1 1.1 mrg Import('*')
2 1.1 mrg
3 1.1 mrg if not env['x11'] or not env['xcb'] or not env['drm']:
4 1.1 mrg Return()
5 1.1 mrg
6 1.1 mrg from sys import executable as python_cmd
7 1.1 mrg
8 1.1 mrg env = env.Clone()
9 1.1 mrg
10 1.1 mrg env.Prepend(CPPPATH = [
11 1.1 mrg '.', # the build/<platform>/glx/ directory
12 1.1 mrg '#include',
13 1.1 mrg '#include/GL/internal',
14 1.1 mrg '#src/loader',
15 1.1 mrg '#src/mesa',
16 1.1 mrg '#src/mapi',
17 1.1 mrg '#src/mapi/glapi',
18 1.1 mrg #$(LIBDRM_CFLAGS)
19 1.1 mrg #$(DRI2PROTO_CFLAGS)
20 1.1 mrg #$(GLPROTO_CFLAGS)
21 1.1 mrg #$(X11_INCLUDES)
22 1.1 mrg ])
23 1.1 mrg
24 1.1 mrg env.Append(CPPDEFINES = [
25 1.1 mrg '_REENTRANT',
26 1.1 mrg #('DEFAULT_DRIVER_DIR', 'DRI_DRIVER_SEARCH_DIR')
27 1.1 mrg ])
28 1.1 mrg
29 1.1 mrg env.Prepend(LIBS = [
30 1.1 mrg libloader,
31 1.1 mrg glapi
32 1.1 mrg ])
33 1.1 mrg
34 1.1 mrg env.PkgUseModules('X11')
35 1.1 mrg env.PkgUseModules('XCB')
36 1.1 mrg env.PkgUseModules('DRM')
37 1.1 mrg
38 1.1 mrg if env['HAVE_XF86VIDMODE']:
39 1.1 mrg env.Append(CPPDEFINES = ['XF86VIDMODE'])
40 1.1 mrg env.PkgUseModules('XF86VIDMODE')
41 1.1 mrg
42 1.1 mrg if False: # XXX: SHARED_GLAPI
43 1.1 mrg env.Append(CPPDEFINES = ['GLX_SHARED_GLAPI'])
44 1.1 mrg
45 1.1 mrg sources = [
46 1.1 mrg 'clientattrib.c',
47 1.1 mrg 'clientinfo.c',
48 1.1 mrg 'create_context.c',
49 1.1 mrg 'compsize.c',
50 1.1 mrg 'eval.c',
51 1.1 mrg 'glx_error.c',
52 1.1 mrg 'glxconfig.c',
53 1.1 mrg 'glxcmds.c',
54 1.1 mrg 'glxcurrent.c',
55 1.1 mrg 'glxext.c',
56 1.1 mrg 'glxextensions.c',
57 1.1 mrg 'indirect_glx.c',
58 1.1 mrg 'indirect.c',
59 1.1 mrg 'indirect_init.c',
60 1.1 mrg 'indirect_size.c',
61 1.1 mrg 'indirect_window_pos.c',
62 1.1 mrg 'indirect_texture_compression.c',
63 1.1 mrg 'indirect_transpose_matrix.c',
64 1.1 mrg 'indirect_vertex_array.c',
65 1.1 mrg 'indirect_vertex_program.c',
66 1.1 mrg 'pixel.c',
67 1.1 mrg 'pixelstore.c',
68 1.1 mrg 'query_renderer.c',
69 1.1 mrg 'render2.c',
70 1.1 mrg 'renderpix.c',
71 1.1 mrg 'single2.c',
72 1.1 mrg 'singlepix.c',
73 1.1 mrg 'vertarr.c',
74 1.1 mrg 'xfont.c',
75 1.1 mrg 'glx_pbuffer.c',
76 1.1 mrg 'glx_query.c',
77 1.1 mrg 'drisw_glx.c',
78 1.1 mrg 'dri_common.c',
79 1.1 mrg 'dri_glx.c',
80 1.1 mrg 'XF86dri.c',
81 1.1 mrg 'glxhash.c',
82 1.1 mrg 'dri2_glx.c',
83 1.1 mrg 'dri2.c',
84 1.1 mrg 'dri2_query_renderer.c',
85 1.1 mrg #'dri3_glx.c',
86 1.1 mrg 'applegl_glx.c',
87 1.1 mrg ]
88 1.1 mrg
89 1.1 mrg libgl = env.SharedLibrary(
90 1.1 mrg target ='GL',
91 1.1 mrg source = sources,
92 1.1 mrg )
93 1.1 mrg
94 1.1 mrg
95 1.1 mrg # Generate GLX-specific .c and .h files here. Other GL API-related
96 1.1 mrg # files are used, but they're generated in mapi/glapi/gen/ since they're
97 1.1 mrg # used by other targets as well.
98 1.1 mrg
99 1.1 mrg GLAPI = '#src/mapi/glapi/'
100 1.1 mrg sources = [GLAPI + 'gen/gl_API.xml'] + env.Glob(GLAPI + 'gen/*.xml')
101 1.1 mrg
102 1.1 mrg env.CodeGenerate(
103 1.1 mrg target = 'indirect.c',
104 1.1 mrg script = GLAPI + 'gen/glX_proto_send.py',
105 1.1 mrg source = sources,
106 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET'
107 1.1 mrg )
108 1.1 mrg
109 1.1 mrg env.CodeGenerate(
110 1.1 mrg target = 'indirect_size.c',
111 1.1 mrg script = GLAPI + 'gen/glX_proto_size.py',
112 1.1 mrg source = sources,
113 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET'
114 1.1 mrg )
115 1.1 mrg
116 1.1 mrg env.CodeGenerate(
117 1.1 mrg target = 'indirect_init.c',
118 1.1 mrg script = GLAPI + 'gen/glX_proto_send.py',
119 1.1 mrg source = sources,
120 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET'
121 1.1 mrg )
122 1.1 mrg
123 1.1 mrg env.CodeGenerate(
124 1.1 mrg target = 'indirect_size.h',
125 1.1 mrg script = GLAPI + 'gen/glX_proto_size.py',
126 1.1 mrg source = sources,
127 1.1 mrg command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET'
128 1.1 mrg )
129 1.1 mrg
130 1.1 mrg env.CodeGenerate(
131 1.1 mrg target = 'indirect.h',
132 1.1 mrg script = GLAPI + 'gen/glX_proto_send.py',
133 1.1 mrg source = sources,
134 1.1 mrg command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET',
135 1.1 mrg )
136 1.1 mrg
137 1.1 mrg
138 1.1 mrg libgl = env.InstallSharedLibrary(libgl, version=(1, 2))
139 1.1 mrg
140 1.1 mrg env.Alias('glx', libgl)
141 1.1 mrg env.Alias('libgl', libgl)
142