Custom JLL wrappers

I’m working on a (Centos7) system where I can’t download prebuilt binaries. Rather, I need to build all the binaries from source using an internal build tool.

Julia itself runs well. So long as my dependent packages contain sources that are 100% Julia code, those work well too! (This requires some finagling with the JULIA_LOAD_PATH since I can’t use Pkg to download files to default locations)

However, many packages rely on various C/C++ libraries. Normally, this wouldn’t be a problem, as I can build all those .so files myself and link to them!

Except Julia has appeared to converge on a JLL solution, where all packages instead depend on JLL libraries which seem to be pure Julia wrappers for the prebuilt binaries themselves.

As I mentioned, I can’t simply install these JLL packages on my system, as that would require downloading prebuilt binaries. Is there a recommended way for me to write my own JLL wrapper for binaries I build myself? Preferably, is there a way to streamline this for lots of libraries?


If the question is how to point jlls to use your own binaries, see JLL packages · BinaryBuilder.jl. Note that there are two alternative methods, one based on the Overrides mechanism and another one based on Preferences, the latter might be slightly simpler.

1 Like

This is perfect, thanks!