1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
%module javaBaseJava
%include javaBase_ext.i
%typemap(javacode) itkJavaLibraryLoader %{
public static void Load(String name) {
// System.loadLibrary() create the lib name by itself, but not GlobalLoad()
// so one must get lib and the other name
// Also, don't use GlobalLoad() for ITKJavaBase - it's not yet available
System.loadLibrary(name);
if(!name.equals("ITKJavaBaseJava")) {
String lib = System.mapLibraryName(name);
GlobalLoad(lib);
}
System.loadLibrary(name);
}
%}
%inline %{
#if !defined(_WIN32)
#include <dlfcn.h>
#endif
class itkJavaLibraryLoader {
public:
static void GlobalLoad(const char* lib)
{
#if !defined(_WIN32)
dlopen(lib, RTLD_GLOBAL|RTLD_NOW);
#endif
}
};
%}
|