For windows builds, is there a task to create a 'f...
# compose-desktop
g
For windows builds, is there a task to create a 'fat-exe'? Currently that I know of the gradle plugin provides packageExe - which creates a .exe installer, and createDistributable - which creates an exe w/ all of it's dependencies which would not work. I'm looking to just make a standalone exe with everything packaged inside of it.
a
that would be really nice
s
This would be great, but I don’t think it’s possible. Even ExcelsiorJet in the old days had still a „runtime“ folder - even if everything else was packed into a big EXE. It’s possible that some libs/DLLs must be separate and also possibly maintain their signature. A fat standalone EXE that does not even extract anything (like DLLs) into the system would be something really great. The same of course for macOS & Linux. I’m not sure if this could be achieved with GraalVM 🤔
a
you think if we ever got kotlin native compose it could work?
yes black 1
s
Oh yes, I believe that. The native executable target of my libs produce single EXE files. So putting together libs & own code in a singular EXE seems to be entirely possible.
g
An exe is just a fancy folder with some metadata, so there shouldn't be anything stopping us from plopping that directory inside the exe.
s
An exe is just a fancy folder with some metadata, so there shouldn't be anything stopping us from plopping that directory inside the exe.
If it is so easy, why hasn't it been done?
g
Just because it hasn't been set up doesn't indicate difficulty. I'll work on it over the next few days.
s
However, that’s exactly my assumption. ExcelsiorJet would have done it otherwise. I’m looking towards your single-exe solution. Would love a all-in-one packaging where people can’t destroy the installation by deleting stuff in the runtime folder… or even worse virus scanners doing that. Had that once with Windows Defender on a false positive.
g
well we can make uberjars, so you'd just need to package the uberjar into an exe w/ something like a minified graal
It's JVM so none of it is compiled binary, it's just fancy folders with metadata.
s
I mentioned GraalVM earlier