Sebastian Kürten
10/25/2023, 9:05 PM./gradlew pinpitRun
or packaged using ./gradlew pinpitPackageDefault
. It also creates various assets from a Material symbol SVG file as input. That includes launcher files for Linux in PNG format, Windows in ICO format and macOS in ICNS format.
2. Update all the image assets in an existing project. If you decide to change your app icon, you can update all the relevant assets in a single step. At the moment any Material symbol can be used as input (just select the desired symbol, download as SVG and specify on the CLI). It should also be possible to support a custom logo SVG at a later step as the toolchain is already processing SVG, but at the moment it has some logic hardwired to work with Material symbols. For example, if you use the rocket launch icon and colors '0x127f73' for background and 'white' as foreground, you will get an launcher image as attached. Specify yet another color for the left side of the Windows installer background image (yellow in this case). The images are all generated as SVG too, so that you can start customizing your assets and use those images just as a starting point.benkuly
10/26/2023, 10:06 AMSebastian Kürten
10/26/2023, 11:40 AMPHondogo
10/26/2023, 4:55 PMSebastian Kürten
10/26/2023, 5:56 PMmacOS {
packageName = "PinpitComposeHelloWorld"
bundleID = "de.mobanisto.hello.world"
appCategory = "public.app-category.utilities"
distributableArchive {
format = "zip"
arch = "arm64"
}
}
./scripts/pinpit create-project --template compose-for-desktop \
--output project --project-name "Foo Tool" --package "com.foo.tool" \
--description "a tool for doing fancy stuff" \
--vendor-full "Bar Inc" --vendor-short "Bar" \
--input src/test/resources/rocket.svg
./gradlew pinpitPackageDefault
to build all target packagesPHondogo
10/26/2023, 7:52 PMSebastian Kürten
10/26/2023, 7:55 PMdeb()
blocks and build multiple debian packages for different distros. See briar for an example: https://github.com/briar/briar-desktop/blob/main/briar-desktop/build.gradle.kts#L223PHondogo
10/26/2023, 8:32 PMSebastian Kürten
10/26/2023, 9:43 PMFrom your last example I can see that configurations needed for distributions but I can't see where they are assigned to each variant.you have a configuration such as
val macosArm64: Configuration by configurations.creating {
extendsFrom(configurations.implementation.get())
}
and the plugin determines itself that this is the configuration to use for this target:
macOS {
...
distributableArchive {
format = "zip"
arch = "arm64"
}
}
is that what you mean?Is it possible to specify just single jar file? (I have fat jar already). Without specifying from(SourceSet, FileCollection) (ediI'm not sure this can be achieved at this point yet. What the plugin does is package all the jars from the runtime classpath into the distributable app. We do have a ticket for release builds (minified etc): https://github.com/mobanisto/pinpit-gradle-plugin/issues/16 but this is not implemented yet
In other words it will be good to have such process: single.jar + <os/arch spec> +<os specific config> = distris your project open source by any chance? or could you create a minimal example project that shows what you're doing? thanks
PHondogo
10/26/2023, 9:57 PMSebastian Kürten
10/27/2023, 8:55 AMPHondogo
10/27/2023, 9:00 AMSebastian Kürten
10/27/2023, 9:03 AMPHondogo
10/27/2023, 9:08 AMSebastian Kürten
10/27/2023, 9:22 AMui
and service
and let both apply the pinpit plugin. But maybe that doesn't fit the rest of your setupPHondogo
10/27/2023, 9:24 AMSebastian Kürten
10/27/2023, 9:27 AMPHondogo
10/27/2023, 9:35 AMcompileOnly(project.ComposeDeps.runtime)
And in needed ui targtets i specify all needed Compose dependencies.
There is request to make it truly separated but it hasn't done yet: https://github.com/JetBrains/compose-multiplatform/issues/537