You have a few options. You can save the location of the library to a 
module-level const variable and use that in your ccall's, or use BinDeps to 
write the path of the found library (if any) to a generated file. I believe 
Dierckx.jl is an example of using the former, where the library just gets 
built or extracted to a known relative path w.r.t. the src of the package.


On Wednesday, June 22, 2016 at 10:22:08 PM UTC-4, Charles Ll wrote:
>
> Dear all,
>
> I use a Fortran code in my package Spectra.jl, it is working really 
> nicely. However, I still use the absolute library path in ccall. From 
> discussion in the Gitter, I know that I could use eval, but my ccall is in 
> a function so as eval works on global variables, it seems not appropriate...
>
> So my question is, how can we properly provide the shared library path to 
> the ccall function, with keeping in mind that this process needs some 
> flexibility, required for instance by the installation of the package on 
> different OS? This seems particularly important when trying to distribute 
> my package. For now, users have to change manually the path in the 
> installed package, which seems a bad situation...
>
> I'm sure that this has already done for Fortran library such as the LAPACK 
> library for instance, but despite having looked at the Github for 
> the LAPACK wrapper, I don't understand how this is implemented...
>
> So if you have any insides, this will be greatly appreciated!
>
> Best,
> Charles.
>
>
>

Reply via email to