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
19 changes: 19 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
root = true

[*]
charset = utf-8
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

[*{.yml,yaml}]
indent_style = space
indent_size = 2

[*.{kt,kts}]
max_line_length = 120
ktlint_standard_backing-property-naming = disabled
ktlint_standard_function-naming = disabled

[**/generated/**]
ktlint = disabled
126 changes: 126 additions & 0 deletions .github/workflows/build-natives.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Build Native Libraries

on:
workflow_call:

jobs:
build-native-macos:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Build macOS native libraries
working-directory: src/native/macos
run: bash build.sh
env:
NATIVE_LIBS_OUTPUT_DIR: ${{ github.workspace }}/build/nativeLibs

- name: Verify macOS natives
run: |
test -f build/nativeLibs/darwin-aarch64/libMacTray.dylib
test -f build/nativeLibs/darwin-x86-64/libMacTray.dylib
ls -la build/nativeLibs/darwin-aarch64/
ls -la build/nativeLibs/darwin-x86-64/

- name: Upload macOS ARM64 library
uses: actions/upload-artifact@v4
with:
name: native-darwin-aarch64
path: build/nativeLibs/darwin-aarch64/libMacTray.dylib
retention-days: 1

- 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
retention-days: 1

build-native-linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
arch: x86-64
- os: ubuntu-24.04-arm
arch: aarch64
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libsystemd-dev

- name: Build Linux native library
working-directory: src/native/linux
run: bash build.sh
env:
NATIVE_LIBS_OUTPUT_DIR: ${{ github.workspace }}/build/nativeLibs

- name: Verify Linux natives
run: |
test -f build/nativeLibs/linux-${{ matrix.arch }}/libLinuxTray.so
ls -la build/nativeLibs/linux-${{ matrix.arch }}/

- name: Upload Linux library
uses: actions/upload-artifact@v4
with:
name: native-linux-${{ matrix.arch }}
path: build/nativeLibs/linux-${{ matrix.arch }}/libLinuxTray.so
retention-days: 1

build-native-windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Build Windows native libraries
working-directory: src/native/windows
run: cmd /c build.bat
env:
NATIVE_LIBS_OUTPUT_DIR: ${{ github.workspace }}/build/nativeLibs

- 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/

- name: Upload Windows x64 library
uses: actions/upload-artifact@v4
with:
name: native-win32-x86-64
path: build/nativeLibs/win32-x86-64/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
retention-days: 1
88 changes: 57 additions & 31 deletions .github/workflows/pr-build-check.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,78 @@
name: PR Build Check

on:
push:
branches: [master]
pull_request:
branches: [master]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
build-native-macos:
runs-on: macos-latest
build-natives:
uses: ./.github/workflows/build-natives.yaml

gradle:
needs: [build-natives]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download macOS ARM64 library
uses: actions/download-artifact@v4
with:
submodules: recursive
name: native-darwin-aarch64
path: src/jvmMain/resources/composetray/native/darwin-aarch64/

- name: Build macOS native libraries
working-directory: maclib
run: bash build.sh
- 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/

build-native-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Linux x86_64 library
uses: actions/download-artifact@v4
with:
submodules: recursive
name: native-linux-x86-64
path: src/jvmMain/resources/composetray/native/linux-x86-64/

- name: Setup Go
uses: actions/setup-go@v5
- name: Download Linux aarch64 library
uses: actions/download-artifact@v4
with:
go-version: 'stable'
name: native-linux-aarch64
path: src/jvmMain/resources/composetray/native/linux-aarch64/

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libappindicator3-dev
- 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: Build Linux native library
working-directory: linuxlib
run: bash build.sh
- name: Download Windows ARM64 library
uses: actions/download-artifact@v4
with:
name: native-win32-arm64
path: src/jvmMain/resources/composetray/native/win32-arm64/

build-native-windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- 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/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
echo "All native libraries present."

- name: Set up JDK
uses: actions/setup-java@v4
with:
submodules: recursive
java-version: '17'
distribution: 'temurin'

- name: Build Windows native libraries
working-directory: winlib
run: cmd /c build.bat
- name: Build
run: ./gradlew build --continue
Loading
Loading