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