From c2f416abae8277c5b158827414f5838850a90667 Mon Sep 17 00:00:00 2001 From: rainxchzed Date: Fri, 13 Feb 2026 10:42:18 +0500 Subject: [PATCH 1/3] feat(desktop): Add AppImage as a target format This commit adds support for building the desktop application as an AppImage package for Linux distributions. `TargetFormat.AppImage` has been added to the list of native distribution formats in the build configuration. --- composeApp/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 12371339..2f88526d 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -109,6 +109,7 @@ compose.desktop { TargetFormat.Msi, TargetFormat.Deb, TargetFormat.Rpm, + TargetFormat.AppImage, ) windows { iconFile.set(project.file("logo/app_icon.ico")) From f42306acbbd4a790b05e0fcc649e50faa9fe4f36 Mon Sep 17 00:00:00 2001 From: rainxchzed Date: Fri, 13 Feb 2026 10:46:23 +0500 Subject: [PATCH 2/3] build(desktop): Generate native packages only for the current OS This commit updates the desktop packaging configuration to build native distribution formats specific to the host operating system. Instead of building all formats (DMG, PKG, Exe, Msi, Deb, Rpm, AppImage) on every machine, the build script now detects the current OS and generates only the relevant packages: - **Windows**: Exe, Msi - **macOS**: Dmg, Pkg - **Linux**: Deb, Rpm, AppImage This change optimizes the build process by avoiding the creation of unnecessary and incompatible package types. --- composeApp/build.gradle.kts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 2f88526d..c176de29 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -102,14 +102,15 @@ compose.desktop { packageVersion = libs.versions.projectVersionName.get().toString() vendor = "rainxchzed" includeAllModules = true + + val currentOs = org.gradle.internal.os.OperatingSystem.current() targetFormats( - TargetFormat.Dmg, - TargetFormat.Pkg, - TargetFormat.Exe, - TargetFormat.Msi, - TargetFormat.Deb, - TargetFormat.Rpm, - TargetFormat.AppImage, + *when { + currentOs.isWindows -> arrayOf(TargetFormat.Exe, TargetFormat.Msi) + currentOs.isMacOsX -> arrayOf(TargetFormat.Dmg, TargetFormat.Pkg) + currentOs.isLinux -> arrayOf(TargetFormat.Deb, TargetFormat.Rpm, TargetFormat.AppImage) + else -> emptyArray() + } ) windows { iconFile.set(project.file("logo/app_icon.ico")) From 7dd26e7aaf141b91053663753c6a5f013ed24822 Mon Sep 17 00:00:00 2001 From: rainxchzed Date: Fri, 13 Feb 2026 11:23:19 +0500 Subject: [PATCH 3/3] chore(ci): Update macOS runners and disable Gradle configuration cache This commit updates the GitHub Actions workflow for building desktop platforms. - The Gradle configuration cache (`-Dorg.gradle.configuration-cache=true`) has been disabled to address potential build issues. - The macOS runners have been updated: - `macos-13` (x64) is now `macos-15-intel`. - `macos-14` (arm64) is now `macos-latest`. - Comments in the Linux build job have been slightly rephrased for clarity. --- .github/workflows/build-desktop-platforms.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-desktop-platforms.yml b/.github/workflows/build-desktop-platforms.yml index cbc6b1a6..45434f91 100644 --- a/.github/workflows/build-desktop-platforms.yml +++ b/.github/workflows/build-desktop-platforms.yml @@ -16,7 +16,6 @@ env: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.caching=true - -Dorg.gradle.configuration-cache=true jobs: build-windows: @@ -84,9 +83,9 @@ jobs: strategy: matrix: include: - - os: macos-13 + - os: macos-15-intel arch: x64 - - os: macos-14 + - os: macos-latest arch: arm64 runs-on: ${{ matrix.os }} @@ -152,12 +151,9 @@ jobs: strategy: matrix: include: - # Ubuntu 24.04 (latest) — produces .deb with t64 deps (libasound2t64, libpng16-16t64) - # Compatible with: Ubuntu 24.04+, Debian 13+ (Trixie) - os: ubuntu-latest label: modern - # Ubuntu 22.04 — produces .deb with classic deps (libasound2, libpng16-16) - # Compatible with: Debian 12 (Bookworm), Ubuntu 22.04, and older systems + - os: ubuntu-22.04 label: debian12-compat