#######################################################################
|
# 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,
|
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)
|