| 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/', |
| '#src/loader', |
| '#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 = [ |
| libloader, |
| 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', |
| 'query_renderer.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', |
| 'dri_common_query_renderer.c', |
| 'dri_common_interop.c', |
| #'dri3_glx.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/' |
| sources = [GLAPI + 'gen/gl_API.xml'] + env.Glob(GLAPI + 'gen/*.xml') |
| |
| env.CodeGenerate( |
| target = 'indirect.c', |
| script = GLAPI + 'gen/glX_proto_send.py', |
| source = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE -m proto > $TARGET' |
| ) |
| |
| env.CodeGenerate( |
| target = 'indirect_size.c', |
| script = GLAPI + 'gen/glX_proto_size.py', |
| source = sources, |
| 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 = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE -m init_c > $TARGET' |
| ) |
| |
| env.CodeGenerate( |
| target = 'indirect_size.h', |
| script = GLAPI + 'gen/glX_proto_size.py', |
| source = sources, |
| command = python_cmd + ' $SCRIPT -f $SOURCE -m size_h --only-set --header-tag _INDIRECT_SIZE_H > $TARGET' |
| ) |
| |
| env.CodeGenerate( |
| target = 'indirect.h', |
| script = GLAPI + 'gen/glX_proto_send.py', |
| source = sources, |
| 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) |