@@ -8,30 +8,33 @@ c = meson.get_compiler('c')
8
8
# Get the conda prefix
9
9
conda_prefix = run_command (' bash' , ' -c' , ' echo $CONDA_PREFIX' , check : true ).stdout().strip()
10
10
11
- # Add conda lib directory to library path
11
+ # Add conda lib and include directories
12
12
add_project_link_arguments (' -L' + conda_prefix + ' /lib' , language : [' c' , ' cpp' ])
13
- add_project_link_arguments (' -I' + conda_prefix + ' /include' , language : [' c' , ' cpp' ])
13
+ add_project_arguments (' -I' + conda_prefix + ' /include' , language : [' c' , ' cpp' ])
14
14
15
- sleef_dep = c.find_library (' sleef' , dirs : [conda_prefix + ' /lib' ])
16
- sleefquad_dep = c.find_library (' sleefquad' , dirs : [conda_prefix + ' /lib' ])
15
+ # Use pkg-config to find SLEEF
16
+ pkg = import (' pkgconfig' )
17
+ sleef_dep = pkg.dependency (' sleef' , required : false )
17
18
18
- if not sleef_dep.found() or not sleefquad_dep.found()
19
- error (' SLEEF library not found. Please ensure it is installed in your conda environment\n conda install sleef.' )
19
+ if not sleef_dep.found()
20
+ # Fallback to manual library detection
21
+ sleef_dep = c.find_library (' sleef' , dirs : [conda_prefix + ' /lib' ])
22
+ sleefquad_dep = c.find_library (' sleefquad' , dirs : [conda_prefix + ' /lib' ])
23
+
24
+ if not sleef_dep.found() or not sleefquad_dep.found()
25
+ error (' SLEEF library not found. Please ensure it is installed in your conda environment.' )
26
+ endif
27
+ else
28
+ sleefquad_dep = sleef_dep
20
29
endif
21
30
22
31
incdir_numpy = run_command (py,
23
- [
24
- ' -c' ,
25
- ' import numpy; import os; print(os.path.relpath(numpy.get_include()))'
26
- ],
32
+ [' -c' , ' import numpy; import os; print(os.path.relpath(numpy.get_include()))' ],
27
33
check : true
28
34
).stdout().strip()
29
35
30
36
includes = include_directories (
31
- [
32
- incdir_numpy,
33
- ' quaddtype/src' ,
34
- ]
37
+ [incdir_numpy, ' quaddtype/src' ]
35
38
)
36
39
37
40
srcs = [
@@ -50,18 +53,15 @@ srcs = [
50
53
]
51
54
52
55
py.install_sources(
53
- [
54
- ' quaddtype/__init__.py' ,
55
- ],
56
+ [' quaddtype/__init__.py' ],
56
57
subdir : ' quaddtype' ,
57
58
pure : false
58
59
)
59
60
60
61
py.extension_module(' _quaddtype_main' ,
61
- srcs,
62
- c_args : [' -g' , ' -O0' , ' -lsleef' , ' -lsleefquad' ],
63
- dependencies : [sleef_dep, sleefquad_dep],
64
- install : true ,
65
- subdir : ' quaddtype' ,
66
- include_directories : includes
62
+ srcs,
63
+ dependencies : [sleef_dep, sleefquad_dep],
64
+ install : true ,
65
+ subdir : ' quaddtype' ,
66
+ include_directories : includes
67
67
)
0 commit comments