|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
- * Copyright (c) 2009-2022 jMonkeyEngine
|
|
|
|
|
|
+ * Copyright (c) 2009-2023 jMonkeyEngine
|
|
* All rights reserved.
|
|
* All rights reserved.
|
|
*
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -75,7 +75,7 @@ public final class NativeLibraryLoader {
|
|
private static File extractionFolder = null;
|
|
private static File extractionFolder = null;
|
|
|
|
|
|
private static final HashMap<NativeLibrary.Key, NativeLibrary> nativeLibraryMap
|
|
private static final HashMap<NativeLibrary.Key, NativeLibrary> nativeLibraryMap
|
|
- = new HashMap<NativeLibrary.Key, NativeLibrary>();
|
|
|
|
|
|
+ = new HashMap<>();
|
|
|
|
|
|
/**
|
|
/**
|
|
* Register a new known library.
|
|
* Register a new known library.
|
|
@@ -120,55 +120,25 @@ public final class NativeLibraryLoader {
|
|
}
|
|
}
|
|
|
|
|
|
static {
|
|
static {
|
|
- // LWJGL
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.Windows32, "native/windows/lwjgl.dll");
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.Windows64, "native/windows/lwjgl64.dll");
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.Linux32, "native/linux/liblwjgl.so");
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.Linux64, "native/linux/liblwjgl64.so");
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.MacOSX32, "native/macosx/liblwjgl.dylib");
|
|
|
|
- registerNativeLibrary("lwjgl", Platform.MacOSX64, "native/macosx/liblwjgl.dylib");
|
|
|
|
|
|
+ // Note: LWJGL 3 handles its native library extracting & loading using
|
|
|
|
+ // its own SharedLibraryLoader.
|
|
|
|
|
|
- // OpenAL
|
|
|
|
- // For OSX: Need to add lib prefix when extracting
|
|
|
|
- registerNativeLibrary("openal", Platform.Windows32, "native/windows/OpenAL32.dll");
|
|
|
|
- registerNativeLibrary("openal", Platform.Windows64, "native/windows/OpenAL64.dll");
|
|
|
|
- registerNativeLibrary("openal", Platform.Linux32, "native/linux/libopenal.so");
|
|
|
|
- registerNativeLibrary("openal", Platform.Linux64, "native/linux/libopenal64.so");
|
|
|
|
- registerNativeLibrary("openal", Platform.MacOSX32, "native/macosx/openal.dylib", "libopenal.dylib");
|
|
|
|
- registerNativeLibrary("openal", Platform.MacOSX64, "native/macosx/openal.dylib", "libopenal.dylib");
|
|
|
|
-
|
|
|
|
- // LWJGL 3.x
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.Windows32, "native/windows/lwjgl32.dll");
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.Windows64, "native/windows/lwjgl.dll");
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.Linux32, "native/linux/liblwjgl32.so");
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.Linux64, "native/linux/liblwjgl.so");
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.MacOSX32, "native/macosx/liblwjgl.dylib");
|
|
|
|
- registerNativeLibrary("lwjgl3", Platform.MacOSX64, "native/macosx/liblwjgl.dylib");
|
|
|
|
-
|
|
|
|
- // GLFW for LWJGL 3.x
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.Windows32, "native/windows/glfw32.dll");
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.Windows64, "native/windows/glfw.dll");
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.Linux32, "native/linux/libglfw32.so");
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.Linux64, "native/linux/libglfw.so");
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.MacOSX32, "native/macosx/libglfw.dylib");
|
|
|
|
- registerNativeLibrary("glfw-lwjgl3", Platform.MacOSX64, "native/macosx/libglfw.dylib");
|
|
|
|
-
|
|
|
|
- // jemalloc for LWJGL 3.x
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.Windows32, "native/windows/jemalloc32.dll");
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.Windows64, "native/windows/jemalloc.dll");
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.Linux32, "native/linux/libjemalloc32.so");
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.Linux64, "native/linux/libjemalloc.so");
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.MacOSX32, "native/macosx/libjemalloc.dylib");
|
|
|
|
- registerNativeLibrary("jemalloc-lwjgl3", Platform.MacOSX64, "native/macosx/libjemalloc.dylib");
|
|
|
|
|
|
+ // LWJGL 2
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.Windows32, "lwjgl.dll");
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.Windows64, "lwjgl64.dll");
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.Linux32, "liblwjgl.so");
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.Linux64, "liblwjgl64.so");
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.MacOSX32, "liblwjgl.dylib");
|
|
|
|
+ registerNativeLibrary("lwjgl", Platform.MacOSX64, "liblwjgl.dylib");
|
|
|
|
|
|
- // OpenAL for LWJGL 3.x
|
|
|
|
|
|
+ // OpenAL for LWJGL 2
|
|
// For OSX: Need to add lib prefix when extracting
|
|
// For OSX: Need to add lib prefix when extracting
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.Windows32, "native/windows/OpenAL32.dll");
|
|
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.Windows64, "native/windows/OpenAL.dll");
|
|
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.Linux32, "native/linux/libopenal32.so");
|
|
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.Linux64, "native/linux/libopenal.so");
|
|
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.MacOSX32, "native/macosx/openal.dylib", "libopenal.dylib");
|
|
|
|
- registerNativeLibrary("openal-lwjgl3", Platform.MacOSX64, "native/macosx/openal.dylib", "libopenal.dylib");
|
|
|
|
|
|
+ registerNativeLibrary("openal", Platform.Windows32, "OpenAL32.dll");
|
|
|
|
+ registerNativeLibrary("openal", Platform.Windows64, "OpenAL64.dll");
|
|
|
|
+ registerNativeLibrary("openal", Platform.Linux32, "libopenal.so");
|
|
|
|
+ registerNativeLibrary("openal", Platform.Linux64, "libopenal64.so");
|
|
|
|
+ registerNativeLibrary("openal", Platform.MacOSX32, "openal.dylib", "libopenal.dylib");
|
|
|
|
+ registerNativeLibrary("openal", Platform.MacOSX64, "openal.dylib", "libopenal.dylib");
|
|
|
|
|
|
// BulletJme
|
|
// BulletJme
|
|
registerNativeLibrary("bulletjme", Platform.Windows32, "native/windows/x86/bulletjme.dll");
|
|
registerNativeLibrary("bulletjme", Platform.Windows32, "native/windows/x86/bulletjme.dll");
|
|
@@ -184,16 +154,16 @@ public final class NativeLibraryLoader {
|
|
|
|
|
|
// JInput
|
|
// JInput
|
|
// For OSX: Need to rename extension jnilib -> dylib when extracting
|
|
// For OSX: Need to rename extension jnilib -> dylib when extracting
|
|
- registerNativeLibrary("jinput", Platform.Windows32, "native/windows/jinput-raw.dll");
|
|
|
|
- registerNativeLibrary("jinput", Platform.Windows64, "native/windows/jinput-raw_64.dll");
|
|
|
|
- registerNativeLibrary("jinput", Platform.Linux32, "native/windows/libjinput-linux.so");
|
|
|
|
- registerNativeLibrary("jinput", Platform.Linux64, "native/windows/libjinput-linux64.so");
|
|
|
|
- registerNativeLibrary("jinput", Platform.MacOSX32, "native/macosx/libjinput-osx.jnilib", "libjinput-osx.dylib");
|
|
|
|
- registerNativeLibrary("jinput", Platform.MacOSX64, "native/macosx/libjinput-osx.jnilib", "libjinput-osx.dylib");
|
|
|
|
|
|
+ registerNativeLibrary("jinput", Platform.Windows32, "jinput-raw.dll");
|
|
|
|
+ registerNativeLibrary("jinput", Platform.Windows64, "jinput-raw_64.dll");
|
|
|
|
+ registerNativeLibrary("jinput", Platform.Linux32, "libjinput-linux.so");
|
|
|
|
+ registerNativeLibrary("jinput", Platform.Linux64, "libjinput-linux64.so");
|
|
|
|
+ registerNativeLibrary("jinput", Platform.MacOSX32, "libjinput-osx.jnilib", "libjinput-osx.dylib");
|
|
|
|
+ registerNativeLibrary("jinput", Platform.MacOSX64, "libjinput-osx.jnilib", "libjinput-osx.dylib");
|
|
|
|
|
|
// JInput Auxiliary (only required on Windows)
|
|
// JInput Auxiliary (only required on Windows)
|
|
- registerNativeLibrary("jinput-dx8", Platform.Windows32, "native/windows/jinput-dx8.dll");
|
|
|
|
- registerNativeLibrary("jinput-dx8", Platform.Windows64, "native/windows/jinput-dx8_64.dll");
|
|
|
|
|
|
+ registerNativeLibrary("jinput-dx8", Platform.Windows32, "jinput-dx8.dll");
|
|
|
|
+ registerNativeLibrary("jinput-dx8", Platform.Windows64, "jinput-dx8_64.dll");
|
|
registerNativeLibrary("jinput-dx8", Platform.Linux32, null);
|
|
registerNativeLibrary("jinput-dx8", Platform.Linux32, null);
|
|
registerNativeLibrary("jinput-dx8", Platform.Linux64, null);
|
|
registerNativeLibrary("jinput-dx8", Platform.Linux64, null);
|
|
registerNativeLibrary("jinput-dx8", Platform.MacOSX32, null);
|
|
registerNativeLibrary("jinput-dx8", Platform.MacOSX32, null);
|
|
@@ -294,19 +264,14 @@ public final class NativeLibraryLoader {
|
|
File userHomeFolder = new File(System.getProperty("user.home"));
|
|
File userHomeFolder = new File(System.getProperty("user.home"));
|
|
File userCacheFolder = null;
|
|
File userCacheFolder = null;
|
|
|
|
|
|
- switch (JmeSystem.getPlatform()) {
|
|
|
|
- case Linux32:
|
|
|
|
- case Linux64:
|
|
|
|
|
|
+ switch (JmeSystem.getPlatform().getOs()) {
|
|
|
|
+ case Linux:
|
|
userCacheFolder = new File(userHomeFolder, ".cache");
|
|
userCacheFolder = new File(userHomeFolder, ".cache");
|
|
break;
|
|
break;
|
|
- case MacOSX32:
|
|
|
|
- case MacOSX64:
|
|
|
|
- case MacOSX_PPC32:
|
|
|
|
- case MacOSX_PPC64:
|
|
|
|
|
|
+ case MacOS:
|
|
userCacheFolder = new File(new File(userHomeFolder, "Library"), "Caches");
|
|
userCacheFolder = new File(new File(userHomeFolder, "Library"), "Caches");
|
|
break;
|
|
break;
|
|
- case Windows32:
|
|
|
|
- case Windows64:
|
|
|
|
|
|
+ case Windows:
|
|
userCacheFolder = new File(new File(userHomeFolder, "AppData"), "Local");
|
|
userCacheFolder = new File(new File(userHomeFolder, "AppData"), "Local");
|
|
break;
|
|
break;
|
|
}
|
|
}
|