1848b8605Smrg#######################################################################
2848b8605Smrg# SConscript for xlib winsys
3848b8605Smrg
4848b8605SmrgImport('*')
5848b8605Smrg
6848b8605Smrgenv = env.Clone()
7848b8605Smrg
8848b8605Smrgenv.Append(CPPPATH = [
9848b8605Smrg    '#/src/mapi',
10848b8605Smrg    '#/src/mesa',
11848b8605Smrg    '#/src/mesa/main',
12848b8605Smrg    '#src/gallium/state_trackers/glx/xlib',
13848b8605Smrg    Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
14848b8605Smrg])
15848b8605Smrg
16848b8605Smrgenv.Append(CPPDEFINES = ['USE_XSHM'])
17848b8605Smrg
18848b8605Smrgenv.Prepend(LIBS = env['X11_LIBS'])
19848b8605Smrgenv.Prepend(LIBPATH = env['X11_LIBPATH'])
20848b8605Smrg
21848b8605Smrgenv.Prepend(LIBS = [
22848b8605Smrg    st_xlib,
23848b8605Smrg    ws_xlib,
24848b8605Smrg    glapi,
25848b8605Smrg    mesautil,
26b8e80941Smrg    compiler,
27848b8605Smrg    mesa,
28848b8605Smrg    glsl,
29b8e80941Smrg    nir,
30b8e80941Smrg    spirv,
31848b8605Smrg    gallium,
32848b8605Smrg])
33848b8605Smrg
34848b8605Smrgsources = [
35848b8605Smrg    'xlib.c',
36848b8605Smrg]
37848b8605Smrg
38848b8605Smrgif True:
39b8e80941Smrg    env.Append(CPPDEFINES = ['GALLIUM_SOFTPIPE'])
40b8e80941Smrg    env.Prepend(LIBS = [softpipe])
41848b8605Smrg
42848b8605Smrgif env['llvm']:
43848b8605Smrg    env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
44848b8605Smrg    env.Prepend(LIBS = [llvmpipe])
45848b8605Smrg
46b8e80941Smrg    if env['swr']:
47b8e80941Smrg        env.Append(CPPDEFINES = 'GALLIUM_SWR')
48b8e80941Smrg        env.Prepend(LIBS = [swr])
49b8e80941Smrg
50848b8605Smrgif env['platform'] != 'darwin':
51b8e80941Smrg    # Disallow undefined symbols, except with Address Sanitizer, since libasan
52b8e80941Smrg    # is not linked on shared libs, as it should be LD_PRELOAD'ed instead
53b8e80941Smrg    if not env['asan']:
54b8e80941Smrg        env.Append(SHLINKFLAGS = [
55b8e80941Smrg            '-Wl,-z,defs',
56b8e80941Smrg        ])
57b8e80941Smrg    env.Append(SHLINKFLAGS = [
58b8e80941Smrg        # Restrict exported symbols
59b8e80941Smrg        '-Wl,--version-script=%s' % File("libgl-xlib.sym").srcnode().path,
60b8e80941Smrg    ])
61848b8605Smrg
62848b8605Smrg# libGL.so.1.5
63848b8605Smrglibgl_1_5 = env.SharedLibrary(
64848b8605Smrg    target ='GL',
65848b8605Smrg    source = sources,
66848b8605Smrg    SHLIBSUFFIX = env['SHLIBSUFFIX'] + '.1.5',
67848b8605Smrg)
68848b8605Smrg
69848b8605Smrg# libGL.so.1
70848b8605Smrglibgl = env.subst('${SHLIBPREFIX}GL${SHLIBSUFFIX}')
71848b8605Smrglibgl_1 = libgl + '.1'
72848b8605Smrgenv.Command(libgl_1, libgl_1_5, "ln -sf ${SOURCE.file} ${TARGET}")
73848b8605Smrgenv.Command(libgl, libgl_1, "ln -sf ${SOURCE.file} ${TARGET}")
74848b8605Smrg
75848b8605Smrgenv.Alias('libgl-xlib', libgl)
76