You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.7 KiB
Meson
103 lines
2.7 KiB
Meson
python3 = import('python3')
|
|
|
|
# XWin requires OpenGL spec files in order to generate wrapper code for native GL functions
|
|
py3 = python3.find_python()
|
|
if run_command(py3, '-c', 'import lxml;').returncode() != 0
|
|
error('python3 lxml module not found')
|
|
endif
|
|
|
|
khronos_spec_dir = dependency('khronos-opengl-registry').get_pkgconfig_variable('specdir')
|
|
|
|
gen_gl_wrappers_opts= ['-nodebug']
|
|
gen_gl_wrappers_cmd = ['env', 'PYTHONPATH=' + khronos_spec_dir, py3, files('./gen_gl_wrappers.py'), gen_gl_wrappers_opts]
|
|
|
|
wgl_wrappers = custom_target(
|
|
'gen_wgl_wrappers',
|
|
command: [gen_gl_wrappers_cmd, '-registry', '@INPUT@', '-prefix', 'wgl', '-wrapper', '-preresolve', '-outfile', '@OUTPUT@'],
|
|
input: join_paths(khronos_spec_dir, 'wgl.xml'),
|
|
output: 'generated_wgl_wrappers.ic',
|
|
depend_files: join_paths(khronos_spec_dir, 'reg.py'),
|
|
)
|
|
|
|
gl_shim = custom_target(
|
|
'gen_gl_shim',
|
|
command: [gen_gl_wrappers_cmd, '-registry', '@INPUT@', '-shim', '-outfile', '@OUTPUT@'],
|
|
input: join_paths(khronos_spec_dir, 'gl.xml'),
|
|
output: 'generated_gl_shim.ic',
|
|
depend_files: join_paths(khronos_spec_dir, 'reg.py'),
|
|
)
|
|
|
|
gl_thunks = custom_target(
|
|
'gen_gl_thunks',
|
|
command: [gen_gl_wrappers_cmd, '-registry', '@INPUT@', '-thunk', '-outfile', '@OUTPUT@'],
|
|
input: join_paths(khronos_spec_dir, 'gl.xml'),
|
|
output: 'generated_gl_thunks.ic',
|
|
depend_files: join_paths(khronos_spec_dir, 'reg.py'),
|
|
)
|
|
|
|
gl_thunks_def = custom_target(
|
|
'gen_gl_thunks_def',
|
|
command: [gen_gl_wrappers_cmd, '-registry', '@INPUT@', '-thunkdefs', '-outfile', '@OUTPUT@'],
|
|
input: join_paths(khronos_spec_dir, 'gl.xml'),
|
|
output: 'generated_gl_thunks.def',
|
|
depend_files: join_paths(khronos_spec_dir, 'reg.py'),
|
|
)
|
|
|
|
srcs_windows_glx = [
|
|
'winpriv.c',
|
|
'winpriv.h',
|
|
'glwindows.h',
|
|
'glshim.c',
|
|
gl_shim,
|
|
'indirect.c',
|
|
'indirect.h',
|
|
'wgl_ext_api.c',
|
|
wgl_wrappers,
|
|
'wgl_ext_api.h',
|
|
]
|
|
|
|
if build_windowsdri
|
|
srcs_windows_glx += [
|
|
'dri_helpers.c',
|
|
'dri_helpers.h',
|
|
]
|
|
endif
|
|
|
|
xwin_glx_c_args = []
|
|
xwin_glx_c_args += '-DHAVE_XWIN_CONFIG_H'
|
|
xwin_glx_c_args += '-DXWIN_GLX_WINDOWS'
|
|
|
|
xwin_glx = static_library(
|
|
'XwinGLX',
|
|
srcs_windows_glx,
|
|
include_directories: [
|
|
inc,
|
|
top_dir_inc,
|
|
include_directories('../'),
|
|
],
|
|
dependencies: common_dep,
|
|
c_args: xwin_glx_c_args,
|
|
)
|
|
|
|
srcs_wgl_thunk = [
|
|
'glthunk.c',
|
|
gl_thunks,
|
|
]
|
|
|
|
WGLthunk = shared_library(
|
|
'nativeGLthunk',
|
|
srcs_wgl_thunk,
|
|
include_directories: [
|
|
inc,
|
|
top_dir_inc,
|
|
],
|
|
c_args: xwin_glx_c_args + [
|
|
'-Wno-unused-function',
|
|
'-Wno-missing-prototypes',
|
|
'-Wno-missing-declarations',
|
|
],
|
|
link_args: ['-lopengl32'],
|
|
vs_module_defs: gl_thunks_def,
|
|
install: true,
|
|
)
|