1*61046927SAndroid Build Coastguard Worker# Copyright © 2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Workerfs = import('fs') 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard Workerlibmesa_rust_util_files = files( 7*61046927SAndroid Build Coastguard Worker 'util/lib.rs', 8*61046927SAndroid Build Coastguard Worker 'util/assert.rs', 9*61046927SAndroid Build Coastguard Worker 'util/bitset.rs', 10*61046927SAndroid Build Coastguard Worker 'util/feature.rs', 11*61046927SAndroid Build Coastguard Worker 'util/properties.rs', 12*61046927SAndroid Build Coastguard Worker 'util/ptr.rs', 13*61046927SAndroid Build Coastguard Worker 'util/string.rs', 14*61046927SAndroid Build Coastguard Worker) 15*61046927SAndroid Build Coastguard Worker 16*61046927SAndroid Build Coastguard Workerlibmesa_rust_files = files( 17*61046927SAndroid Build Coastguard Worker 'mesa/lib.rs', 18*61046927SAndroid Build Coastguard Worker 'mesa/compiler.rs', 19*61046927SAndroid Build Coastguard Worker 'mesa/compiler/clc.rs', 20*61046927SAndroid Build Coastguard Worker 'mesa/compiler/clc/spirv.rs', 21*61046927SAndroid Build Coastguard Worker 'mesa/compiler/nir.rs', 22*61046927SAndroid Build Coastguard Worker 'mesa/pipe.rs', 23*61046927SAndroid Build Coastguard Worker 'mesa/pipe/context.rs', 24*61046927SAndroid Build Coastguard Worker 'mesa/pipe/device.rs', 25*61046927SAndroid Build Coastguard Worker 'mesa/pipe/fence.rs', 26*61046927SAndroid Build Coastguard Worker 'mesa/pipe/screen.rs', 27*61046927SAndroid Build Coastguard Worker 'mesa/pipe/transfer.rs', 28*61046927SAndroid Build Coastguard Worker) 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard Workerrusticl_proc_macros_files = files( 31*61046927SAndroid Build Coastguard Worker 'proc/lib.rs', 32*61046927SAndroid Build Coastguard Worker) 33*61046927SAndroid Build Coastguard Worker 34*61046927SAndroid Build Coastguard Workerrusticl_files = files( 35*61046927SAndroid Build Coastguard Worker 'lib.rs', 36*61046927SAndroid Build Coastguard Worker 'api.rs', 37*61046927SAndroid Build Coastguard Worker 'api/context.rs', 38*61046927SAndroid Build Coastguard Worker 'api/device.rs', 39*61046927SAndroid Build Coastguard Worker 'api/event.rs', 40*61046927SAndroid Build Coastguard Worker 'api/icd.rs', 41*61046927SAndroid Build Coastguard Worker 'api/kernel.rs', 42*61046927SAndroid Build Coastguard Worker 'api/memory.rs', 43*61046927SAndroid Build Coastguard Worker 'api/platform.rs', 44*61046927SAndroid Build Coastguard Worker 'api/program.rs', 45*61046927SAndroid Build Coastguard Worker 'api/queue.rs', 46*61046927SAndroid Build Coastguard Worker 'api/types.rs', 47*61046927SAndroid Build Coastguard Worker 'api/util.rs', 48*61046927SAndroid Build Coastguard Worker 'core.rs', 49*61046927SAndroid Build Coastguard Worker 'core/context.rs', 50*61046927SAndroid Build Coastguard Worker 'core/device.rs', 51*61046927SAndroid Build Coastguard Worker 'core/format.rs', 52*61046927SAndroid Build Coastguard Worker 'core/kernel.rs', 53*61046927SAndroid Build Coastguard Worker 'core/memory.rs', 54*61046927SAndroid Build Coastguard Worker 'core/platform.rs', 55*61046927SAndroid Build Coastguard Worker 'core/program.rs', 56*61046927SAndroid Build Coastguard Worker 'core/queue.rs', 57*61046927SAndroid Build Coastguard Worker 'core/util.rs', 58*61046927SAndroid Build Coastguard Worker 'core/version.rs', 59*61046927SAndroid Build Coastguard Worker 'core/gl.rs', 60*61046927SAndroid Build Coastguard Worker) 61*61046927SAndroid Build Coastguard Worker 62*61046927SAndroid Build Coastguard Workerrusticl_args = [ 63*61046927SAndroid Build Coastguard Worker # we want unsafe blocks inside unsafe functions 64*61046927SAndroid Build Coastguard Worker '-Dunsafe_op_in_unsafe_fn', 65*61046927SAndroid Build Coastguard Worker # we error on all clippy warnings unless they are disabled 66*61046927SAndroid Build Coastguard Worker '-Dclippy::all', 67*61046927SAndroid Build Coastguard Worker # we want to add asserts in control flow 68*61046927SAndroid Build Coastguard Worker '-Aclippy::assertions_on_constants', 69*61046927SAndroid Build Coastguard Worker # warns on Arc<_> as keys 70*61046927SAndroid Build Coastguard Worker '-Aclippy::mutable_key_type', 71*61046927SAndroid Build Coastguard Worker '-Aclippy::not_unsafe_ptr_arg_deref', 72*61046927SAndroid Build Coastguard Worker # dunno, kind of looks nicier being explicit 73*61046927SAndroid Build Coastguard Worker '-Aclippy::redundant_field_names', 74*61046927SAndroid Build Coastguard Worker '-Aclippy::too_many_arguments', 75*61046927SAndroid Build Coastguard Worker '-Aclippy::type_complexity', 76*61046927SAndroid Build Coastguard Worker] 77*61046927SAndroid Build Coastguard Worker 78*61046927SAndroid Build Coastguard Workerif with_platform_x11 79*61046927SAndroid Build Coastguard Worker rusticl_args += [ 80*61046927SAndroid Build Coastguard Worker '--cfg', 'glx', 81*61046927SAndroid Build Coastguard Worker ] 82*61046927SAndroid Build Coastguard Workerendif 83*61046927SAndroid Build Coastguard Worker 84*61046927SAndroid Build Coastguard Workerrusticl_gen_args = [ 85*61046927SAndroid Build Coastguard Worker # can't do anything about it anyway 86*61046927SAndroid Build Coastguard Worker '-Aclippy::all', 87*61046927SAndroid Build Coastguard Worker '-Aimproper_ctypes', 88*61046927SAndroid Build Coastguard Worker # Some bindgen versions assume `unsafe_op_in_unsafe_fn` 89*61046927SAndroid Build Coastguard Worker '-Aunused_unsafe', 90*61046927SAndroid Build Coastguard Worker '-Anon_camel_case_types', 91*61046927SAndroid Build Coastguard Worker '-Anon_snake_case', 92*61046927SAndroid Build Coastguard Worker '-Anon_upper_case_globals', 93*61046927SAndroid Build Coastguard Worker] 94*61046927SAndroid Build Coastguard Worker 95*61046927SAndroid Build Coastguard Workerrusticl_bindgen_args = [ 96*61046927SAndroid Build Coastguard Worker '--no-convert-floats', 97*61046927SAndroid Build Coastguard Worker '--use-array-pointers-in-arguments', 98*61046927SAndroid Build Coastguard Worker '--default-enum-style', 'rust', 99*61046927SAndroid Build Coastguard Worker '--with-derive-partialeq', 100*61046927SAndroid Build Coastguard Worker '--with-derive-eq', 101*61046927SAndroid Build Coastguard Worker '--with-derive-partialord', 102*61046927SAndroid Build Coastguard Worker '--with-derive-ord', 103*61046927SAndroid Build Coastguard Worker '--with-derive-hash', 104*61046927SAndroid Build Coastguard Worker '--with-derive-default', 105*61046927SAndroid Build Coastguard Worker '--anon-fields-prefix', 'anon_', 106*61046927SAndroid Build Coastguard Worker] 107*61046927SAndroid Build Coastguard Worker 108*61046927SAndroid Build Coastguard Workerrusticl_bindgen_c_args = [ 109*61046927SAndroid Build Coastguard Worker '-fno-builtin-malloc', 110*61046927SAndroid Build Coastguard Worker] 111*61046927SAndroid Build Coastguard Worker 112*61046927SAndroid Build Coastguard Workercl_c_args = [ 113*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_1_0_APIS', 114*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_1_1_APIS', 115*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_1_2_APIS', 116*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_2_0_APIS', 117*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_2_1_APIS', 118*61046927SAndroid Build Coastguard Worker '-DCL_USE_DEPRECATED_OPENCL_2_2_APIS', 119*61046927SAndroid Build Coastguard Worker '-DCL_TARGET_OPENCL_VERSION=300', 120*61046927SAndroid Build Coastguard Worker] 121*61046927SAndroid Build Coastguard Worker 122*61046927SAndroid Build Coastguard Workerrusticl_opencl_bindings_rs = rust.bindgen( 123*61046927SAndroid Build Coastguard Worker input : [ 124*61046927SAndroid Build Coastguard Worker 'rusticl_opencl_bindings.h', 125*61046927SAndroid Build Coastguard Worker opencl_headers, 126*61046927SAndroid Build Coastguard Worker ], 127*61046927SAndroid Build Coastguard Worker output : 'rusticl_opencl_bindings.rs', 128*61046927SAndroid Build Coastguard Worker include_directories : [ 129*61046927SAndroid Build Coastguard Worker inc_include, 130*61046927SAndroid Build Coastguard Worker ], 131*61046927SAndroid Build Coastguard Worker dependencies : [ 132*61046927SAndroid Build Coastguard Worker dep_x11, 133*61046927SAndroid Build Coastguard Worker ], 134*61046927SAndroid Build Coastguard Worker c_args : [ 135*61046927SAndroid Build Coastguard Worker rusticl_bindgen_c_args, 136*61046927SAndroid Build Coastguard Worker pre_args, 137*61046927SAndroid Build Coastguard Worker cl_c_args, 138*61046927SAndroid Build Coastguard Worker ], 139*61046927SAndroid Build Coastguard Worker args : [ 140*61046927SAndroid Build Coastguard Worker rusticl_bindgen_args, 141*61046927SAndroid Build Coastguard Worker '--disable-header-comment', 142*61046927SAndroid Build Coastguard Worker '--ignore-functions', 143*61046927SAndroid Build Coastguard Worker # needed because bindgen adds *mut void fields... 144*61046927SAndroid Build Coastguard Worker '--raw-line', 'unsafe impl std::marker::Sync for _cl_icd_dispatch {}', 145*61046927SAndroid Build Coastguard Worker # _cl_image_desc contains a pointer to _cl_mem 146*61046927SAndroid Build Coastguard Worker '--raw-line', 'unsafe impl std::marker::Send for _cl_image_desc {}', 147*61046927SAndroid Build Coastguard Worker '--raw-line', 'unsafe impl std::marker::Sync for _cl_image_desc {}', 148*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'cl_.*', 149*61046927SAndroid Build Coastguard Worker '--blocklist-type', '(__)?cl_.*[2348(16)]', 150*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'cl.*_fn', 151*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'CL_.*', 152*61046927SAndroid Build Coastguard Worker # needed for gl_sharing extension 153*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'GL_.*', 154*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'MESA_GLINTEROP_.*', 155*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'PFNEGLGETPROCADDRESSPROC', 156*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'PFNGLXGETPROCADDRESSPROC', 157*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'PFNMESAGLINTEROP.*', 158*61046927SAndroid Build Coastguard Worker # some info types need to be strongly typed so we can implement various get_infos 159*61046927SAndroid Build Coastguard Worker '--new-type-alias-deref', 'cl_(mem|image|pipe|gl_texture)_info', 160*61046927SAndroid Build Coastguard Worker '--new-type-alias-deref', 'cl_kernel_(arg|work_group)_info', 161*61046927SAndroid Build Coastguard Worker '--new-type-alias-deref', 'cl_(event|profiling)_info', 162*61046927SAndroid Build Coastguard Worker # turn gl interop enums into constfields so we can compare with rust types 163*61046927SAndroid Build Coastguard Worker '--constified-enum', 'MESA_GLINTEROP_.*', 164*61046927SAndroid Build Coastguard Worker ], 165*61046927SAndroid Build Coastguard Worker) 166*61046927SAndroid Build Coastguard Worker 167*61046927SAndroid Build Coastguard Workerrusticl_opencl_gen = static_library( 168*61046927SAndroid Build Coastguard Worker 'rusticl_opencl_gen', 169*61046927SAndroid Build Coastguard Worker rusticl_opencl_bindings_rs, 170*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 171*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 172*61046927SAndroid Build Coastguard Worker rust_args : [ 173*61046927SAndroid Build Coastguard Worker rusticl_gen_args, 174*61046927SAndroid Build Coastguard Worker ], 175*61046927SAndroid Build Coastguard Worker) 176*61046927SAndroid Build Coastguard Worker 177*61046927SAndroid Build Coastguard Workerrusticl_llvm_bindings_rs = rust.bindgen( 178*61046927SAndroid Build Coastguard Worker input : 'rusticl_llvm_bindings.hpp', 179*61046927SAndroid Build Coastguard Worker output : 'rusticl_llvm_bindings.rs', 180*61046927SAndroid Build Coastguard Worker c_args : [ 181*61046927SAndroid Build Coastguard Worker rusticl_bindgen_c_args, 182*61046927SAndroid Build Coastguard Worker pre_args, 183*61046927SAndroid Build Coastguard Worker ], 184*61046927SAndroid Build Coastguard Worker dependencies : [ 185*61046927SAndroid Build Coastguard Worker dep_clang, 186*61046927SAndroid Build Coastguard Worker dep_llvm, 187*61046927SAndroid Build Coastguard Worker dep_llvmspirvlib, 188*61046927SAndroid Build Coastguard Worker ], 189*61046927SAndroid Build Coastguard Worker args : [ 190*61046927SAndroid Build Coastguard Worker # we want to limit what to generate bindings for 191*61046927SAndroid Build Coastguard Worker '--generate', 'constructors,functions,types', 192*61046927SAndroid Build Coastguard Worker # and all types will be opaque 193*61046927SAndroid Build Coastguard Worker '--opaque-type', '.*', 194*61046927SAndroid Build Coastguard Worker # LLVM/Clang/Translator stuff, only used for build-id 195*61046927SAndroid Build Coastguard Worker # also only use functions from very basic header files, otherwise bindgen might crash :') 196*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'clang::getClangFullVersion', 197*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'llvm::LLVMContext::LLVMContext', 198*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'llvm::writeSpirv', 199*61046927SAndroid Build Coastguard Worker ], 200*61046927SAndroid Build Coastguard Worker) 201*61046927SAndroid Build Coastguard Worker 202*61046927SAndroid Build Coastguard Workerrusticl_llvm_gen = static_library( 203*61046927SAndroid Build Coastguard Worker 'rusticl_llvm_gen', 204*61046927SAndroid Build Coastguard Worker rusticl_llvm_bindings_rs, 205*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 206*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 207*61046927SAndroid Build Coastguard Worker rust_args : [ 208*61046927SAndroid Build Coastguard Worker rusticl_gen_args, 209*61046927SAndroid Build Coastguard Worker ], 210*61046927SAndroid Build Coastguard Worker) 211*61046927SAndroid Build Coastguard Worker 212*61046927SAndroid Build Coastguard Workerrusticl_libc_bindings_rs = rust.bindgen( 213*61046927SAndroid Build Coastguard Worker input : 'rusticl_libc_bindings.h', 214*61046927SAndroid Build Coastguard Worker output : 'rusticl_libc_bindings.rs', 215*61046927SAndroid Build Coastguard Worker dependencies: [ 216*61046927SAndroid Build Coastguard Worker dep_valgrind, 217*61046927SAndroid Build Coastguard Worker ], 218*61046927SAndroid Build Coastguard Worker c_args : [ 219*61046927SAndroid Build Coastguard Worker rusticl_bindgen_c_args, 220*61046927SAndroid Build Coastguard Worker pre_args, 221*61046927SAndroid Build Coastguard Worker ], 222*61046927SAndroid Build Coastguard Worker args : [ 223*61046927SAndroid Build Coastguard Worker rusticl_bindgen_args, 224*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'close', 225*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'dlsym', 226*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'free', 227*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'malloc', 228*61046927SAndroid Build Coastguard Worker ] 229*61046927SAndroid Build Coastguard Worker) 230*61046927SAndroid Build Coastguard Worker 231*61046927SAndroid Build Coastguard Worker_idep_mesa_bindings = declare_dependency( 232*61046927SAndroid Build Coastguard Worker sources : spirv_info, 233*61046927SAndroid Build Coastguard Worker) 234*61046927SAndroid Build Coastguard Worker 235*61046927SAndroid Build Coastguard Workerrusticl_mesa_bindings = rust.bindgen( 236*61046927SAndroid Build Coastguard Worker input : 'rusticl_mesa_bindings.h', 237*61046927SAndroid Build Coastguard Worker output : 'rusticl_mesa_bindings.rs', 238*61046927SAndroid Build Coastguard Worker output_inline_wrapper : 'rusticl_mesa_bindings.c', 239*61046927SAndroid Build Coastguard Worker include_directories : [ 240*61046927SAndroid Build Coastguard Worker inc_gallium, 241*61046927SAndroid Build Coastguard Worker inc_gallium_aux, 242*61046927SAndroid Build Coastguard Worker inc_include, 243*61046927SAndroid Build Coastguard Worker inc_src, 244*61046927SAndroid Build Coastguard Worker ], 245*61046927SAndroid Build Coastguard Worker dependencies: [ 246*61046927SAndroid Build Coastguard Worker _idep_mesa_bindings, 247*61046927SAndroid Build Coastguard Worker idep_nir_headers, 248*61046927SAndroid Build Coastguard Worker dep_valgrind, 249*61046927SAndroid Build Coastguard Worker ], 250*61046927SAndroid Build Coastguard Worker c_args : [ 251*61046927SAndroid Build Coastguard Worker rusticl_bindgen_c_args, 252*61046927SAndroid Build Coastguard Worker pre_args, 253*61046927SAndroid Build Coastguard Worker ], 254*61046927SAndroid Build Coastguard Worker args : [ 255*61046927SAndroid Build Coastguard Worker rusticl_bindgen_args, 256*61046927SAndroid Build Coastguard Worker # mesa utils 257*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'blob_.*', 258*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'disk_cache_.*', 259*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'float_controls', 260*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'mesa_.*', 261*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'OS_.*', 262*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'rz?alloc_.*', 263*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'SHA1.*', 264*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'SHA1_.*', 265*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'u_.*', 266*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'util_format_.*', 267*61046927SAndroid Build Coastguard Worker 268*61046927SAndroid Build Coastguard Worker # CL API 269*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'cl_sampler_.*_mode', 270*61046927SAndroid Build Coastguard Worker '--constified-enum-module', 'cl_sampler_.*_mode', 271*61046927SAndroid Build Coastguard Worker 272*61046927SAndroid Build Coastguard Worker # clc 273*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'clc_.*', 274*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'clc_kernel_arg_access_qualifier', 275*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'clc_kernel_arg_access_qualifier', 276*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'clc_kernel_arg_type_qualifier', 277*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'clc_kernel_arg_type_qualifier', 278*61046927SAndroid Build Coastguard Worker 279*61046927SAndroid Build Coastguard Worker # gl 280*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'gl_access_qualifier', 281*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'gl_access_qualifier', 282*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'glsl_.*', 283*61046927SAndroid Build Coastguard Worker 284*61046927SAndroid Build Coastguard Worker # nir and spirv 285*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'nir_.*', 286*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'nir_debug', 287*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'NIR_DEBUG_.*', 288*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'nir_lower_int64_options', 289*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'nir_opt_if_options', 290*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'nir_variable_mode', 291*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'should_.*_nir', 292*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'spirv_.*', 293*61046927SAndroid Build Coastguard Worker 294*61046927SAndroid Build Coastguard Worker # gallium 295*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'pipe_.*', 296*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'PIPE_.*', 297*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'pipe_endian', 298*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'pipe_map_flags', 299*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'pipe_query_type', 300*61046927SAndroid Build Coastguard Worker '--constified-enum-module', 'pipe_query_type', 301*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'pipe_resource_usage', 302*61046927SAndroid Build Coastguard Worker '--bitfield-enum', 'pipe_resource_usage', 303*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'pipe_tex_filter', 304*61046927SAndroid Build Coastguard Worker '--constified-enum-module', 'pipe_tex_filter', 305*61046927SAndroid Build Coastguard Worker '--allowlist-type', 'pipe_tex_wrap', 306*61046927SAndroid Build Coastguard Worker '--constified-enum-module', 'pipe_tex_wrap', 307*61046927SAndroid Build Coastguard Worker 308*61046927SAndroid Build Coastguard Worker # rusticl C functions 309*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'rusticl_.*', 310*61046927SAndroid Build Coastguard Worker '--allowlist-function', 'std(err|out)_ptr', 311*61046927SAndroid Build Coastguard Worker 312*61046927SAndroid Build Coastguard Worker # winsys 313*61046927SAndroid Build Coastguard Worker '--allowlist-var', 'WINSYS_HANDLE_TYPE_.*', 314*61046927SAndroid Build Coastguard Worker ], 315*61046927SAndroid Build Coastguard Worker) 316*61046927SAndroid Build Coastguard Worker 317*61046927SAndroid Build Coastguard Workerrusticl_c = static_library( 318*61046927SAndroid Build Coastguard Worker 'rusticl_c', 319*61046927SAndroid Build Coastguard Worker [ 320*61046927SAndroid Build Coastguard Worker 'rusticl_nir.c', 321*61046927SAndroid Build Coastguard Worker 'rusticl_nir.h', 322*61046927SAndroid Build Coastguard Worker 'rusticl_system_bindings.c', 323*61046927SAndroid Build Coastguard Worker 'rusticl_system_bindings.h', 324*61046927SAndroid Build Coastguard Worker rusticl_mesa_bindings[1], 325*61046927SAndroid Build Coastguard Worker 'rusticl_mesa_bindings.h', 326*61046927SAndroid Build Coastguard Worker sha1_h, 327*61046927SAndroid Build Coastguard Worker ], 328*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 329*61046927SAndroid Build Coastguard Worker include_directories : [ 330*61046927SAndroid Build Coastguard Worker fs.relative_to(meson.project_build_root(), meson.current_source_dir()), 331*61046927SAndroid Build Coastguard Worker inc_gallium, 332*61046927SAndroid Build Coastguard Worker inc_gallium_aux, 333*61046927SAndroid Build Coastguard Worker inc_include, 334*61046927SAndroid Build Coastguard Worker inc_nir, 335*61046927SAndroid Build Coastguard Worker inc_src, 336*61046927SAndroid Build Coastguard Worker ], 337*61046927SAndroid Build Coastguard Worker c_args : [ 338*61046927SAndroid Build Coastguard Worker pre_args, 339*61046927SAndroid Build Coastguard Worker cl_c_args, 340*61046927SAndroid Build Coastguard Worker cc.get_supported_arguments('-Wno-missing-prototypes'), 341*61046927SAndroid Build Coastguard Worker ], 342*61046927SAndroid Build Coastguard Worker dependencies: [ 343*61046927SAndroid Build Coastguard Worker idep_nir_headers, 344*61046927SAndroid Build Coastguard Worker dep_valgrind, 345*61046927SAndroid Build Coastguard Worker ], 346*61046927SAndroid Build Coastguard Worker) 347*61046927SAndroid Build Coastguard Worker 348*61046927SAndroid Build Coastguard Workeridep_rusticl_gen = declare_dependency( 349*61046927SAndroid Build Coastguard Worker sources: [ 350*61046927SAndroid Build Coastguard Worker rusticl_opencl_bindings_rs, 351*61046927SAndroid Build Coastguard Worker ], 352*61046927SAndroid Build Coastguard Worker) 353*61046927SAndroid Build Coastguard Worker 354*61046927SAndroid Build Coastguard Workerlibmesa_rust_gen = static_library( 355*61046927SAndroid Build Coastguard Worker 'mesa_rust_gen', 356*61046927SAndroid Build Coastguard Worker rusticl_mesa_bindings[0], 357*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 358*61046927SAndroid Build Coastguard Worker link_with: [ 359*61046927SAndroid Build Coastguard Worker libgallium, 360*61046927SAndroid Build Coastguard Worker ], 361*61046927SAndroid Build Coastguard Worker dependencies: [ 362*61046927SAndroid Build Coastguard Worker idep_mesaclc, 363*61046927SAndroid Build Coastguard Worker ], 364*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 365*61046927SAndroid Build Coastguard Worker rust_args : [ 366*61046927SAndroid Build Coastguard Worker rusticl_gen_args, 367*61046927SAndroid Build Coastguard Worker ], 368*61046927SAndroid Build Coastguard Worker) 369*61046927SAndroid Build Coastguard Worker 370*61046927SAndroid Build Coastguard Workerlibc_rust_gen = static_library( 371*61046927SAndroid Build Coastguard Worker 'libc_rust_gen', 372*61046927SAndroid Build Coastguard Worker rusticl_libc_bindings_rs, 373*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 374*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 375*61046927SAndroid Build Coastguard Worker rust_args : [ 376*61046927SAndroid Build Coastguard Worker rusticl_gen_args, 377*61046927SAndroid Build Coastguard Worker ], 378*61046927SAndroid Build Coastguard Worker) 379*61046927SAndroid Build Coastguard Worker 380*61046927SAndroid Build Coastguard Workerlibmesa_rust_util = static_library( 381*61046927SAndroid Build Coastguard Worker 'mesa_rust_util', 382*61046927SAndroid Build Coastguard Worker [libmesa_rust_util_files], 383*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 384*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 385*61046927SAndroid Build Coastguard Worker rust_args : [ 386*61046927SAndroid Build Coastguard Worker rusticl_args, 387*61046927SAndroid Build Coastguard Worker ], 388*61046927SAndroid Build Coastguard Worker) 389*61046927SAndroid Build Coastguard Worker 390*61046927SAndroid Build Coastguard Workerlibmesa_rust = static_library( 391*61046927SAndroid Build Coastguard Worker 'mesa_rust', 392*61046927SAndroid Build Coastguard Worker [libmesa_rust_files], 393*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 394*61046927SAndroid Build Coastguard Worker rust_abi : 'rust', 395*61046927SAndroid Build Coastguard Worker rust_args : [ 396*61046927SAndroid Build Coastguard Worker rusticl_args, 397*61046927SAndroid Build Coastguard Worker ], 398*61046927SAndroid Build Coastguard Worker link_with : [ 399*61046927SAndroid Build Coastguard Worker libc_rust_gen, 400*61046927SAndroid Build Coastguard Worker libmesa_rust_gen, 401*61046927SAndroid Build Coastguard Worker libmesa_rust_util, 402*61046927SAndroid Build Coastguard Worker rusticl_c, 403*61046927SAndroid Build Coastguard Worker ] 404*61046927SAndroid Build Coastguard Worker) 405*61046927SAndroid Build Coastguard Worker 406*61046927SAndroid Build Coastguard Workerrusticl_proc_macros = rust.proc_macro( 407*61046927SAndroid Build Coastguard Worker 'rusticl_proc_macros', 408*61046927SAndroid Build Coastguard Worker [rusticl_proc_macros_files], 409*61046927SAndroid Build Coastguard Worker rust_args : [ 410*61046927SAndroid Build Coastguard Worker rusticl_args, 411*61046927SAndroid Build Coastguard Worker ], 412*61046927SAndroid Build Coastguard Worker) 413*61046927SAndroid Build Coastguard Worker 414*61046927SAndroid Build Coastguard Workerlibrusticl = static_library( 415*61046927SAndroid Build Coastguard Worker 'rusticl', 416*61046927SAndroid Build Coastguard Worker [rusticl_files], 417*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 418*61046927SAndroid Build Coastguard Worker rust_abi : 'c', 419*61046927SAndroid Build Coastguard Worker rust_args : [ 420*61046927SAndroid Build Coastguard Worker rusticl_args, 421*61046927SAndroid Build Coastguard Worker ], 422*61046927SAndroid Build Coastguard Worker link_with : [ 423*61046927SAndroid Build Coastguard Worker libc_rust_gen, 424*61046927SAndroid Build Coastguard Worker libmesa_rust, 425*61046927SAndroid Build Coastguard Worker libmesa_rust_gen, 426*61046927SAndroid Build Coastguard Worker libmesa_rust_util, 427*61046927SAndroid Build Coastguard Worker rusticl_llvm_gen, 428*61046927SAndroid Build Coastguard Worker rusticl_opencl_gen, 429*61046927SAndroid Build Coastguard Worker rusticl_proc_macros, 430*61046927SAndroid Build Coastguard Worker ], 431*61046927SAndroid Build Coastguard Worker dependencies : [ 432*61046927SAndroid Build Coastguard Worker idep_rusticl_gen, 433*61046927SAndroid Build Coastguard Worker ], 434*61046927SAndroid Build Coastguard Worker) 435