https://kotlinlang.org logo
Title
a

Arjan van Wieringen

01/16/2023, 2:24 PM
What is the preferred way to built platform specific applications for Compose? Since cross compile isn’t an option I think I am limited to using Docker images? Or are there other solutions aside from Conveyor?
s

Sebastian Kürten

01/16/2023, 2:27 PM
I'm working on a tool called Pinpit that supports cross-compilation / cross-building of packages. See https://kotlinlang.slack.com/archives/C01D6HTPATV/p1673276677656169 too.
bottom line: cross-packaging for macOS is not yet supported, but I plan to work on that this quarter
m

mikehearn

01/16/2023, 3:16 PM
What do you mean exactly by platform specific? Like, only targeting one OS? Or runnable by everyone with a single binary?
a

Arjan van Wieringen

01/16/2023, 3:40 PM
Well, if you create a distribution of a compose desktop application (via the application or via the compose plugin) they only work on the platform they’re built on. The relevant Skia JARs are platform specific. So you need to create a distribution on the relevant platforms (Windows, Mac and Linux)
m

mikehearn

01/16/2023, 3:42 PM
Right. So it's as Sebastian says. There are three options: 1. Use multi-platform CI to run the packaging process on every OS you target. 2. Use Pinpit, which can cross-build from Linux to Windows. 3. Use Conveyor which can do a 4x4 matrix (windows.amd64, mac.amd64, linux.amd64, mac.aarch64) i.e. any to any. I don't think there are any other options at this time?
a

Arjan van Wieringen

01/16/2023, 3:43 PM
No I suppose that is the case. Too bad only Jetbrains Space doesn’t provide multi platform images yet. AFAIK only GitHub Action has this?
m

mikehearn

01/16/2023, 3:48 PM
GH Actions has all the hardware and operating systems yeah.