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