Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions .github/workflows/build-natives.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ jobs:
- name: Verify macOS natives
run: |
test -f build/nativeLibs/darwin-aarch64/libMacTray.dylib
test -f build/nativeLibs/darwin-x86-64/libMacTray.dylib
test -f build/nativeLibs/darwin-x64/libMacTray.dylib
ls -la build/nativeLibs/darwin-aarch64/
ls -la build/nativeLibs/darwin-x86-64/
ls -la build/nativeLibs/darwin-x64/

- name: Upload macOS ARM64 library
uses: actions/upload-artifact@v4
Expand All @@ -39,8 +39,8 @@ jobs:
- name: Upload macOS x86_64 library
uses: actions/upload-artifact@v4
with:
name: native-darwin-x86-64
path: build/nativeLibs/darwin-x86-64/libMacTray.dylib
name: native-darwin-x64
path: build/nativeLibs/darwin-x64/libMacTray.dylib
retention-days: 1

build-native-linux:
Expand All @@ -49,7 +49,7 @@ jobs:
matrix:
include:
- os: ubuntu-latest
arch: x86-64
arch: x64
- os: ubuntu-24.04-arm
arch: aarch64
steps:
Expand Down Expand Up @@ -106,10 +106,10 @@ jobs:
- name: Verify Windows natives
shell: bash
run: |
test -f build/nativeLibs/win32-x86-64/WinTray.dll
test -f build/nativeLibs/win32-arm64/WinTray.dll
ls -la build/nativeLibs/win32-x86-64/
ls -la build/nativeLibs/win32-arm64/
test -f build/nativeLibs/win32-x64/WinTray.dll
test -f build/nativeLibs/win32-aarch64/WinTray.dll
ls -la build/nativeLibs/win32-x64/
ls -la build/nativeLibs/win32-aarch64/

