@@ -8,16 +8,29 @@ 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
+ message (' Conda prefix: ' + conda_prefix)
12
+
13
+ # Add conda lib and include directories
12
14
add_project_link_arguments (' -L' + conda_prefix + ' /lib' , language : [' c' , ' cpp' ])
15
+ add_project_arguments (' -I' + conda_prefix + ' /include' , language : [' c' , ' cpp' ])
13
16
14
- sleef_dep = c. find_library ( ' sleef ' , dirs : [conda_prefix + ' /lib ' ])
15
- sleefquad_dep = c. find_library ( ' sleefquad ' , dirs : [conda_prefix + ' /lib ' ] )
17
+ # Try to find SLEEF using pkg-config first
18
+ sleef_dep = dependency ( ' sleef ' , required : false )
16
19
17
- if not sleef_dep.found() or not sleefquad_dep.found()
18
- error (' SLEEF library not found. Please ensure it is installed in your conda environment\n conda install sleef.' )
20
+ if not sleef_dep.found()
21
+ # If pkg-config fails, try to find the library manually
22
+ sleef_dep = c.find_library (' sleef' , dirs : [conda_prefix + ' /lib' ])
23
+ sleefquad_dep = c.find_library (' sleefquad' , dirs : [conda_prefix + ' /lib' ])
24
+
25
+ if not sleef_dep.found() or not sleefquad_dep.found()
26
+ error (' SLEEF library not found. Please ensure it is installed in your conda environment\n conda install sleef.' )
27
+ endif
28
+ else
29
+ sleefquad_dep = sleef_dep
19
30
endif
20
31
32
+ message (' SLEEF library found: ' + sleef_dep.found().to_string())
33
+
21
34
incdir_numpy = run_command (py,
22
35
[
23
36
' -c' ,
@@ -30,6 +43,7 @@ includes = include_directories(
30
43
[
31
44
incdir_numpy,
32
45
' quaddtype/src' ,
46
+ conda_prefix + ' /include' ,
33
47
]
34
48
)
35
49
@@ -57,10 +71,11 @@ py.install_sources(
57
71
)
58
72
59
73
py.extension_module(' _quaddtype_main' ,
60
- srcs,
61
- c_args : [' -g' , ' -O0' , ' -lsleef' , ' -lsleefquad' ],
62
- dependencies : [sleef_dep, sleefquad_dep],
63
- install : true ,
64
- subdir : ' quaddtype' ,
65
- include_directories : includes
74
+ srcs,
75
+ c_args : [' -g' , ' -O0' ],
76
+ link_args : [' -lsleef' , ' -lsleefquad' ],
77
+ dependencies : [sleef_dep, sleefquad_dep],
78
+ install : true ,
79
+ subdir : ' quaddtype' ,
80
+ include_directories : includes
66
81
)
0 commit comments