xref: /aosp_15_r20/external/mesa3d/src/mapi/glapi/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workersubdir('gen')
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Workerinc_glapi = include_directories('.')
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Workerstatic_glapi_files = []
9*61046927SAndroid Build Coastguard Workerstatic_glapi_args = []
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Workerif with_dri and ['apple', 'windows'].contains(with_dri_platform)
12*61046927SAndroid Build Coastguard Worker  static_glapi_files += [glapi_gentable_c, glapitable_h]
13*61046927SAndroid Build Coastguard Workerendif
14*61046927SAndroid Build Coastguard Worker
15*61046927SAndroid Build Coastguard Workerbridge_glapi_files = static_glapi_files
16*61046927SAndroid Build Coastguard Workerbridge_glapi_args = static_glapi_args
17*61046927SAndroid Build Coastguard Worker
18*61046927SAndroid Build Coastguard Workerbridge_glapi_files += files(
19*61046927SAndroid Build Coastguard Worker  '../entry.c',
20*61046927SAndroid Build Coastguard Worker  '../entry.h',
21*61046927SAndroid Build Coastguard Worker  '../entry_x86-64_tls.h',
22*61046927SAndroid Build Coastguard Worker  '../entry_x86_tls.h',
23*61046927SAndroid Build Coastguard Worker  '../entry_ppc64le_tls.h',
24*61046927SAndroid Build Coastguard Worker  '../mapi_tmp.h',
25*61046927SAndroid Build Coastguard Worker)
26*61046927SAndroid Build Coastguard Workerbridge_glapi_files += glapi_mapi_tmp_h
27*61046927SAndroid Build Coastguard Workerbridge_glapi_args += [
28*61046927SAndroid Build Coastguard Worker  '-DMAPI_MODE_BRIDGE',
29*61046927SAndroid Build Coastguard Worker  '-DMAPI_ABI_HEADER="@0@"'.format(glapi_mapi_tmp_h.full_path()),
30*61046927SAndroid Build Coastguard Worker  gcc_lto_quirk,
31*61046927SAndroid Build Coastguard Worker]
32*61046927SAndroid Build Coastguard Workerif with_platform_windows
33*61046927SAndroid Build Coastguard Worker  bridge_glapi_args += ['-D_GDI32_']
34*61046927SAndroid Build Coastguard Workerendif
35*61046927SAndroid Build Coastguard Worker
36*61046927SAndroid Build Coastguard Workerstatic_glapi_args += '-DMAPI_MODE_UTIL'
37*61046927SAndroid Build Coastguard Workerif with_platform_windows
38*61046927SAndroid Build Coastguard Worker  static_glapi_args += ['-D_GDI32_', '-DKHRONOS_DLL_EXPORTS', '-D_GLAPI_DLL_EXPORTS']
39*61046927SAndroid Build Coastguard Workerendif
40*61046927SAndroid Build Coastguard Workerstatic_glapi_files += files(
41*61046927SAndroid Build Coastguard Worker  '../u_current.c',
42*61046927SAndroid Build Coastguard Worker  '../u_current.h',
43*61046927SAndroid Build Coastguard Worker  'glapi_dispatch.c',
44*61046927SAndroid Build Coastguard Worker  'glapi_entrypoint.c',
45*61046927SAndroid Build Coastguard Worker  'glapi_getproc.c',
46*61046927SAndroid Build Coastguard Worker  'glapi_nop.c',
47*61046927SAndroid Build Coastguard Worker  'glapi.c',
48*61046927SAndroid Build Coastguard Worker  'glapi.h',
49*61046927SAndroid Build Coastguard Worker  'glapi_priv.h',
50*61046927SAndroid Build Coastguard Worker)
51*61046927SAndroid Build Coastguard Workerstatic_glapi_files += [
52*61046927SAndroid Build Coastguard Worker  glapitable_h, glapi_mapi_tmp_h, glprocs_h, glapitemp_h,
53*61046927SAndroid Build Coastguard Worker]
54*61046927SAndroid Build Coastguard Workerif with_asm_arch == 'x86'
55*61046927SAndroid Build Coastguard Worker  static_glapi_files += glapi_x86_s
56*61046927SAndroid Build Coastguard Workerelif with_asm_arch == 'x86_64'
57*61046927SAndroid Build Coastguard Worker  static_glapi_files += glapi_x86_64_s
58*61046927SAndroid Build Coastguard Workerelif with_asm_arch == 'sparc'
59*61046927SAndroid Build Coastguard Worker  static_glapi_files += glapi_sparc_s
60*61046927SAndroid Build Coastguard Workerendif
61*61046927SAndroid Build Coastguard Worker
62*61046927SAndroid Build Coastguard Worker
63*61046927SAndroid Build Coastguard Workerlibglapi_bridge = static_library(
64*61046927SAndroid Build Coastguard Worker  'glapi_bridge',
65*61046927SAndroid Build Coastguard Worker  bridge_glapi_files,
66*61046927SAndroid Build Coastguard Worker  include_directories : [inc_mesa, inc_include, inc_src, inc_mapi, inc_gallium],
67*61046927SAndroid Build Coastguard Worker  c_args : [c_msvc_compat_args, bridge_glapi_args],
68*61046927SAndroid Build Coastguard Worker  dependencies : [dep_thread, dep_selinux, idep_mesautil],
69*61046927SAndroid Build Coastguard Worker  build_by_default : false,
70*61046927SAndroid Build Coastguard Worker)
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Workerif with_shared_glapi
73*61046927SAndroid Build Coastguard Worker  libglapi_static = libglapi_bridge
74*61046927SAndroid Build Coastguard Workerelse
75*61046927SAndroid Build Coastguard Worker  libglapi_static = static_library(
76*61046927SAndroid Build Coastguard Worker    'glapi_static',
77*61046927SAndroid Build Coastguard Worker    static_glapi_files,
78*61046927SAndroid Build Coastguard Worker    include_directories : [inc_mesa, inc_include, inc_src, inc_mapi, inc_gallium],
79*61046927SAndroid Build Coastguard Worker    c_args : [c_msvc_compat_args, static_glapi_args],
80*61046927SAndroid Build Coastguard Worker    dependencies : [dep_thread, dep_selinux, idep_mesautil],
81*61046927SAndroid Build Coastguard Worker    build_by_default : false,
82*61046927SAndroid Build Coastguard Worker  )
83*61046927SAndroid Build Coastguard Workerendif
84*61046927SAndroid Build Coastguard Worker
85*61046927SAndroid Build Coastguard Worker# TODO: this test doesn't compile on windows with mingw or msvc due to
86*61046927SAndroid Build Coastguard Worker# undefined symbols from libglapi_static, but that should be fixable.
87*61046927SAndroid Build Coastguard Workerif with_any_opengl and not with_shared_glapi and with_tests and not with_platform_windows
88*61046927SAndroid Build Coastguard Worker  test(
89*61046927SAndroid Build Coastguard Worker    'glapi_static_check_table',
90*61046927SAndroid Build Coastguard Worker    executable(
91*61046927SAndroid Build Coastguard Worker      'glapi_static_check_table',
92*61046927SAndroid Build Coastguard Worker      ['tests/check_table.cpp', glapitable_h],
93*61046927SAndroid Build Coastguard Worker      include_directories : [inc_include, inc_src, inc_mesa, inc_mapi, inc_gallium],
94*61046927SAndroid Build Coastguard Worker      link_with : [libglapi_static],
95*61046927SAndroid Build Coastguard Worker      dependencies : [idep_gtest, dep_thread],
96*61046927SAndroid Build Coastguard Worker    ),
97*61046927SAndroid Build Coastguard Worker    suite : ['mapi'],
98*61046927SAndroid Build Coastguard Worker    protocol : 'gtest',
99*61046927SAndroid Build Coastguard Worker  )
100*61046927SAndroid Build Coastguard Workerendif
101