Kotlin / kotlindl

High-level Deep Learning Framework written in Kotlin and inspired by Keras
Apache License 2.0
1.47k stars 104 forks source link

Split native binaries into their own artifacts #466

Open StefanOltmann opened 2 years ago

StefanOltmann commented 2 years ago

By using jpackage I build specialized versions of my app for each operating system. I would like to have the option to select in my build process the version I need instead of having a large setup that includes binaries for all operating systems.

Compose Multiplatform did this nicely:

    object DesktopDependencies {
        val components = DesktopComponentsDependencies

        val common = composeDependency("org.jetbrains.compose.desktop:desktop")
        val linux_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-x64")
        val linux_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-linux-arm64")
        val windows_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-windows-x64")
        val macos_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-x64")
        val macos_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-arm64")

        val currentOs by lazy {
            composeDependency("org.jetbrains.compose.desktop:desktop-jvm-${currentTarget.id}")
        }
    }

Please provide something similar.

mgroth0 commented 2 years ago

Workaround: shadow jar filters