xref: /aosp_15_r20/external/mesa3d/src/glx/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017-2019 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workerinc_glx = include_directories('.')
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Workersubdir('apple')
7*61046927SAndroid Build Coastguard Workerif with_dri_platform == 'windows'
8*61046927SAndroid Build Coastguard Worker  subdir('windows')
9*61046927SAndroid Build Coastguard Workerendif
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Workerfiles_libglx = files(
12*61046927SAndroid Build Coastguard Worker  'clientattrib.c',
13*61046927SAndroid Build Coastguard Worker  'clientinfo.c',
14*61046927SAndroid Build Coastguard Worker  'compsize.c',
15*61046927SAndroid Build Coastguard Worker  'create_context.c',
16*61046927SAndroid Build Coastguard Worker  'dri_common.c',
17*61046927SAndroid Build Coastguard Worker  'dri_common.h',
18*61046927SAndroid Build Coastguard Worker  'dri_common_query_renderer.c',
19*61046927SAndroid Build Coastguard Worker  'drisw_glx.c',
20*61046927SAndroid Build Coastguard Worker  'drisw_priv.h',
21*61046927SAndroid Build Coastguard Worker  'eval.c',
22*61046927SAndroid Build Coastguard Worker  'glxclient.h',
23*61046927SAndroid Build Coastguard Worker  'glxcmds.c',
24*61046927SAndroid Build Coastguard Worker  'glxconfig.c',
25*61046927SAndroid Build Coastguard Worker  'glxconfig.h',
26*61046927SAndroid Build Coastguard Worker  'glxcurrent.c',
27*61046927SAndroid Build Coastguard Worker  'glx_error.c',
28*61046927SAndroid Build Coastguard Worker  'glx_error.h',
29*61046927SAndroid Build Coastguard Worker  'glxext.c',
30*61046927SAndroid Build Coastguard Worker  'glxextensions.c',
31*61046927SAndroid Build Coastguard Worker  'glxextensions.h',
32*61046927SAndroid Build Coastguard Worker  'glxhash.c',
33*61046927SAndroid Build Coastguard Worker  'glxhash.h',
34*61046927SAndroid Build Coastguard Worker  'glx_pbuffer.c',
35*61046927SAndroid Build Coastguard Worker  'glx_query.c',
36*61046927SAndroid Build Coastguard Worker  'indirect_glx.c',
37*61046927SAndroid Build Coastguard Worker  'indirect_init.h',
38*61046927SAndroid Build Coastguard Worker  'indirect_texture_compression.c',
39*61046927SAndroid Build Coastguard Worker  'indirect_transpose_matrix.c',
40*61046927SAndroid Build Coastguard Worker  'indirect_vertex_array.c',
41*61046927SAndroid Build Coastguard Worker  'indirect_vertex_array.h',
42*61046927SAndroid Build Coastguard Worker  'indirect_vertex_array_priv.h',
43*61046927SAndroid Build Coastguard Worker  'indirect_vertex_program.c',
44*61046927SAndroid Build Coastguard Worker  'indirect_window_pos.c',
45*61046927SAndroid Build Coastguard Worker  'packrender.h',
46*61046927SAndroid Build Coastguard Worker  'packsingle.h',
47*61046927SAndroid Build Coastguard Worker  'pixel.c',
48*61046927SAndroid Build Coastguard Worker  'pixelstore.c',
49*61046927SAndroid Build Coastguard Worker  'query_renderer.c',
50*61046927SAndroid Build Coastguard Worker  'render2.c',
51*61046927SAndroid Build Coastguard Worker  'renderpix.c',
52*61046927SAndroid Build Coastguard Worker  'single2.c',
53*61046927SAndroid Build Coastguard Worker  'singlepix.c',
54*61046927SAndroid Build Coastguard Worker  'vertarr.c',
55*61046927SAndroid Build Coastguard Worker  'xfont.c',
56*61046927SAndroid Build Coastguard Worker)
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard Workerextra_libs_libglx = []
59*61046927SAndroid Build Coastguard Workerextra_deps_libgl = []
60*61046927SAndroid Build Coastguard Workerextra_ld_args_libgl = []
61*61046927SAndroid Build Coastguard Worker
62*61046927SAndroid Build Coastguard Worker# dri2
63*61046927SAndroid Build Coastguard Workerif with_x11_dri2
64*61046927SAndroid Build Coastguard Worker  files_libglx += files(
65*61046927SAndroid Build Coastguard Worker    'dri2.c',
66*61046927SAndroid Build Coastguard Worker    'dri2_glx.c',
67*61046927SAndroid Build Coastguard Worker    'dri2.h',
68*61046927SAndroid Build Coastguard Worker    'dri2_priv.h',
69*61046927SAndroid Build Coastguard Worker  )
70*61046927SAndroid Build Coastguard Workerendif
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Workerif with_dri_platform == 'drm'
73*61046927SAndroid Build Coastguard Worker  files_libglx += files('dri3_glx.c', 'dri3_priv.h')
74*61046927SAndroid Build Coastguard Workerendif
75*61046927SAndroid Build Coastguard Worker
76*61046927SAndroid Build Coastguard Workerif with_dri_platform == 'apple'
77*61046927SAndroid Build Coastguard Worker  files_libglx += files('applegl_glx.c')
78*61046927SAndroid Build Coastguard Worker  extra_libs_libglx += libappleglx
79*61046927SAndroid Build Coastguard Workerelif with_dri_platform == 'windows'
80*61046927SAndroid Build Coastguard Worker  files_libglx += files('driwindows_glx.c')
81*61046927SAndroid Build Coastguard Worker  extra_libs_libglx += [
82*61046927SAndroid Build Coastguard Worker    libwindowsdri,
83*61046927SAndroid Build Coastguard Worker    libwindowsglx,
84*61046927SAndroid Build Coastguard Worker  ]
85*61046927SAndroid Build Coastguard Worker  extra_deps_libgl = [
86*61046927SAndroid Build Coastguard Worker    meson.get_compiler('c').find_library('gdi32'),
87*61046927SAndroid Build Coastguard Worker    meson.get_compiler('c').find_library('opengl32')
88*61046927SAndroid Build Coastguard Worker  ]
89*61046927SAndroid Build Coastguard Worker  extra_ld_args_libgl = '-Wl,--disable-stdcall-fixup'
90*61046927SAndroid Build Coastguard Workerendif
91*61046927SAndroid Build Coastguard Worker
92*61046927SAndroid Build Coastguard Workerif not with_glvnd
93*61046927SAndroid Build Coastguard Worker  gl_lib_name = 'GL'
94*61046927SAndroid Build Coastguard Worker  gl_lib_version = '1.2.0'
95*61046927SAndroid Build Coastguard Workerelse
96*61046927SAndroid Build Coastguard Worker  gl_lib_name = 'GLX_@0@'.format(glvnd_vendor_name)
97*61046927SAndroid Build Coastguard Worker  gl_lib_version = '0.0.0'
98*61046927SAndroid Build Coastguard Worker  files_libglx += files(
99*61046927SAndroid Build Coastguard Worker    'g_glxglvnddispatchfuncs.c',
100*61046927SAndroid Build Coastguard Worker    'g_glxglvnddispatchindices.h',
101*61046927SAndroid Build Coastguard Worker    'glxglvnd.c',
102*61046927SAndroid Build Coastguard Worker    'glxglvnd.h',
103*61046927SAndroid Build Coastguard Worker    'glxglvnddispatchfuncs.h',
104*61046927SAndroid Build Coastguard Worker  )
105*61046927SAndroid Build Coastguard Workerendif
106*61046927SAndroid Build Coastguard Worker
107*61046927SAndroid Build Coastguard Workerglx_gallium_link = [libpipe_loader_dynamic]
108*61046927SAndroid Build Coastguard Workerif with_dri
109*61046927SAndroid Build Coastguard Worker  glx_gallium_link += libgallium_dri
110*61046927SAndroid Build Coastguard Workerendif
111*61046927SAndroid Build Coastguard Workerif with_platform_windows
112*61046927SAndroid Build Coastguard Worker  glx_gallium_link += libgallium_wgl
113*61046927SAndroid Build Coastguard Workerendif
114*61046927SAndroid Build Coastguard Workerlibglx = static_library(
115*61046927SAndroid Build Coastguard Worker  'glx',
116*61046927SAndroid Build Coastguard Worker  [files_libglx, glx_generated],
117*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_glapi, inc_loader, inc_loader_x11,
118*61046927SAndroid Build Coastguard Worker                         inc_gallium, inc_mesa, inc_st_dri, inc_gallium_aux],
119*61046927SAndroid Build Coastguard Worker  c_args : [
120*61046927SAndroid Build Coastguard Worker    '-DGL_LIB_NAME="lib@[email protected].@1@"'.format(gl_lib_name, gl_lib_version.split('.')[0]),
121*61046927SAndroid Build Coastguard Worker  ],
122*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
123*61046927SAndroid Build Coastguard Worker  link_with : [
124*61046927SAndroid Build Coastguard Worker    libloader, libloader_x11,
125*61046927SAndroid Build Coastguard Worker    extra_libs_libglx, glx_gallium_link
126*61046927SAndroid Build Coastguard Worker  ],
127*61046927SAndroid Build Coastguard Worker  dependencies : [
128*61046927SAndroid Build Coastguard Worker    idep_mesautil, idep_xmlconfig,
129*61046927SAndroid Build Coastguard Worker    dep_libdrm, dep_dri2proto, dep_glproto, dep_x11, dep_xext, dep_glvnd, dep_xxf86vm, dep_xshmfence, dep_xfixes,
130*61046927SAndroid Build Coastguard Worker  ],
131*61046927SAndroid Build Coastguard Worker)
132*61046927SAndroid Build Coastguard Worker
133*61046927SAndroid Build Coastguard Workerlibgl = shared_library(
134*61046927SAndroid Build Coastguard Worker  gl_lib_name,
135*61046927SAndroid Build Coastguard Worker  [],
136*61046927SAndroid Build Coastguard Worker  link_with : [libglapi_static, libglapi],
137*61046927SAndroid Build Coastguard Worker  link_whole : libglx,
138*61046927SAndroid Build Coastguard Worker  link_args : [ld_args_bsymbolic, ld_args_gc_sections, extra_ld_args_libgl],
139*61046927SAndroid Build Coastguard Worker  dependencies : [
140*61046927SAndroid Build Coastguard Worker    dep_libdrm, dep_dl, dep_m, dep_thread, dep_x11, dep_xcb_glx, dep_xcb,
141*61046927SAndroid Build Coastguard Worker    dep_x11_xcb, dep_xcb_dri2, dep_xext, dep_xfixes, dep_xxf86vm,
142*61046927SAndroid Build Coastguard Worker    dep_xcb_shm, extra_deps_libgl,
143*61046927SAndroid Build Coastguard Worker  ],
144*61046927SAndroid Build Coastguard Worker  version : gl_lib_version,
145*61046927SAndroid Build Coastguard Worker  darwin_versions : '4.0.0',
146*61046927SAndroid Build Coastguard Worker  install : true,
147*61046927SAndroid Build Coastguard Worker)
148