X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Futil%2Fmeson.build;h=7ea125e5ac8442c4dfc2c0924e29805a6324d446;hb=492d664be06ca538d4e5c1e380ab7966714a12a9;hp=8aa7af921e133271c2189e4f1ace393adfd97513;hpb=d2d70c3bb579f8a8e0b7431eff164e85ca7bc4ab;p=mesa.git diff --git a/src/util/meson.build b/src/util/meson.build index 8aa7af921e1..7ea125e5ac8 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -20,15 +20,21 @@ inc_util = include_directories('.') +subdir('format') subdir('xmlpool') files_mesa_util = files( + 'anon_file.h', + 'anon_file.c', 'bigmath.h', 'bitscan.c', 'bitscan.h', 'bitset.h', + 'blob.c', + 'blob.h', 'build_id.c', 'build_id.h', + 'compiler.h', 'crc32.c', 'crc32.h', 'dag.c', @@ -36,8 +42,11 @@ files_mesa_util = files( 'debug.h', 'disk_cache.c', 'disk_cache.h', + 'double.c', + 'double.h', 'fast_idiv_by_const.c', 'fast_idiv_by_const.h', + 'fnv1a.h', 'format_r11g11b10f.h', 'format_rgb9e5.h', 'format_srgb.h', @@ -55,6 +64,8 @@ files_mesa_util = files( 'os_file.c', 'os_misc.c', 'os_misc.h', + 'os_socket.c', + 'os_socket.h', 'u_process.c', 'u_process.h', 'sha1/sha1.c', @@ -76,6 +87,10 @@ files_mesa_util = files( 'simple_mtx.h', 'slab.c', 'slab.h', + 'softfloat.c', + 'softfloat.h', + 'sparse_array.c', + 'sparse_array.h', 'string_buffer.c', 'string_buffer.h', 'strndup.h', @@ -95,12 +110,17 @@ files_mesa_util = files( 'u_vector.h', 'u_math.c', 'u_math.h', + 'u_memset.h', + 'u_mm.c', + 'u_mm.h', 'u_debug.c', 'u_debug.h', + 'u_debug_memory.c', 'u_cpu_detect.c', 'u_cpu_detect.h', 'vma.c', 'vma.h', + 'xxhash.h', ) files_drirc = files('00-mesa-defaults.conf') @@ -132,21 +152,41 @@ format_srgb = custom_target( capture : true, ) -libmesa_util = static_library( +deps_for_libmesa_util = [ + dep_zlib, + dep_clock, + dep_thread, + dep_atomic, + dep_m, + dep_valgrind, + dep_zstd, +] + +if with_platform_android + deps_for_libmesa_util += dep_android +endif + +_libmesa_util = static_library( 'mesa_util', [files_mesa_util, format_srgb], - include_directories : inc_common, - dependencies : [dep_zlib, dep_clock, dep_thread, dep_atomic, dep_m], + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : deps_for_libmesa_util, + link_with: libmesa_format, c_args : [c_msvc_compat_args, c_vis_args], build_by_default : false ) -libxmlconfig = static_library( +idep_mesautil = declare_dependency( + link_with : _libmesa_util, + include_directories : inc_util, + dependencies : [dep_zlib, dep_clock, dep_thread, dep_atomic, dep_m], +) + +_libxmlconfig = static_library( 'xmlconfig', files_xmlconfig, - include_directories : inc_common, - link_with : libmesa_util, - dependencies : [dep_expat, dep_m], + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : [idep_mesautil, dep_expat, dep_m], c_args : [ c_msvc_compat_args, c_vis_args, '-DSYSCONFDIR="@0@"'.format( @@ -160,10 +200,8 @@ libxmlconfig = static_library( ) idep_xmlconfig = declare_dependency( - sources : xmlpool_options_h, - include_directories : inc_util, - link_with : libxmlconfig, - dependencies : dep_expat, + dependencies : [idep_xmlconfig_headers, dep_expat], + link_with : _libxmlconfig, ) if with_tests @@ -172,54 +210,115 @@ if with_tests executable( 'u_atomic_test', files('u_atomic_test.c'), - include_directories : inc_common, - link_with : libmesa_util, + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : idep_mesautil, c_args : [c_msvc_compat_args], ), suite : ['util'], ) test( - 'roundeven', + 'blob', executable( - 'roundeven_test', - files('roundeven_test.c'), - include_directories : inc_common, + 'blob_test', + files('blob_test.c'), + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : idep_mesautil, + c_args : [c_msvc_compat_args], + ), + suite : ['util'], + ) + + test( + 'rb_tree', + executable( + 'rb_tree_test', + files('rb_tree_test.c'), + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : idep_mesautil, c_args : [c_msvc_compat_args], - dependencies : [dep_m], ), suite : ['util'], ) test( - 'mesa-sha1', + 'roundeven', executable( - 'mesa-sha1_test', - files('mesa-sha1_test.c'), - include_directories : inc_common, - link_with : libmesa_util, + 'roundeven_test', + files('roundeven_test.c'), + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], c_args : [c_msvc_compat_args], + dependencies : [dep_m], ), suite : ['util'], + should_fail : meson.get_cross_property('xfail', '').contains('roundeven'), ) + # FIXME: this test crashes on windows + if host_machine.system() != 'windows' + test( + 'mesa-sha1', + executable( + 'mesa-sha1_test', + files('mesa-sha1_test.c'), + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + link_with : _libmesa_util, + c_args : [c_msvc_compat_args], + ), + suite : ['util'], + ) + endif + test( 'bitset', executable( 'bitset_test', files('bitset_test.cpp'), - include_directories : inc_common, - dependencies : [dep_thread, dep_dl, idep_gtest], - link_with : libmesa_util, + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : [idep_mesautil, idep_gtest], ), suite : ['util'], ) + process_test_exe = executable( + 'process_test', + files('process_test.c'), + include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : idep_mesautil, + c_args : [c_msvc_compat_args], + ) + if (host_machine.system() == 'windows' and build_machine.system() != 'windows') + # This conversion is only required on mingw crosscompilers, otherwise we hit at least one of these issues + # https://gitlab.freedesktop.org/mesa/mesa/-/issues/2690 + # https://gitlab.freedesktop.org/mesa/mesa/-/issues/2788 + prog_winepath = find_program('winepath') + process_test_exe_full_path = run_command( + prog_winepath, '-w', process_test_exe.full_path() + ).stdout().strip() + else + process_test_exe_full_path = process_test_exe.full_path() + endif + + test( + 'process', + process_test_exe, + suite : ['util'], + env: ['BUILD_FULL_PATH='+process_test_exe_full_path] + ) + subdir('tests/fast_idiv_by_const') subdir('tests/fast_urem_by_const') subdir('tests/hash_table') - subdir('tests/string_buffer') - subdir('tests/timespec') + if not (host_machine.system() == 'windows' and cc.get_id() == 'gcc') + # FIXME: These tests fail with mingw, but not with msvc. + subdir('tests/string_buffer') + endif + if cc.has_header('sys/time.h') # MinGW has this, but Vanilla windows doesn't + subdir('tests/timespec') + endif subdir('tests/vma') subdir('tests/set') + subdir('tests/sparse_array') + subdir('tests/format') + subdir('tests/vector') endif