static T loadLibrary()

in renderer/src/main/java/org/netbeans/html/presenters/render/GTK.java [383:411]


        static <T> T loadLibrary(Class<T> type, boolean allowObjects, Collection<Throwable> errors) {
            String libName = System.getProperty("com.dukescript.presenters.renderer." + type.getSimpleName());
            if (libName == null) {
                if (type == JSC.class) {
                    libName = "javascriptcoregtk-3.0";
                } else if (type == GTK.GLib.class) {
                    libName = "glib-2.0";
                } else if (type == GTK.G.class) {
                    libName = "gobject-2.0";
                } else if (type == GTK.Gdk.class) {
                    libName = "gtk-3";
                } else if (type == GTK.Gtk.class) {
                    libName = "gtk-3";
                } else if (type == GTK.WebKit.class) {
                    libName = "webkitgtk-3.0";
                }
            }
            try {
                Object lib = Native.loadLibrary(libName, type, Collections.singletonMap(Library.OPTION_ALLOW_OBJECTS, allowObjects));
                return type.cast(lib);
            } catch (LinkageError err) {
                if (errors != null) {
                    errors.add(err);
                    return null;
                } else {
                    throw err;
                }
            }
        }