1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#######################################################################
# SConscript for xlib winsys
Import('*')
env = env.Clone()
env.Append(CPPPATH = [
'#/src/mapi',
'#/src/mesa',
'#/src/mesa/main',
'#src/gallium/state_trackers/glx/xlib',
Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
])
env.Append(CPPDEFINES = ['USE_XSHM'])
env.Prepend(LIBS = env['X11_LIBS'])
env.Prepend(LIBPATH = env['X11_LIBPATH'])
# when GLES is enabled, gl* and _glapi_* belong to bridge_glapi and
# shared_glapi respectively
if env['gles']:
env.Prepend(LIBPATH = [shared_glapi.dir])
glapi = [bridge_glapi, 'glapi']
env.Prepend(LIBS = [
st_xlib,
ws_xlib,
glapi,
mesautil,
compiler,
mesa,
glsl,
nir,
spirv,
gallium,
])
sources = [
'xlib.c',
]
if True:
env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_RBUG', 'GALLIUM_SOFTPIPE'])
env.Prepend(LIBS = [trace, rbug, softpipe])
if env['llvm']:
env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
env.Prepend(LIBS = [llvmpipe])
if env['swr']:
env.Append(CPPDEFINES = 'GALLIUM_SWR')
env.Prepend(LIBS = [swr])
if env['platform'] != 'darwin':
# Disallow undefined symbols, except with Address Sanitizer, since libasan
# is not linked on shared libs, as it should be LD_PRELOAD'ed instead
if not env['asan']:
env.Append(SHLINKFLAGS = [
'-Wl,-z,defs',
])
env.Append(SHLINKFLAGS = [
# Restrict exported symbols
'-Wl,--version-script=%s' % File("libgl-xlib.sym").srcnode().path,
])
# libGL.so.1.5
libgl_1_5 = env.SharedLibrary(
target ='GL',
source = sources,
SHLIBSUFFIX = env['SHLIBSUFFIX'] + '.1.5',
)
# libGL.so.1
libgl = env.subst('${SHLIBPREFIX}GL${SHLIBSUFFIX}')
libgl_1 = libgl + '.1'
env.Command(libgl_1, libgl_1_5, "ln -sf ${SOURCE.file} ${TARGET}")
env.Command(libgl, libgl_1, "ln -sf ${SOURCE.file} ${TARGET}")
env.Alias('libgl-xlib', libgl)
|