mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 03:00:24 +01:00
It appears that scons implicit dependency scanners fail to chain dependencies of generated headers when these are outside the build tree. This patch ensures generated source files are _always_ put in the build tree. I'm not 100% this will fix all depency issues, but from my experiments it does seem to fix this. NOTE: For this to be effective it is necessary to clean the source tree from generated header/source files. Reviewed-by: Brian Paul <brianp@vmware.com>
135 lines
3 KiB
Python
135 lines
3 KiB
Python
Import('*')
|
|
|
|
if not env['x11'] or not env['xcb'] or not env['drm']:
|
|
Return()
|
|
|
|
from sys import executable as python_cmd
|
|
|
|
env = env.Clone()
|
|
|
|
env.Prepend(CPPPATH = [
|
|
'.', # the build/<platform>/glx/ directory
|
|
'#include',
|
|
'#include/GL/internal',
|
|
'#src/mesa',
|
|
'#src/mapi',
|
|
'#src/mapi/glapi',
|
|
#$(LIBDRM_CFLAGS)
|
|
#$(DRI2PROTO_CFLAGS)
|
|
#$(GLPROTO_CFLAGS)
|
|
#$(X11_INCLUDES)
|
|
])
|
|
|
|
env.Append(CPPDEFINES = [
|
|
'_REENTRANT',
|
|
#('DEFAULT_DRIVER_DIR', 'DRI_DRIVER_SEARCH_DIR')
|
|
])
|
|
|
|
env.Prepend(LIBS = [
|
|
glapi
|
|
])
|
|
|
|
env.PkgUseModules('X11')
|
|
env.PkgUseModules('XCB')
|
|
env.PkgUseModules('DRM')
|
|
|
|
if env['HAVE_XF86VIDMODE']:
|
|
env.Append(CPPDEFINES = ['XF86VIDMODE'])
|
|
env.PkgUseModules('XF86VIDMODE')
|
|
|
|
if False: # XXX: SHARED_GLAPI
|
|
env.Append(CPPDEFINES = ['GLX_SHARED_GLAPI'])
|
|
|
|
sources = [
|
|
'clientattrib.c',
|
|
'clientinfo.c',
|
|
'create_context.c',
|
|
'compsize.c',
|
|
'eval.c',
|
|
'glx_error.c',
|
|
'glxconfig.c',
|
|
'glxcmds.c',
|
|
'glxcurrent.c',
|
|
'glxext.c',
|
|
'glxextensions.c',
|
|
'indirect_glx.c',
|
|
'indirect.c',
|
|
'indirect_init.c',
|
|
'indirect_size.c',
|
|
'indirect_window_pos.c',
|
|
'indirect_texture_compression.c',
|
|
'indirect_transpose_matrix.c',
|
|
'indirect_vertex_array.c',
|
|
'indirect_vertex_program.c',
|
|
'pixel.c',
|
|
'pixelstore.c',
|
|
'render2.c',
|
|
'renderpix.c',
|
|
'single2.c',
|
|
'singlepix.c',
|
|
'vertarr.c',
|
|
'xfont.c',
|
|
'glx_pbuffer.c',
|
|
'glx_query.c',
|
|
'drisw_glx.c',
|
|
'dri_common.c',
|
|
'dri_glx.c',
|
|
'XF86dri.c',
|
|
'glxhash.c',
|
|
'dri2_glx.c',
|
|
'dri2.c',
|
|
'applegl_glx.c',
|
|
]
|
|
|
|
libgl = env.SharedLibrary(
|
|
target ='GL',
|
|
source = sources,
|
|
)
|
|
|
|
|
|
# Generate GLX-specific .c and .h files here. Other GL API-related
|
|
# files are used, but they're generated in mapi/glapi/gen/ since they're
|
|
# used by other targets as well.
|
|
|
|
GLAPI = '#src/mapi/glapi/'
|
|
|
|
env.CodeGenerate(
|
|
target = 'indirect.c',
|
|
script = GLAPI + 'gen/glX_proto_send.py',
|
|
source = GLAPI + 'gen/gl_and_es_API.xml',
|
|
command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET'
|
|
)
|
|
|
|
env.CodeGenerate(
|
|
target = 'indirect_size.c',
|
|
script = GLAPI + 'gen/glX_proto_size.py',
|
|
source = GLAPI + 'gen/gl_API.xml',
|
|
command = python_cmd + ' $SCRIPT -f $SOURCE -m size_c --only-set > $TARGET'
|
|
)
|
|
|
|
env.CodeGenerate(
|
|
target = 'indirect_init.c',
|
|
script = GLAPI + 'gen/glX_proto_send.py',
|
|
source = GLAPI + 'gen/gl_API.xml',
|
|
command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET'
|
|
)
|
|
|
|
env.CodeGenerate(
|
|
target = 'indirect_size.h',
|
|
script = GLAPI + 'gen/glX_proto_size.py',
|
|
source = GLAPI + 'gen/gl_API.xml',
|
|
command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set -h _INDIRECT_SIZE_H > $TARGET'
|
|
)
|
|
|
|
env.CodeGenerate(
|
|
target = 'indirect.h',
|
|
script = GLAPI + 'gen/glX_proto_send.py',
|
|
source = GLAPI + 'gen/gl_API.xml',
|
|
command = python_cmd + ' $SCRIPT -m init_h -f $SOURCE > $TARGET',
|
|
)
|
|
|
|
|
|
libgl = env.InstallSharedLibrary(libgl, version=(1, 2))
|
|
|
|
env.Alias('glx', libgl)
|
|
env.Alias('libgl', libgl)
|