fix(Windows): Fix Native desktop library failing to load on Windows #815
This commit is contained in:
parent
b6948151a9
commit
1b37e45a31
@ -3,6 +3,7 @@ package com.artemchep.jna
|
|||||||
import com.sun.jna.Callback
|
import com.sun.jna.Callback
|
||||||
import com.sun.jna.Library
|
import com.sun.jna.Library
|
||||||
import com.sun.jna.Native
|
import com.sun.jna.Native
|
||||||
|
import com.sun.jna.Platform
|
||||||
import com.sun.jna.Pointer
|
import com.sun.jna.Pointer
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
@ -10,7 +11,9 @@ import java.nio.file.Files
|
|||||||
private const val RES_FILENAME = "libkeyguard"
|
private const val RES_FILENAME = "libkeyguard"
|
||||||
|
|
||||||
private const val OS_DIR_PREFIX = "libkeyguard"
|
private const val OS_DIR_PREFIX = "libkeyguard"
|
||||||
|
|
||||||
private const val OS_FILE_FILENAME = "libkeyguard"
|
private const val OS_FILE_FILENAME = "libkeyguard"
|
||||||
|
private const val OS_FILE_FILENAME_WINDOWS = "libkeyguard.dll"
|
||||||
|
|
||||||
private val libraryFile by lazy {
|
private val libraryFile by lazy {
|
||||||
val filename = RES_FILENAME
|
val filename = RES_FILENAME
|
||||||
@ -23,8 +26,15 @@ private fun extractLibrary(filename: String): File {
|
|||||||
val outDir = Files
|
val outDir = Files
|
||||||
.createTempDirectory(OS_DIR_PREFIX)
|
.createTempDirectory(OS_DIR_PREFIX)
|
||||||
.toFile()
|
.toFile()
|
||||||
val outFile = outDir
|
val outFile = run {
|
||||||
.resolve(OS_FILE_FILENAME)
|
val suffix = if (Platform.isWindows() || Platform.isWindowsCE()) {
|
||||||
|
OS_FILE_FILENAME_WINDOWS
|
||||||
|
} else {
|
||||||
|
OS_FILE_FILENAME
|
||||||
|
}
|
||||||
|
outDir
|
||||||
|
.resolve(suffix)
|
||||||
|
}
|
||||||
outFile.deleteOnExit()
|
outFile.deleteOnExit()
|
||||||
// Copy the binary into the
|
// Copy the binary into the
|
||||||
// output file.
|
// output file.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user