xref: /aosp_15_r20/external/mesa3d/src/util/blake3/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Workerfiles_blake3 = [
2*61046927SAndroid Build Coastguard Worker    'blake3.c',
3*61046927SAndroid Build Coastguard Worker    'blake3_dispatch.c',
4*61046927SAndroid Build Coastguard Worker    'blake3_portable.c'
5*61046927SAndroid Build Coastguard Worker]
6*61046927SAndroid Build Coastguard Workerblake3_defs = []
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Workeris_windows = host_machine.system() == 'windows'
9*61046927SAndroid Build Coastguard Workeris_msvc = meson.get_compiler('c').get_id() == 'msvc'
10*61046927SAndroid Build Coastguard Workercpu_family = host_machine.cpu_family()
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Workerblake3_x86_no_simd_defs = ['-DBLAKE3_NO_SSE2', '-DBLAKE3_NO_SSE41', '-DBLAKE3_NO_AVX2', '-DBLAKE3_NO_AVX512']
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard Workerif cpu_family == 'x86_64'
15*61046927SAndroid Build Coastguard Worker  if is_windows
16*61046927SAndroid Build Coastguard Worker    if is_msvc
17*61046927SAndroid Build Coastguard Worker      # An up-to-date version of Meson, not using the VS backend is needed.
18*61046927SAndroid Build Coastguard Worker      # See https://github.com/mesonbuild/meson/issues/11653
19*61046927SAndroid Build Coastguard Worker      if meson.backend() == 'ninja' and add_languages('masm', required : false)
20*61046927SAndroid Build Coastguard Worker        files_blake3 += ['blake3_sse2_x86-64_windows_msvc.masm', 'blake3_sse41_x86-64_windows_msvc.masm', 'blake3_avx2_x86-64_windows_msvc.masm', 'blake3_avx512_x86-64_windows_msvc.masm']
21*61046927SAndroid Build Coastguard Worker      else
22*61046927SAndroid Build Coastguard Worker        blake3_defs += blake3_x86_no_simd_defs
23*61046927SAndroid Build Coastguard Worker      endif
24*61046927SAndroid Build Coastguard Worker    else
25*61046927SAndroid Build Coastguard Worker      files_blake3 += ['blake3_sse2_x86-64_windows_gnu.S', 'blake3_sse41_x86-64_windows_gnu.S', 'blake3_avx2_x86-64_windows_gnu.S', 'blake3_avx512_x86-64_windows_gnu.S']
26*61046927SAndroid Build Coastguard Worker    endif
27*61046927SAndroid Build Coastguard Worker  else
28*61046927SAndroid Build Coastguard Worker    files_blake3 += ['blake3_sse2_x86-64_unix.S', 'blake3_sse41_x86-64_unix.S', 'blake3_avx2_x86-64_unix.S', 'blake3_avx512_x86-64_unix.S']
29*61046927SAndroid Build Coastguard Worker  endif
30*61046927SAndroid Build Coastguard Workerelif cpu_family == 'x86'
31*61046927SAndroid Build Coastguard Worker  # There are no assembly versions for 32-bit x86. Compiling the C versions require a different compilation flag per
32*61046927SAndroid Build Coastguard Worker  # file, which is not well supported by Meson. Leave SIMD support out for now.
33*61046927SAndroid Build Coastguard Worker  blake3_defs += blake3_x86_no_simd_defs
34*61046927SAndroid Build Coastguard Workerelif cpu_family == 'aarch64'
35*61046927SAndroid Build Coastguard Worker  files_blake3 += ['blake3_neon.c']
36*61046927SAndroid Build Coastguard Workerendif
37*61046927SAndroid Build Coastguard Worker
38*61046927SAndroid Build Coastguard Workerblake3 = static_library(
39*61046927SAndroid Build Coastguard Worker  'blake3',
40*61046927SAndroid Build Coastguard Worker  files_blake3,
41*61046927SAndroid Build Coastguard Worker  c_args : blake3_defs,
42*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
43*61046927SAndroid Build Coastguard Worker)
44*61046927SAndroid Build Coastguard Worker
45*61046927SAndroid Build Coastguard Workeridep_blake3 = declare_dependency(
46*61046927SAndroid Build Coastguard Worker  link_with : blake3,
47*61046927SAndroid Build Coastguard Worker)
48