Use BinaryProvider to install Cairo and Pango by giordano · Pull Request #292 · JuliaGraphics/Cairo.jl (original) (raw)
Regarding library names, BB allows you to define your own mapping, but the semantic meaning behind a LibraryProduct()
is becoming a little bit stricter; if you want to be able to access a library, you should define a LibraryProduct
for it via LibraryProduct(["filename1", "filename2", ...], :variablename)
. Then, after the recipe has been built, BB will look inside the prefix for libraries matching any of the given filenames, and when it finds one, it will bind it to :variablename
inside of the autogenerated JLL package (or deps.jl
, if you're using BinaryProvider).
EDIT: Hit "submit" a little too quickly.
For JLL packages, each LibraryProduct listed will be dlopen()
'ed, which means that libraries from other packages that want to link against the libraries in this package can find them; so in a sense, listing a LibraryProduct exports it such that it can be opened by other packages. If you don't list it, it may be loaded by one of your other LibraryProducts or not, it depends on the dependency graph of your package. So the best bet is, if another package requires a library from your package, then list it as a LibraryProduct
.
For BinaryProvider, this doesn't matter, because all libraries get duplicated for every installation, and they sit next to eachother in the same folder, so they can find eachother easily.