@@ -16,18 +16,19 @@ endif
1616qblas_dep = dependency (' qblas' , fallback : [' qblas' , ' qblas_dep' ])
1717
1818# Try to find SLEEF system-wide first, fall back to subproject if not found
19- sleef_dep = dependency (' sleef' , fallback : [' sleef' , ' sleef_dep' ], required : false )
19+ # Required SLEEF version (must match sleef.wrap revision)
20+ required_sleef_version = ' 3.9.0'
21+ sleef_dep = dependency (' sleef' , version : ' >=' + required_sleef_version, fallback : [' sleef' , ' sleef_dep' ], required : false )
2022
2123use_system_sleef = false
2224fallback_reason = ''
2325
24- if sleef_dep.found() and sleef_dep.type_name() != ' internal'
26+ if sleef_dep.found() and sleef_dep.type_name() != ' internal' and sleef_dep.version().startswith(required_sleef_version)
2527 # SLEEF found system-wide - verify quad-precision support
2628 cpp = meson .get_compiler(' cpp' )
2729 sleefquad_lib = cpp.find_library (' sleefquad' , required : false )
28- tlfloat_lib = cpp.find_library (' tlfloat' , required : false )
2930
30- if sleefquad_lib.found() and tlfloat_lib.found()
31+ if sleefquad_lib.found()
3132 sleefquad_test_code = '''
3233 #include <sleefquad.h>
3334
@@ -41,26 +42,27 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal'
4142 # this should compile and link
4243 quad_works = cpp.links(
4344 sleefquad_test_code,
44- dependencies : [sleef_dep, sleefquad_lib, tlfloat_lib ],
45+ dependencies : [sleef_dep, sleefquad_lib],
4546 name : ' SLEEF quad-precision support'
4647 )
4748
4849 if quad_works
4950 sleefquad_dep = declare_dependency (
5051 dependencies : [sleef_dep, sleefquad_lib]
5152 )
52- tlfloat_dep = declare_dependency (
53- dependencies : [tlfloat_lib]
54- )
5553 use_system_sleef = true
5654 else
5755 fallback_reason = ' System-wide SLEEF installation found but a test for quad precision support failed.'
5856 endif
5957 else
60- fallback_reason = ' System-wide SLEEF installation does not have a sleefquad library.'
58+ fallback_reason = ' System-wide SLEEF installation does not have the sleefquad library.'
6159 endif
6260else
63- fallback_reason = ' Cannot find system-wide SLEEF installation.'
61+ if sleef_dep.found() and sleef_dep.type_name() != ' internal'
62+ fallback_reason = ' System SLEEF version @0@ does not match required version @1@' .format(sleef_dep.version(), required_sleef_version)
63+ else
64+ fallback_reason = ' Cannot find system-wide SLEEF installation.'
65+ endif
6466endif
6567
6668if use_system_sleef
6971 sleef_subproj = subproject (' sleef' )
7072 sleef_dep = sleef_subproj.get_variable (' sleef_dep' )
7173 sleefquad_dep = sleef_subproj.get_variable (' sleefquad_dep' )
72- tlfloat_dep = sleef_subproj.get_variable (' tlfloat_dep' )
7374 warning (fallback_reason)
7475 message (' Proceeding with vendored SLEEF subproject instead' )
7576endif
@@ -93,7 +94,7 @@ message('Using NumPy version: @0@'.format(numpy_version))
9394npymath_path = incdir_numpy / ' ..' / ' lib'
9495npymath_lib = c.find_library (' npymath' , dirs : npymath_path)
9596
96- dependencies = [py_dep, qblas_dep, sleef_dep, sleefquad_dep, tlfloat_dep, npymath_lib]
97+ dependencies = [py_dep, qblas_dep, sleef_dep, sleefquad_dep, npymath_lib]
9798
9899# Add OpenMP dependency (optional, for threading)
99100openmp_dep = dependency (' openmp' , required : false , static : false )
0 commit comments