From 149c69da37157f04420c3690e61578561830962b Mon Sep 17 00:00:00 2001 From: Manuel Bl Date: Wed, 3 Jan 2024 23:06:50 +0100 Subject: [PATCH] macOS: Improve compatibility with JDK builds --- README.md | 4 ++-- examples/bulk_transfer/README.md | 2 +- examples/bulk_transfer/pom.xml | 4 ++-- examples/enumerate/README.md | 2 +- examples/enumerate/pom.xml | 4 ++-- examples/enumerate_kotlin/README.md | 2 +- examples/enumerate_kotlin/pom.xml | 4 ++-- examples/epaper_display/README.md | 4 ++-- examples/epaper_display/pom.xml | 4 ++-- examples/monitor/README.md | 2 +- examples/monitor/pom.xml | 4 ++-- examples/monitor_kotlin/README.md | 2 +- examples/monitor_kotlin/pom.xml | 4 ++-- examples/stm_dfu/README.md | 2 +- examples/stm_dfu/pom.xml | 4 ++-- java-does-usb/jextract/README.md | 2 +- java-does-usb/pom.xml | 2 +- .../codecrete/usb/macos/gen/corefoundation/RuntimeHelper.java | 2 +- .../java/net/codecrete/usb/macos/gen/iokit/RuntimeHelper.java | 2 +- 19 files changed, 28 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 9c2ece6..edd2c5b 100644 --- a/README.md +++ b/README.md @@ -48,14 +48,14 @@ If you are using Maven, add the below dependency to your pom.xml: net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 ``` If you are using Gradle, add the below dependency to your build.gradle file: ```groovy -compile group: 'net.codecrete.usb', name: 'java-does-usb', version: '0.7.0' +compile group: 'net.codecrete.usb', name: 'java-does-usb', version: '0.7.1' ``` ```java diff --git a/examples/bulk_transfer/README.md b/examples/bulk_transfer/README.md index 372082e..dd25eb8 100644 --- a/examples/bulk_transfer/README.md +++ b/examples/bulk_transfer/README.md @@ -39,7 +39,7 @@ $ mvn compile exec:exec [INFO] Scanning for projects... [INFO] [INFO] --------------< net.codecrete.usb.examples:bulk-transfer >-------------- -[INFO] Building bulk-transfer 0.7.0 +[INFO] Building bulk-transfer 0.7.1 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ bulk-transfer --- diff --git a/examples/bulk_transfer/pom.xml b/examples/bulk_transfer/pom.xml index cfe4587..fbf1a3c 100644 --- a/examples/bulk_transfer/pom.xml +++ b/examples/bulk_transfer/pom.xml @@ -6,7 +6,7 @@ net.codecrete.usb.examples bulk-transfer - 0.7.0 + 0.7.1 bulk-transfer https://github.com/manuelbl/JavaDoesUSB/examples/bulk_transfer @@ -21,7 +21,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 diff --git a/examples/enumerate/README.md b/examples/enumerate/README.md index 5721c61..992275e 100644 --- a/examples/enumerate/README.md +++ b/examples/enumerate/README.md @@ -38,7 +38,7 @@ $ mvn compile exec:exec [INFO] Scanning for projects... [INFO] [INFO] ----------------< net.codecrete.usb.examples:enumerate >---------------- -[INFO] Building enumerate 0.7.0 +[INFO] Building enumerate 0.7.1 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ enumerate --- diff --git a/examples/enumerate/pom.xml b/examples/enumerate/pom.xml index 43e7b05..00aa0f9 100644 --- a/examples/enumerate/pom.xml +++ b/examples/enumerate/pom.xml @@ -6,7 +6,7 @@ net.codecrete.usb.examples enumerate - 0.7.0 + 0.7.1 enumerate https://github.com/manuelbl/JavaDoesUSB/examples/enumerate @@ -21,7 +21,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 org.tinylog diff --git a/examples/enumerate_kotlin/README.md b/examples/enumerate_kotlin/README.md index 94a74c4..6a5e14e 100644 --- a/examples/enumerate_kotlin/README.md +++ b/examples/enumerate_kotlin/README.md @@ -40,7 +40,7 @@ $ mvn clean package ### Run the jar ```shell -$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/enumerate-0.7.0-jar-with-dependencies.jar +$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/enumerate-0.7.1-jar-with-dependencies.jar Device: VID: 0xcafe PID: 0xceaf diff --git a/examples/enumerate_kotlin/pom.xml b/examples/enumerate_kotlin/pom.xml index a304b39..91d8b9a 100644 --- a/examples/enumerate_kotlin/pom.xml +++ b/examples/enumerate_kotlin/pom.xml @@ -4,7 +4,7 @@ net.codecrete.usb.examples enumerate - 0.7.0 + 0.7.1 jar enumerate @@ -64,7 +64,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 org.tinylog diff --git a/examples/epaper_display/README.md b/examples/epaper_display/README.md index 954070f..684bd25 100644 --- a/examples/epaper_display/README.md +++ b/examples/epaper_display/README.md @@ -45,7 +45,7 @@ $ mvn compile exec:exec [INFO] Scanning for projects... [INFO] [INFO] -------------< net.codecrete.usb.examples:epaper-display >-------------- -[INFO] Building epaper-display 0.7.0 +[INFO] Building epaper-display 0.7.1 [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] @@ -81,6 +81,6 @@ $ sudo -i Password: $ cd /Users/me/Documents/JavaDoesUSB/examples/epaper_display $ export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-20.jdk/Contents/Home -$ $JAVA_HOME/bin/java --enable-preview --enable-native-access=ALL-UNNAMED -cp target/classes:/Users/me/.m2/repository/net/codecrete/usb/java-does-usb/0.7.0/java-does-usb-0.7.0.jar net.codecrete.usb.examples.EPaperDisplay +$ $JAVA_HOME/bin/java --enable-preview --enable-native-access=ALL-UNNAMED -cp target/classes:/Users/me/.m2/repository/net/codecrete/usb/java-does-usb/0.7.1/java-does-usb-0.7.1.jar net.codecrete.usb.examples.EPaperDisplay Display size: 1200 x 825 ``` diff --git a/examples/epaper_display/pom.xml b/examples/epaper_display/pom.xml index 73293f7..6f5ef1a 100644 --- a/examples/epaper_display/pom.xml +++ b/examples/epaper_display/pom.xml @@ -6,7 +6,7 @@ net.codecrete.usb.examples epaper-display - 0.7.0 + 0.7.1 epaper-display https://github.com/manuelbl/JavaDoesUSB/examples/epaper_display @@ -21,7 +21,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 diff --git a/examples/monitor/README.md b/examples/monitor/README.md index 1fbcff5..e267ff1 100644 --- a/examples/monitor/README.md +++ b/examples/monitor/README.md @@ -38,7 +38,7 @@ $ mvn compile exec:exec [INFO] Scanning for projects... [INFO] [INFO] -----------------< net.codecrete.usb.examples:monitor >----------------- -[INFO] Building monitor 0.7.0 +[INFO] Building monitor 0.7.1 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ monitor --- diff --git a/examples/monitor/pom.xml b/examples/monitor/pom.xml index 8ce4483..8b3d614 100644 --- a/examples/monitor/pom.xml +++ b/examples/monitor/pom.xml @@ -6,7 +6,7 @@ net.codecrete.usb.examples monitor - 0.7.0 + 0.7.1 monitor https://github.com/manuelbl/JavaDoesUSB/examples/monitor @@ -21,7 +21,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 org.tinylog diff --git a/examples/monitor_kotlin/README.md b/examples/monitor_kotlin/README.md index c3c28c3..ba40402 100644 --- a/examples/monitor_kotlin/README.md +++ b/examples/monitor_kotlin/README.md @@ -40,7 +40,7 @@ $ mvn clean package ### Run the jar ```shell -$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/monitor-0.7.0-jar-with-dependencies.jar +$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/monitor-0.7.1-jar-with-dependencies.jar WARNING: "public static final void net.codecrete.usb.examples.MonitorKt.main()" chosen over "public static void net.codecrete.usb.examples.MonitorKt.main(java.lang.String[])" Present: VID: 0xcafe, PID: 0xceaf, manufacturer: JavaDoesUSB, product: Loopback, serial: 35A737883336, ID: 4295265643 Present: VID: 0x1a40, PID: 0x0801, manufacturer: null, product: USB 2.0 Hub, serial: null, ID: 4295259660 diff --git a/examples/monitor_kotlin/pom.xml b/examples/monitor_kotlin/pom.xml index 9a0094b..b3e91b5 100644 --- a/examples/monitor_kotlin/pom.xml +++ b/examples/monitor_kotlin/pom.xml @@ -4,7 +4,7 @@ net.codecrete.usb.examples monitor - 0.7.0 + 0.7.1 jar monitor @@ -64,7 +64,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 org.tinylog diff --git a/examples/stm_dfu/README.md b/examples/stm_dfu/README.md index f8d34ef..acab0b6 100644 --- a/examples/stm_dfu/README.md +++ b/examples/stm_dfu/README.md @@ -58,7 +58,7 @@ Run the command below (adapting the file path depending on your specific board): ```shell $ mvn package -$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/stm_dfu-0.7.0.jar ../../test-devices/loopback-stm32/bin/blackpill-f401cc.bin +$ java --enable-preview --enable-native-access=ALL-UNNAMED -jar target/stm_dfu-0.7.1.jar ../../test-devices/loopback-stm32/bin/blackpill-f401cc.bin DFU device found with serial 35A737883336. Target memory segment: Internal Flash Erasing page at 0x8000000 (size 0x4000) diff --git a/examples/stm_dfu/pom.xml b/examples/stm_dfu/pom.xml index 9161054..4891d1e 100644 --- a/examples/stm_dfu/pom.xml +++ b/examples/stm_dfu/pom.xml @@ -4,7 +4,7 @@ net.codecrete.usb.examples stm_dfu - 0.7.0 + 0.7.1 stm_dfu https://github.com/manuelbl/JavaDoesUSB/examples/stm_dfu @@ -19,7 +19,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 diff --git a/java-does-usb/jextract/README.md b/java-does-usb/jextract/README.md index 3204b7e..2054483 100644 --- a/java-does-usb/jextract/README.md +++ b/java-does-usb/jextract/README.md @@ -70,7 +70,7 @@ SymbolLookup loaderLookup = SymbolLookup.libraryLookup("libudev.so", MemorySessi Most of the required native functions on macOS are part of a framework. Frameworks internally have a more complex file organization of header and binary files than appears from the outside. Thus, they require a special logic to locate framework header files. *clang* supports it with the `-F`. *jextract* allows to specify the options via `compiler_flags.txt` file. Since the file must be in the local directory and since it does not apply to Linux and Windows, separate directories must be used for the operating systems. -The generated code has the same problem as the Linux code for *udev*. It must be manually changed to use `SymbolLookup.libraryLookup()` for the libraries `CoreFoundation.framework/CoreFoundation` and `IOKit.framework/IOKit` respectively. +The generated code has the same problem as the Linux code for *udev*. It must be manually changed to use `SymbolLookup.libraryLookup()` for the frameworks `CoreFoundation` and `IOKit` respectively, and use an absolute path starting with `/System/Library/Frameworks/`. ## Windows diff --git a/java-does-usb/pom.xml b/java-does-usb/pom.xml index 3a543c0..5924998 100644 --- a/java-does-usb/pom.xml +++ b/java-does-usb/pom.xml @@ -6,7 +6,7 @@ net.codecrete.usb java-does-usb - 0.7.0 + 0.7.1 21 diff --git a/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/corefoundation/RuntimeHelper.java b/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/corefoundation/RuntimeHelper.java index 9fb56e4..69967de 100644 --- a/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/corefoundation/RuntimeHelper.java +++ b/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/corefoundation/RuntimeHelper.java @@ -23,7 +23,7 @@ final class RuntimeHelper { static { // System.loadLibrary("CoreFoundation.framework"); // SymbolLookup loaderLookup = SymbolLookup.loaderLookup(); - SymbolLookup loaderLookup = SymbolLookup.libraryLookup("CoreFoundation.framework/CoreFoundation", Arena.global()); + SymbolLookup loaderLookup = SymbolLookup.libraryLookup("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", Arena.global()); SYMBOL_LOOKUP = name -> loaderLookup.find(name).or(() -> LINKER.defaultLookup().find(name)); } diff --git a/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/iokit/RuntimeHelper.java b/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/iokit/RuntimeHelper.java index 6b52deb..02d7840 100644 --- a/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/iokit/RuntimeHelper.java +++ b/java-does-usb/src/main/java/net/codecrete/usb/macos/gen/iokit/RuntimeHelper.java @@ -23,7 +23,7 @@ final class RuntimeHelper { static { // System.loadLibrary("IOKit.framework"); // SymbolLookup loaderLookup = SymbolLookup.loaderLookup(); - SymbolLookup loaderLookup = SymbolLookup.libraryLookup("IOKit.framework/IOKit", Arena.global()); + SymbolLookup loaderLookup = SymbolLookup.libraryLookup("/System/Library/Frameworks/IOKit.framework/IOKit", Arena.global()); SYMBOL_LOOKUP = name -> loaderLookup.find(name).or(() -> LINKER.defaultLookup().find(name)); }