From b3bda856d6130ec1b9fdb255a55e4e42aabc661c Mon Sep 17 00:00:00 2001 From: Samuel Audet Date: Mon, 11 Mar 2024 21:57:26 +0900 Subject: [PATCH] * Fix inconsistencies when using `@Platform(inherit=..., library=...)` together (pull #747) --- CHANGELOG.md | 1 + src/main/java/org/bytedeco/javacpp/ClassProperties.java | 4 +++- src/main/java/org/bytedeco/javacpp/tools/Generator.java | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d55770d5..45120733e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ + * Fix inconsistencies when using `@Platform(inherit=..., library=...)` together ([pull #747](https://github.com/bytedeco/javacpp/pull/747)) * Let `Parser` support templates with unnamed type parameters ([pull #742](https://github.com/bytedeco/javacpp/pull/742)) * Prevent `Parser` from producing duplicate declarations for basic containers ([pull #741](https://github.com/bytedeco/javacpp/pull/741)) diff --git a/src/main/java/org/bytedeco/javacpp/ClassProperties.java b/src/main/java/org/bytedeco/javacpp/ClassProperties.java index 1dd3704a1..e886f5432 100644 --- a/src/main/java/org/bytedeco/javacpp/ClassProperties.java +++ b/src/main/java/org/bytedeco/javacpp/ClassProperties.java @@ -313,7 +313,9 @@ public void load(Class cls, boolean inherit) { } addAll("platform.executablepath", executablepath); addAll("platform.executable", executable); - setProperty("platform.library", library); + if (hasPlatformProperties || getProperty("platform.library", "").length() == 0) { + setProperty("platform.library", library); + } if (LoadEnabled.class.isAssignableFrom(c)) { try { diff --git a/src/main/java/org/bytedeco/javacpp/tools/Generator.java b/src/main/java/org/bytedeco/javacpp/tools/Generator.java index 1e3c4d3e8..52b5ff3f9 100644 --- a/src/main/java/org/bytedeco/javacpp/tools/Generator.java +++ b/src/main/java/org/bytedeco/javacpp/tools/Generator.java @@ -812,7 +812,7 @@ boolean classes(boolean handleExceptions, boolean defineAdapters, boolean conver out.println("static JavaCPP_noinline jclass JavaCPP_getClass(JNIEnv* env, int i);"); out.println("static inline void JavaCPP_loadGlobal(JNIEnv* env, jclass cls, const char* filename) {"); out.println("#ifdef _WIN32"); - out.println(" HMODULE handle = LoadLibrary(filename);"); + out.println(" HMODULE handle = LoadLibraryA(filename);"); out.println(" if (handle == NULL) {"); out.println(" char temp[256];"); out.println(" sprintf(temp, \"LoadLibrary() failed with 0x%lx\", GetLastError());");