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 Worker# inc_util only depends inc_include, this folder and nothing else under src 5*61046927SAndroid Build Coastguard Worker# so we use include_directories('..') instead of inc_src to tell the fact 6*61046927SAndroid Build Coastguard Worker# util is self contained. 7*61046927SAndroid Build Coastguard Workerinc_util = [inc_include, include_directories('..')] 8*61046927SAndroid Build Coastguard Worker 9*61046927SAndroid Build Coastguard Workerif with_platform_android 10*61046927SAndroid Build Coastguard Workersubdir('u_gralloc') 11*61046927SAndroid Build Coastguard Workerendif 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard Workersubdir('blake3') 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Workerfiles_mesa_util = files( 16*61046927SAndroid Build Coastguard Worker 'anon_file.h', 17*61046927SAndroid Build Coastguard Worker 'anon_file.c', 18*61046927SAndroid Build Coastguard Worker 'bigmath.h', 19*61046927SAndroid Build Coastguard Worker 'bitscan.c', 20*61046927SAndroid Build Coastguard Worker 'bitscan.h', 21*61046927SAndroid Build Coastguard Worker 'bitset.h', 22*61046927SAndroid Build Coastguard Worker 'blend.h', 23*61046927SAndroid Build Coastguard Worker 'blob.c', 24*61046927SAndroid Build Coastguard Worker 'blob.h', 25*61046927SAndroid Build Coastguard Worker 'box.h', 26*61046927SAndroid Build Coastguard Worker 'build_id.c', 27*61046927SAndroid Build Coastguard Worker 'build_id.h', 28*61046927SAndroid Build Coastguard Worker 'cnd_monotonic.c', 29*61046927SAndroid Build Coastguard Worker 'cnd_monotonic.h', 30*61046927SAndroid Build Coastguard Worker 'compiler.h', 31*61046927SAndroid Build Coastguard Worker 'compress.c', 32*61046927SAndroid Build Coastguard Worker 'compress.h', 33*61046927SAndroid Build Coastguard Worker 'thread_sched.c', 34*61046927SAndroid Build Coastguard Worker 'thread_sched.h', 35*61046927SAndroid Build Coastguard Worker 'crc32.c', 36*61046927SAndroid Build Coastguard Worker 'crc32.h', 37*61046927SAndroid Build Coastguard Worker 'dag.c', 38*61046927SAndroid Build Coastguard Worker 'disk_cache.c', 39*61046927SAndroid Build Coastguard Worker 'disk_cache.h', 40*61046927SAndroid Build Coastguard Worker 'disk_cache_os.c', 41*61046927SAndroid Build Coastguard Worker 'disk_cache_os.h', 42*61046927SAndroid Build Coastguard Worker 'double.c', 43*61046927SAndroid Build Coastguard Worker 'double.h', 44*61046927SAndroid Build Coastguard Worker 'enum_operators.h', 45*61046927SAndroid Build Coastguard Worker 'fast_idiv_by_const.c', 46*61046927SAndroid Build Coastguard Worker 'fast_idiv_by_const.h', 47*61046927SAndroid Build Coastguard Worker 'format_r11g11b10f.h', 48*61046927SAndroid Build Coastguard Worker 'format_rgb9e5.h', 49*61046927SAndroid Build Coastguard Worker 'format_srgb.h', 50*61046927SAndroid Build Coastguard Worker 'fossilize_db.c', 51*61046927SAndroid Build Coastguard Worker 'fossilize_db.h', 52*61046927SAndroid Build Coastguard Worker 'futex.c', 53*61046927SAndroid Build Coastguard Worker 'futex.h', 54*61046927SAndroid Build Coastguard Worker 'glheader.h', 55*61046927SAndroid Build Coastguard Worker 'half_float.c', 56*61046927SAndroid Build Coastguard Worker 'half_float.h', 57*61046927SAndroid Build Coastguard Worker 'hash_table.c', 58*61046927SAndroid Build Coastguard Worker 'hash_table.h', 59*61046927SAndroid Build Coastguard Worker 'helpers.c', 60*61046927SAndroid Build Coastguard Worker 'helpers.h', 61*61046927SAndroid Build Coastguard Worker 'hex.h', 62*61046927SAndroid Build Coastguard Worker 'u_idalloc.c', 63*61046927SAndroid Build Coastguard Worker 'u_idalloc.h', 64*61046927SAndroid Build Coastguard Worker 'list.h', 65*61046927SAndroid Build Coastguard Worker 'log.c', 66*61046927SAndroid Build Coastguard Worker 'macros.h', 67*61046927SAndroid Build Coastguard Worker 'memstream.c', 68*61046927SAndroid Build Coastguard Worker 'memstream.h', 69*61046927SAndroid Build Coastguard Worker 'mesa-sha1.c', 70*61046927SAndroid Build Coastguard Worker 'mesa-sha1.h', 71*61046927SAndroid Build Coastguard Worker 'mesa-blake3.c', 72*61046927SAndroid Build Coastguard Worker 'mesa-blake3.h', 73*61046927SAndroid Build Coastguard Worker 'os_time.c', 74*61046927SAndroid Build Coastguard Worker 'os_time.h', 75*61046927SAndroid Build Coastguard Worker 'os_file.c', 76*61046927SAndroid Build Coastguard Worker 'os_memory_fd.c', 77*61046927SAndroid Build Coastguard Worker 'os_misc.c', 78*61046927SAndroid Build Coastguard Worker 'os_misc.h', 79*61046927SAndroid Build Coastguard Worker 'os_socket.c', 80*61046927SAndroid Build Coastguard Worker 'os_socket.h', 81*61046927SAndroid Build Coastguard Worker 'ptralloc.h', 82*61046927SAndroid Build Coastguard Worker 'perf/u_trace.h', 83*61046927SAndroid Build Coastguard Worker 'perf/u_trace.c', 84*61046927SAndroid Build Coastguard Worker 'perf/u_trace_priv.h', 85*61046927SAndroid Build Coastguard Worker 'u_process.c', 86*61046927SAndroid Build Coastguard Worker 'u_process.h', 87*61046927SAndroid Build Coastguard Worker 'u_qsort.cpp', 88*61046927SAndroid Build Coastguard Worker 'u_qsort.h', 89*61046927SAndroid Build Coastguard Worker 'rwlock.c', 90*61046927SAndroid Build Coastguard Worker 'rwlock.h', 91*61046927SAndroid Build Coastguard Worker 'sha1/sha1.c', 92*61046927SAndroid Build Coastguard Worker 'sha1/sha1.h', 93*61046927SAndroid Build Coastguard Worker 'ralloc.c', 94*61046927SAndroid Build Coastguard Worker 'ralloc.h', 95*61046927SAndroid Build Coastguard Worker 'rand_xor.c', 96*61046927SAndroid Build Coastguard Worker 'rand_xor.h', 97*61046927SAndroid Build Coastguard Worker 'rb_tree.c', 98*61046927SAndroid Build Coastguard Worker 'rb_tree.h', 99*61046927SAndroid Build Coastguard Worker 'register_allocate.c', 100*61046927SAndroid Build Coastguard Worker 'register_allocate.h', 101*61046927SAndroid Build Coastguard Worker 'rgtc.c', 102*61046927SAndroid Build Coastguard Worker 'rgtc.h', 103*61046927SAndroid Build Coastguard Worker 'rounding.h', 104*61046927SAndroid Build Coastguard Worker 'set.c', 105*61046927SAndroid Build Coastguard Worker 'set.h', 106*61046927SAndroid Build Coastguard Worker 'simple_mtx.c', 107*61046927SAndroid Build Coastguard Worker 'simple_mtx.h', 108*61046927SAndroid Build Coastguard Worker 'slab.c', 109*61046927SAndroid Build Coastguard Worker 'slab.h', 110*61046927SAndroid Build Coastguard Worker 'softfloat.c', 111*61046927SAndroid Build Coastguard Worker 'softfloat.h', 112*61046927SAndroid Build Coastguard Worker 'sparse_array.c', 113*61046927SAndroid Build Coastguard Worker 'sparse_array.h', 114*61046927SAndroid Build Coastguard Worker 'string_buffer.c', 115*61046927SAndroid Build Coastguard Worker 'string_buffer.h', 116*61046927SAndroid Build Coastguard Worker 'strndup.h', 117*61046927SAndroid Build Coastguard Worker 'strtod.c', 118*61046927SAndroid Build Coastguard Worker 'strtod.h', 119*61046927SAndroid Build Coastguard Worker 'texcompress_astc_luts.cpp', 120*61046927SAndroid Build Coastguard Worker 'texcompress_astc_luts.h', 121*61046927SAndroid Build Coastguard Worker 'texcompress_astc_luts_wrap.cpp', 122*61046927SAndroid Build Coastguard Worker 'texcompress_astc_luts_wrap.h', 123*61046927SAndroid Build Coastguard Worker 'timespec.h', 124*61046927SAndroid Build Coastguard Worker 'u_atomic.c', 125*61046927SAndroid Build Coastguard Worker 'u_atomic.h', 126*61046927SAndroid Build Coastguard Worker 'u_call_once.c', 127*61046927SAndroid Build Coastguard Worker 'u_call_once.h', 128*61046927SAndroid Build Coastguard Worker 'u_dl.c', 129*61046927SAndroid Build Coastguard Worker 'u_dl.h', 130*61046927SAndroid Build Coastguard Worker 'u_dynarray.c', 131*61046927SAndroid Build Coastguard Worker 'u_dynarray.h', 132*61046927SAndroid Build Coastguard Worker 'u_endian.h', 133*61046927SAndroid Build Coastguard Worker 'u_hash_table.c', 134*61046927SAndroid Build Coastguard Worker 'u_hash_table.h', 135*61046927SAndroid Build Coastguard Worker 'u_pointer.h', 136*61046927SAndroid Build Coastguard Worker 'u_queue.c', 137*61046927SAndroid Build Coastguard Worker 'u_queue.h', 138*61046927SAndroid Build Coastguard Worker 'u_string.h', 139*61046927SAndroid Build Coastguard Worker 'u_thread.c', 140*61046927SAndroid Build Coastguard Worker 'u_thread.h', 141*61046927SAndroid Build Coastguard Worker 'u_vector.c', 142*61046927SAndroid Build Coastguard Worker 'u_vector.h', 143*61046927SAndroid Build Coastguard Worker 'u_math.c', 144*61046927SAndroid Build Coastguard Worker 'u_math.h', 145*61046927SAndroid Build Coastguard Worker 'u_memset.h', 146*61046927SAndroid Build Coastguard Worker 'u_mm.c', 147*61046927SAndroid Build Coastguard Worker 'u_mm.h', 148*61046927SAndroid Build Coastguard Worker 'u_pack_color.h', 149*61046927SAndroid Build Coastguard Worker 'u_debug.c', 150*61046927SAndroid Build Coastguard Worker 'u_debug.h', 151*61046927SAndroid Build Coastguard Worker 'u_debug_memory.c', 152*61046927SAndroid Build Coastguard Worker 'u_cpu_detect.c', 153*61046927SAndroid Build Coastguard Worker 'u_cpu_detect.h', 154*61046927SAndroid Build Coastguard Worker 'u_printf.c', 155*61046927SAndroid Build Coastguard Worker 'u_printf.h', 156*61046927SAndroid Build Coastguard Worker 'u_worklist.c', 157*61046927SAndroid Build Coastguard Worker 'u_worklist.h', 158*61046927SAndroid Build Coastguard Worker 'vl_vlc.h', 159*61046927SAndroid Build Coastguard Worker 'vl_rbsp.h', 160*61046927SAndroid Build Coastguard Worker 'vl_zscan_data.h', 161*61046927SAndroid Build Coastguard Worker 'vl_zscan_data.c', 162*61046927SAndroid Build Coastguard Worker 'vma.c', 163*61046927SAndroid Build Coastguard Worker 'vma.h', 164*61046927SAndroid Build Coastguard Worker 'xxhash.h', 165*61046927SAndroid Build Coastguard Worker 'mesa_cache_db.c', 166*61046927SAndroid Build Coastguard Worker 'mesa_cache_db.h', 167*61046927SAndroid Build Coastguard Worker 'mesa_cache_db_multipart.c', 168*61046927SAndroid Build Coastguard Worker 'mesa_cache_db_multipart.h', 169*61046927SAndroid Build Coastguard Worker) 170*61046927SAndroid Build Coastguard Worker 171*61046927SAndroid Build Coastguard Workerfiles_drirc = files('00-mesa-defaults.conf') 172*61046927SAndroid Build Coastguard Worker 173*61046927SAndroid Build Coastguard Workerif with_amd_vk 174*61046927SAndroid Build Coastguard Worker files_drirc += files('00-radv-defaults.conf') 175*61046927SAndroid Build Coastguard Workerendif 176*61046927SAndroid Build Coastguard Worker 177*61046927SAndroid Build Coastguard Workerif with_tests 178*61046927SAndroid Build Coastguard Worker prog_xmllint = find_program('xmllint', required : false, native : true) 179*61046927SAndroid Build Coastguard Worker if prog_xmllint.found() 180*61046927SAndroid Build Coastguard Worker test( 181*61046927SAndroid Build Coastguard Worker 'drirc xml validation', 182*61046927SAndroid Build Coastguard Worker prog_xmllint, 183*61046927SAndroid Build Coastguard Worker args : ['--noout', '--valid', files_drirc], 184*61046927SAndroid Build Coastguard Worker suite : ['util'], 185*61046927SAndroid Build Coastguard Worker ) 186*61046927SAndroid Build Coastguard Worker endif 187*61046927SAndroid Build Coastguard Workerendif 188*61046927SAndroid Build Coastguard Worker 189*61046927SAndroid Build Coastguard Workerfiles_xmlconfig = files( 190*61046927SAndroid Build Coastguard Worker 'xmlconfig.c', 191*61046927SAndroid Build Coastguard Worker 'xmlconfig.h', 192*61046927SAndroid Build Coastguard Worker) 193*61046927SAndroid Build Coastguard Worker 194*61046927SAndroid Build Coastguard Workerfiles_xmlconfig += custom_target( 195*61046927SAndroid Build Coastguard Worker 'driconf_static.h', 196*61046927SAndroid Build Coastguard Worker input: ['driconf_static.py'] + files_drirc, 197*61046927SAndroid Build Coastguard Worker output: 'driconf_static.h', 198*61046927SAndroid Build Coastguard Worker command: [ 199*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT@', '@OUTPUT@', 200*61046927SAndroid Build Coastguard Worker ], 201*61046927SAndroid Build Coastguard Worker) 202*61046927SAndroid Build Coastguard Worker 203*61046927SAndroid Build Coastguard Workerformat_srgb = custom_target( 204*61046927SAndroid Build Coastguard Worker 'format_srgb', 205*61046927SAndroid Build Coastguard Worker input : ['format_srgb.py'], 206*61046927SAndroid Build Coastguard Worker output : 'format_srgb.c', 207*61046927SAndroid Build Coastguard Worker command : [prog_python, '@INPUT0@'], 208*61046927SAndroid Build Coastguard Worker capture : true, 209*61046927SAndroid Build Coastguard Worker) 210*61046927SAndroid Build Coastguard Worker 211*61046927SAndroid Build Coastguard Worker# subdir format provide files_mesa_format 212*61046927SAndroid Build Coastguard Workersubdir('format') 213*61046927SAndroid Build Coastguard Workerfiles_mesa_util += files_mesa_format 214*61046927SAndroid Build Coastguard Worker 215*61046927SAndroid Build Coastguard Workerdeps_for_libmesa_util = [ 216*61046927SAndroid Build Coastguard Worker dep_zlib, 217*61046927SAndroid Build Coastguard Worker dep_clock, 218*61046927SAndroid Build Coastguard Worker dep_thread, 219*61046927SAndroid Build Coastguard Worker dep_atomic, 220*61046927SAndroid Build Coastguard Worker dep_m, 221*61046927SAndroid Build Coastguard Worker dep_valgrind, 222*61046927SAndroid Build Coastguard Worker dep_zstd, 223*61046927SAndroid Build Coastguard Worker dep_dl, 224*61046927SAndroid Build Coastguard Worker dep_unwind, 225*61046927SAndroid Build Coastguard Worker dep_futex, 226*61046927SAndroid Build Coastguard Worker idep_blake3, 227*61046927SAndroid Build Coastguard Worker idep_mesautilc11, 228*61046927SAndroid Build Coastguard Worker idep_mesautilformat, 229*61046927SAndroid Build Coastguard Worker] 230*61046927SAndroid Build Coastguard Worker 231*61046927SAndroid Build Coastguard Workerif with_platform_android 232*61046927SAndroid Build Coastguard Worker deps_for_libmesa_util += dep_android 233*61046927SAndroid Build Coastguard Worker files_debug_stack = files('u_debug_stack_android.cpp') 234*61046927SAndroid Build Coastguard Workerelse 235*61046927SAndroid Build Coastguard Worker files_debug_stack = files( 236*61046927SAndroid Build Coastguard Worker 'dbghelp.h', 237*61046927SAndroid Build Coastguard Worker 'u_debug_stack.c', 238*61046927SAndroid Build Coastguard Worker 'u_debug_symbol.c', 239*61046927SAndroid Build Coastguard Worker 'u_debug_symbol.h', 240*61046927SAndroid Build Coastguard Worker ) 241*61046927SAndroid Build Coastguard Workerendif 242*61046927SAndroid Build Coastguard Worker 243*61046927SAndroid Build Coastguard Workerif with_platform_haiku 244*61046927SAndroid Build Coastguard Worker deps_for_libmesa_util += dep_network 245*61046927SAndroid Build Coastguard Workerendif 246*61046927SAndroid Build Coastguard Worker 247*61046927SAndroid Build Coastguard Workerif with_perfetto 248*61046927SAndroid Build Coastguard Worker files_mesa_util += files( 249*61046927SAndroid Build Coastguard Worker 'perf/u_perfetto.cc', 250*61046927SAndroid Build Coastguard Worker 'perf/u_perfetto.h', 251*61046927SAndroid Build Coastguard Worker ) 252*61046927SAndroid Build Coastguard Worker deps_for_libmesa_util += dep_perfetto 253*61046927SAndroid Build Coastguard Workerendif 254*61046927SAndroid Build Coastguard Worker 255*61046927SAndroid Build Coastguard Workerif with_gpuvis 256*61046927SAndroid Build Coastguard Worker files_mesa_util += files( 257*61046927SAndroid Build Coastguard Worker 'perf/u_gpuvis.c', 258*61046927SAndroid Build Coastguard Worker 'perf/u_gpuvis.h', 259*61046927SAndroid Build Coastguard Worker 'perf/gpuvis_trace_utils.h', 260*61046927SAndroid Build Coastguard Worker ) 261*61046927SAndroid Build Coastguard Workerendif 262*61046927SAndroid Build Coastguard Worker 263*61046927SAndroid Build Coastguard Workeru_trace_py = files('perf/u_trace.py') 264*61046927SAndroid Build Coastguard Worker 265*61046927SAndroid Build Coastguard Workerlibmesa_util_sse41 = static_library( 266*61046927SAndroid Build Coastguard Worker 'mesa_util_sse41', 267*61046927SAndroid Build Coastguard Worker files('streaming-load-memcpy.c'), 268*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args, sse41_args], 269*61046927SAndroid Build Coastguard Worker include_directories : [inc_util], 270*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 271*61046927SAndroid Build Coastguard Worker) 272*61046927SAndroid Build Coastguard Worker 273*61046927SAndroid Build Coastguard Worker_libmesa_util = static_library( 274*61046927SAndroid Build Coastguard Worker 'mesa_util', 275*61046927SAndroid Build Coastguard Worker [files_mesa_util, files_debug_stack, format_srgb], 276*61046927SAndroid Build Coastguard Worker include_directories : [inc_util, include_directories('format')], 277*61046927SAndroid Build Coastguard Worker dependencies : deps_for_libmesa_util, 278*61046927SAndroid Build Coastguard Worker link_with: [libmesa_util_sse41], 279*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args], 280*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 281*61046927SAndroid Build Coastguard Worker build_by_default : false 282*61046927SAndroid Build Coastguard Worker) 283*61046927SAndroid Build Coastguard Worker 284*61046927SAndroid Build Coastguard Workeridep_mesautil = declare_dependency( 285*61046927SAndroid Build Coastguard Worker link_with : _libmesa_util, 286*61046927SAndroid Build Coastguard Worker include_directories : [inc_util], 287*61046927SAndroid Build Coastguard Worker dependencies : deps_for_libmesa_util, 288*61046927SAndroid Build Coastguard Worker) 289*61046927SAndroid Build Coastguard Worker 290*61046927SAndroid Build Coastguard Worker# Only install the drirc file if we build with support for parsing drirc files 291*61046927SAndroid Build Coastguard Workerif use_xmlconfig 292*61046927SAndroid Build Coastguard Worker install_data(files_drirc, install_dir : join_paths(get_option('datadir'), 'drirc.d'), install_tag : 'runtime') 293*61046927SAndroid Build Coastguard Workerendif 294*61046927SAndroid Build Coastguard Worker 295*61046927SAndroid Build Coastguard Workerxmlconfig_deps = [] 296*61046927SAndroid Build Coastguard Workerif use_xmlconfig 297*61046927SAndroid Build Coastguard Worker xmlconfig_deps += dep_expat 298*61046927SAndroid Build Coastguard Workerendif 299*61046927SAndroid Build Coastguard Workerxmlconfig_deps += dep_regex 300*61046927SAndroid Build Coastguard Worker 301*61046927SAndroid Build Coastguard Workerc_xmlconfig_arg = '-DWITH_XMLCONFIG=@0@'.format(use_xmlconfig.to_int()) 302*61046927SAndroid Build Coastguard Worker 303*61046927SAndroid Build Coastguard Worker_libxmlconfig = static_library( 304*61046927SAndroid Build Coastguard Worker 'xmlconfig', 305*61046927SAndroid Build Coastguard Worker files_xmlconfig, 306*61046927SAndroid Build Coastguard Worker dependencies : [idep_mesautil, dep_m, xmlconfig_deps], 307*61046927SAndroid Build Coastguard Worker c_args : [ 308*61046927SAndroid Build Coastguard Worker c_msvc_compat_args, 309*61046927SAndroid Build Coastguard Worker c_xmlconfig_arg, 310*61046927SAndroid Build Coastguard Worker '-DSYSCONFDIR="@0@"'.format( 311*61046927SAndroid Build Coastguard Worker join_paths(get_option('prefix'), get_option('sysconfdir')) 312*61046927SAndroid Build Coastguard Worker ), 313*61046927SAndroid Build Coastguard Worker '-DDATADIR="@0@"'.format( 314*61046927SAndroid Build Coastguard Worker join_paths(get_option('prefix'), get_option('datadir')) 315*61046927SAndroid Build Coastguard Worker ), 316*61046927SAndroid Build Coastguard Worker ], 317*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 318*61046927SAndroid Build Coastguard Worker build_by_default : false, 319*61046927SAndroid Build Coastguard Worker) 320*61046927SAndroid Build Coastguard Worker 321*61046927SAndroid Build Coastguard Workeridep_xmlconfig = declare_dependency( 322*61046927SAndroid Build Coastguard Worker dependencies : xmlconfig_deps, 323*61046927SAndroid Build Coastguard Worker link_with : _libxmlconfig, 324*61046927SAndroid Build Coastguard Worker) 325*61046927SAndroid Build Coastguard Worker 326*61046927SAndroid Build Coastguard Workerfiles_xxd = files('xxd.py') 327*61046927SAndroid Build Coastguard Workerglsl2spirv = files('glsl2spirv.py') 328*61046927SAndroid Build Coastguard Worker 329*61046927SAndroid Build Coastguard Workerdevenv.set('DRIRC_CONFIGDIR', meson.current_source_dir()) 330*61046927SAndroid Build Coastguard Worker 331*61046927SAndroid Build Coastguard Worker_libparson = static_library( 332*61046927SAndroid Build Coastguard Worker 'parson', 333*61046927SAndroid Build Coastguard Worker ['parson.c', 'parson.h'], 334*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 335*61046927SAndroid Build Coastguard Worker build_by_default : false, 336*61046927SAndroid Build Coastguard Worker) 337*61046927SAndroid Build Coastguard Worker 338*61046927SAndroid Build Coastguard Workeridep_parson = declare_dependency( 339*61046927SAndroid Build Coastguard Worker link_with : _libparson, 340*61046927SAndroid Build Coastguard Worker) 341*61046927SAndroid Build Coastguard Worker 342*61046927SAndroid Build Coastguard Workerif with_tests 343*61046927SAndroid Build Coastguard Worker # DRI_CONF macros use designated initializers (required for union 344*61046927SAndroid Build Coastguard Worker # initializaiton), so we need c++2a since gtest forces us to use c++ 345*61046927SAndroid Build Coastguard Worker if host_machine.system() != 'windows' and cpp.has_argument('-std=c++2a') 346*61046927SAndroid Build Coastguard Worker test('xmlconfig', 347*61046927SAndroid Build Coastguard Worker executable('xmlconfig_test', 348*61046927SAndroid Build Coastguard Worker files('tests/xmlconfig.cpp'), 349*61046927SAndroid Build Coastguard Worker dependencies : [idep_mesautil, idep_xmlconfig, idep_gtest], 350*61046927SAndroid Build Coastguard Worker override_options : ['cpp_std=c++2a'], 351*61046927SAndroid Build Coastguard Worker cpp_args: ['-Wno-write-strings', c_xmlconfig_arg] 352*61046927SAndroid Build Coastguard Worker ), 353*61046927SAndroid Build Coastguard Worker suite : ['util'], 354*61046927SAndroid Build Coastguard Worker env: ['HOME=' + join_paths(meson.current_source_dir(), 355*61046927SAndroid Build Coastguard Worker 'tests', 'drirc_home'), 356*61046927SAndroid Build Coastguard Worker 'DRIRC_CONFIGDIR=' + join_paths(meson.current_source_dir(), 357*61046927SAndroid Build Coastguard Worker 'tests', 'drirc_configdir')], 358*61046927SAndroid Build Coastguard Worker protocol : 'gtest', 359*61046927SAndroid Build Coastguard Worker ) 360*61046927SAndroid Build Coastguard Worker endif 361*61046927SAndroid Build Coastguard Worker 362*61046927SAndroid Build Coastguard Worker files_util_tests = files( 363*61046927SAndroid Build Coastguard Worker 'tests/bitset_test.cpp', 364*61046927SAndroid Build Coastguard Worker 'tests/blob_test.cpp', 365*61046927SAndroid Build Coastguard Worker 'tests/dag_test.cpp', 366*61046927SAndroid Build Coastguard Worker 'tests/fast_idiv_by_const_test.cpp', 367*61046927SAndroid Build Coastguard Worker 'tests/fast_urem_by_const_test.cpp', 368*61046927SAndroid Build Coastguard Worker 'tests/gc_alloc_tests.cpp', 369*61046927SAndroid Build Coastguard Worker 'tests/half_float_test.cpp', 370*61046927SAndroid Build Coastguard Worker 'tests/int_min_max.cpp', 371*61046927SAndroid Build Coastguard Worker 'tests/linear_test.cpp', 372*61046927SAndroid Build Coastguard Worker 'tests/mesa-sha1_test.cpp', 373*61046927SAndroid Build Coastguard Worker 'tests/os_mman_test.cpp', 374*61046927SAndroid Build Coastguard Worker 'tests/perf/u_trace_test.cpp', 375*61046927SAndroid Build Coastguard Worker 'tests/rb_tree_test.cpp', 376*61046927SAndroid Build Coastguard Worker 'tests/register_allocate_test.cpp', 377*61046927SAndroid Build Coastguard Worker 'tests/roundeven_test.cpp', 378*61046927SAndroid Build Coastguard Worker 'tests/set_test.cpp', 379*61046927SAndroid Build Coastguard Worker 'tests/string_buffer_test.cpp', 380*61046927SAndroid Build Coastguard Worker 'tests/timespec_test.cpp', 381*61046927SAndroid Build Coastguard Worker 'tests/u_atomic_test.cpp', 382*61046927SAndroid Build Coastguard Worker 'tests/u_call_once_test.cpp', 383*61046927SAndroid Build Coastguard Worker 'tests/u_debug_stack_test.cpp', 384*61046927SAndroid Build Coastguard Worker 'tests/u_debug_test.cpp', 385*61046927SAndroid Build Coastguard Worker 'tests/u_printf_test.cpp', 386*61046927SAndroid Build Coastguard Worker 'tests/u_qsort_test.cpp', 387*61046927SAndroid Build Coastguard Worker 'tests/vector_test.cpp', 388*61046927SAndroid Build Coastguard Worker ) 389*61046927SAndroid Build Coastguard Worker 390*61046927SAndroid Build Coastguard Worker # FIXME: this test cause a big timeout on MacOS 391*61046927SAndroid Build Coastguard Worker if host_machine.system() != 'darwin' 392*61046927SAndroid Build Coastguard Worker files_util_tests += files( 393*61046927SAndroid Build Coastguard Worker 'tests/sparse_array_test.cpp', 394*61046927SAndroid Build Coastguard Worker ) 395*61046927SAndroid Build Coastguard Worker endif 396*61046927SAndroid Build Coastguard Worker 397*61046927SAndroid Build Coastguard Worker if with_shader_cache 398*61046927SAndroid Build Coastguard Worker files_util_tests += files( 399*61046927SAndroid Build Coastguard Worker 'tests/cache_test.cpp', 400*61046927SAndroid Build Coastguard Worker ) 401*61046927SAndroid Build Coastguard Worker endif 402*61046927SAndroid Build Coastguard Worker 403*61046927SAndroid Build Coastguard Worker test( 404*61046927SAndroid Build Coastguard Worker 'util_tests', 405*61046927SAndroid Build Coastguard Worker executable( 406*61046927SAndroid Build Coastguard Worker 'util_tests', 407*61046927SAndroid Build Coastguard Worker files_util_tests, 408*61046927SAndroid Build Coastguard Worker dependencies : [idep_mesautil, idep_gtest], 409*61046927SAndroid Build Coastguard Worker ), 410*61046927SAndroid Build Coastguard Worker suite : ['util'], 411*61046927SAndroid Build Coastguard Worker protocol : 'gtest', 412*61046927SAndroid Build Coastguard Worker is_parallel : false, 413*61046927SAndroid Build Coastguard Worker timeout : 180, 414*61046927SAndroid Build Coastguard Worker ) 415*61046927SAndroid Build Coastguard Worker 416*61046927SAndroid Build Coastguard Worker process_test_exe = executable( 417*61046927SAndroid Build Coastguard Worker 'process_test', 418*61046927SAndroid Build Coastguard Worker files('tests/process_test.c'), 419*61046927SAndroid Build Coastguard Worker dependencies : idep_mesautil, 420*61046927SAndroid Build Coastguard Worker c_args : [c_msvc_compat_args], 421*61046927SAndroid Build Coastguard Worker ) 422*61046927SAndroid Build Coastguard Worker if (host_machine.system() == 'windows' and build_machine.system() != 'windows') 423*61046927SAndroid Build Coastguard Worker # This conversion is only required on mingw crosscompilers, otherwise we hit at least one of these issues 424*61046927SAndroid Build Coastguard Worker # https://gitlab.freedesktop.org/mesa/mesa/-/issues/2690 425*61046927SAndroid Build Coastguard Worker # https://gitlab.freedesktop.org/mesa/mesa/-/issues/2788 426*61046927SAndroid Build Coastguard Worker prog_winepath = find_program('winepath') 427*61046927SAndroid Build Coastguard Worker process_test_exe_full_path = run_command( 428*61046927SAndroid Build Coastguard Worker prog_winepath, '-w', process_test_exe.full_path(), 429*61046927SAndroid Build Coastguard Worker check : true 430*61046927SAndroid Build Coastguard Worker ).stdout().strip() 431*61046927SAndroid Build Coastguard Worker else 432*61046927SAndroid Build Coastguard Worker process_test_exe_full_path = process_test_exe.full_path() 433*61046927SAndroid Build Coastguard Worker endif 434*61046927SAndroid Build Coastguard Worker 435*61046927SAndroid Build Coastguard Worker test( 436*61046927SAndroid Build Coastguard Worker 'process', 437*61046927SAndroid Build Coastguard Worker process_test_exe, 438*61046927SAndroid Build Coastguard Worker suite : ['util'], 439*61046927SAndroid Build Coastguard Worker env: ['BUILD_FULL_PATH='+process_test_exe_full_path] 440*61046927SAndroid Build Coastguard Worker ) 441*61046927SAndroid Build Coastguard Worker 442*61046927SAndroid Build Coastguard Worker test( 443*61046927SAndroid Build Coastguard Worker 'process_with_overrides', 444*61046927SAndroid Build Coastguard Worker process_test_exe, 445*61046927SAndroid Build Coastguard Worker suite : ['util'], 446*61046927SAndroid Build Coastguard Worker env: [ 447*61046927SAndroid Build Coastguard Worker 'BUILD_FULL_PATH='+process_test_exe_full_path, 448*61046927SAndroid Build Coastguard Worker 'MESA_PROCESS_NAME=hello', 449*61046927SAndroid Build Coastguard Worker ] 450*61046927SAndroid Build Coastguard Worker ) 451*61046927SAndroid Build Coastguard Worker 452*61046927SAndroid Build Coastguard Worker subdir('tests/hash_table') 453*61046927SAndroid Build Coastguard Worker subdir('tests/vma') 454*61046927SAndroid Build Coastguard Worker subdir('tests/format') 455*61046927SAndroid Build Coastguard Workerendif 456