I am developing some UGens that rely on external code, which is provided as shared libraries that are bundled with the compiled UGens in the same folder, placed in the
Plaform.userExtensionDir. Considering that on Linux both the compiled UGen and these libraries are compiled as .so files, I would like SuperCollider, when booting the server, to only run
dlopen() on the UGen shared libraries, and not on the external ones, which actually give errors (in the form of “
ERROR: API version not found: ...” and undefined symbols), as they need different load flags than the default used by scsynth when loading UGen shared libraries, preventing the server to boot at all. These shared libraries are in a different sub-folder than the compiled UGens ones, but they still need to be in the same parent folder, in the Extensions directory. Is there a way to tell SuperCollider to ignore such shared libraries, and only run
dlopen() on the UGen ones? Perhaps there is a way of ignoring an entire folder in the Extensions directory?
On MacOs, I don’t run in this problem, as scsynth only loads .scx files for UGens, and ignores eventual .so ones that may be in the same folder and sub-folders.
I hope I’ve been clear enough.
Thank you for the help, and have a nice day