# Regression guard for issue #401: WinTray.dll must stay AVX-free so it does
# not crash with EXCEPTION_ILLEGAL_INSTRUCTION on pre-2011 CPUs (no AVX).
Expand All @@ -126,7 +126,7 @@ jobs:
Where-Object { $_.FullName -match '\\Hostx64\\x64\\' } | Select-Object -First 1
if (-not $dumpbin) { throw "dumpbin.exe not found" }
Write-Host "Using $($dumpbin.FullName)"
$disasm = & $dumpbin.FullName /DISASM:NOBYTES "build/nativeLibs/win32-x86-64/WinTray.dll"
$disasm = & $dumpbin.FullName /DISASM:NOBYTES "build/nativeLibs/win32-x64/WinTray.dll"
$avx = $disasm | Select-String -Pattern '^\s+[0-9A-Fa-f]+:\s+v[a-z]' |
Where-Object { $_.Line -notmatch '\bv(err|erw)\b' }
if ($avx) {
Expand All @@ -139,13 +139,13 @@ jobs:
- name: Upload Windows x64 library
uses: actions/upload-artifact@v4
with:
name: native-win32-x86-64
path: build/nativeLibs/win32-x86-64/WinTray.dll
name: native-win32-x64
path: build/nativeLibs/win32-x64/WinTray.dll
retention-days: 1

- name: Upload Windows ARM64 library
uses: actions/upload-artifact@v4
with:
name: native-win32-arm64
path: build/nativeLibs/win32-arm64/WinTray.dll
name: native-win32-aarch64
path: build/nativeLibs/win32-aarch64/WinTray.dll
retention-days: 1
24 changes: 12 additions & 12 deletions .github/workflows/pr-build-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ jobs:
- name: Download macOS x86_64 library
uses: actions/download-artifact@v4
with:
name: native-darwin-x86-64
path: src/jvmMain/resources/composetray/native/darwin-x86-64/
name: native-darwin-x64
path: src/jvmMain/resources/composetray/native/darwin-x64/

- name: Download Linux x86_64 library
uses: actions/download-artifact@v4
with:
name: native-linux-x86-64
path: src/jvmMain/resources/composetray/native/linux-x86-64/
name: native-linux-x64
path: src/jvmMain/resources/composetray/native/linux-x64/

- name: Download Linux aarch64 library
uses: actions/download-artifact@v4
Expand All @@ -48,24 +48,24 @@ jobs:
- name: Download Windows x64 library
uses: actions/download-artifact@v4
with:
name: native-win32-x86-64
path: src/jvmMain/resources/composetray/native/win32-x86-64/
name: native-win32-x64
path: src/jvmMain/resources/composetray/native/win32-x64/

- name: Download Windows ARM64 library
uses: actions/download-artifact@v4
with:
name: native-win32-arm64
path: src/jvmMain/resources/composetray/native/win32-arm64/
name: native-win32-aarch64
path: src/jvmMain/resources/composetray/native/win32-aarch64/

- name: Verify native libraries
run: |
echo "=== Verifying native libraries ==="
test -f src/jvmMain/resources/composetray/native/darwin-aarch64/libMacTray.dylib
test -f src/jvmMain/resources/composetray/native/darwin-x86-64/libMacTray.dylib
test -f src/jvmMain/resources/composetray/native/linux-x86-64/libLinuxTray.so
test -f src/jvmMain/resources/composetray/native/darwin-x64/libMacTray.dylib
test -f src/jvmMain/resources/composetray/native/linux-x64/libLinuxTray.so
test -f src/jvmMain/resources/composetray/native/linux-aarch64/libLinuxTray.so
test -f src/jvmMain/resources/composetray/native/win32-x86-64/WinTray.dll
test -f src/jvmMain/resources/composetray/native/win32-arm64/WinTray.dll
test -f src/jvmMain/resources/composetray/native/win32-x64/WinTray.dll
test -f src/jvmMain/resources/composetray/native/win32-aarch64/WinTray.dll
echo "All native libraries present."

- name: Set up JDK
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/publish-on-maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ jobs:
- name: Download macOS x86_64 library
uses: actions/download-artifact@v4
with:
name: native-darwin-x86-64
path: src/jvmMain/resources/composetray/native/darwin-x86-64/
name: native-darwin-x64
path: src/jvmMain/resources/composetray/native/darwin-x64/

- name: Download Linux x86_64 library
uses: actions/download-artifact@v4
with:
name: native-linux-x86-64
path: src/jvmMain/resources/composetray/native/linux-x86-64/
name: native-linux-x64
path: src/jvmMain/resources/composetray/native/linux-x64/

- name: Download Linux aarch64 library
uses: actions/download-artifact@v4
Expand All @@ -44,24 +44,24 @@ jobs:
- name: Download Windows x64 library
uses: actions/download-artifact@v4
with:
name: native-win32-x86-64
path: src/jvmMain/resources/composetray/native/win32-x86-64/
name: native-win32-x64
path: src/jvmMain/resources/composetray/native/win32-x64/

- name: Download Windows ARM64 library
uses: actions/download-artifact@v4
with:
name: native-win32-arm64
path: src/jvmMain/resources/composetray/native/win32-arm64/
name: native-win32-aarch64
path: src/jvmMain/resources/composetray/native/win32-aarch64/

- name: Verify native libraries
run: |
echo "=== Native libraries in resources ==="
ls -la src/jvmMain/resources/composetray/native/darwin-aarch64/
ls -la src/jvmMain/resources/composetray/native/darwin-x86-64/
ls -la src/jvmMain/resources/composetray/native/linux-x86-64/
ls -la src/jvmMain/resources/composetray/native/darwin-x64/
ls -la src/jvmMain/resources/composetray/native/linux-x64/
ls -la src/jvmMain/resources/composetray/native/linux-aarch64/
ls -la src/jvmMain/resources/composetray/native/win32-x86-64/
ls -la src/jvmMain/resources/composetray/native/win32-arm64/
ls -la src/jvmMain/resources/composetray/native/win32-x64/
ls -la src/jvmMain/resources/composetray/native/win32-aarch64/

- name: Set up JDK
uses: actions/setup-java@v4
Expand Down
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ val buildNativeWindows by tasks.registering(Exec::class) {
group = "build"
val hasPrebuilt =
nativeResourceDir
.dir("win32-x86-64")
.dir("win32-x64")
.file("WinTray.dll")
.asFile
.exists()
Expand All @@ -103,7 +103,7 @@ val buildNativeLinux by tasks.registering(Exec::class) {
group = "build"
val hasPrebuilt =
nativeResourceDir
.dir("linux-x86-64")
.dir("linux-x64")
.file("libLinuxTray.so")
.asFile
.exists()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.nucleusframework.composenativetray.lib.linux

import dev.nucleusframework.composenativetray.utils.NativeLibraryLoader
import dev.nucleusframework.core.runtime.NativeLibraryLoader

/**
* JNI bridge to the native Linux tray library (libLinuxTray.so).
Expand All @@ -9,7 +9,11 @@ import dev.nucleusframework.composenativetray.utils.NativeLibraryLoader
*/
internal object LinuxNativeBridge {
init {
NativeLibraryLoader.load("LinuxTray", LinuxNativeBridge::class.java)
NativeLibraryLoader.load(
"LinuxTray",
LinuxNativeBridge::class.java,
resourcePrefix = "/composetray/native",
)
}

// -- Lifecycle ---------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
package dev.nucleusframework.composenativetray.lib.mac

import dev.nucleusframework.composenativetray.utils.NativeLibraryLoader
import dev.nucleusframework.core.runtime.NativeLibraryLoader

/**
* JNI bridge to the native macOS tray library (libMacTray.dylib).
* All methods are static JNI calls into MacTrayBridge.m.
*/
internal object MacNativeBridge {
private const val LIBRARY_NAME = "MacTray"
private val loaded = NativeLibraryLoader.load(LIBRARY_NAME, MacNativeBridge::class.java)
private val loaded =
NativeLibraryLoader.load(
LIBRARY_NAME,
MacNativeBridge::class.java,
resourcePrefix = "/composetray/native",
)
val isLoaded: Boolean get() = loaded

// ── Tray lifecycle ──────────────────────────────────────────────────
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.nucleusframework.composenativetray.lib.windows

import dev.nucleusframework.composenativetray.utils.NativeLibraryLoader
import dev.nucleusframework.core.runtime.NativeLibraryLoader

/**
* JNI bridge to the native Windows tray library (WinTray.dll).
Expand All @@ -9,7 +9,11 @@ import dev.nucleusframework.composenativetray.utils.NativeLibraryLoader
*/
internal object WindowsNativeBridge {
init {
NativeLibraryLoader.load("WinTray", WindowsNativeBridge::class.java)
NativeLibraryLoader.load(
"WinTray",
WindowsNativeBridge::class.java,
resourcePrefix = "/composetray/native",
)
}

// -- Tray lifecycle --
Expand Down

This file was deleted.

Loading
Loading