After much suffering and hunting irrelevant issues I discovered that
with Python 3.8 the PATH is no longer taken into account when looking
for DLLs on Windows, and thus all my module imports fail with the most
extremely anger-inducing nondescript trash message ever:
ImportError: DLL load failed while importing utility: The specified module could not be found.
Fortunately, I have been already doing a very nasty hardcoding operation
for this very problem, for the prebuilt tools, so all that was needed
was turning that into something nicer the user can have control over.
If enabled, this causes sys.setdlopenflags() being called with
RTLD_GLOBAL before the native Corrade module is loaded, in a hope to
resolve recurring nightmares with static Corrade and Magnum libraries
being linked into multiple dynamic modules.
Shouldn't really make any difference, since pybind redirects all
libraries anyway. But since other projects set this globally, we need to
ensure this won't break anything.
Only the double ones, exposed as floats, because the extra ALU required
by doubles is negligible to function call overhead. It'll be different
for non-scalar types, but here I use this.