Adding a Gradle Build system to the Processing IDE by Stefterv · Pull Request #888 · processing/processing4
Here's the first pull-request adding a new Gradle build system to the Processing IDE.
The GitHub Actions will create distributable binaries for macOS (x64, aarch64), windows (x64) and linux (x64, aarch64). The other platforms will need their own CI/CD system, but I think the repo will already build on the other platforms.
In terms of compatibility I've come pretty far but I'm sure there is some functionality that I have missed.
New Features
- Installers for macOS (dmg), Widows (msi), linux (deb)
- Windows: Start menu item
- Jetpack Compose
- Kotlin Support for the IDE
- Splash screen Refactor + Animation
- Additional pde:// schema functions (To be documented)
Functionality to test and verify
- Examples
- Tweaks mode
- P2D
- Debugger
- Languages
- Contributed libraries
- Autocomplete
- MovieMaker
- Exporting Applications
-
processing-java - java mode default libraries (dxf,svg,io,net,serial,pdf)
- Python mode (BROKEN, already on 4.3.1 macOS aarch64, other platforms okay)
- Android mode
To add during this pull request
- file associations (windows ☑️, macOS ☑️, linux?)
- pde:// prototcol (Probably works on windows and not macOS)
- Webcam Usage (macOS)
- Microphone Usage (macOS)
https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Native_distributions_and_local_execution/README.md#customizing-infoplist-on-macos
https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Signing_and_notarization_on_macOS/README.md#configuring-entitlements
To improve during this pull request
- Legacy resource handling (rn it copies all assets to temp folder on launch)
- Move all dependencies to libs.versions.toml
- Version and Build number
After pull request
- Signing (Windows, macOS, and Linux?)
https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Signing_and_notarization_on_macOS/README.md - Releases CI/CD
- linux (arm64) CI/CD
This will require a custom runner setup as jetpack compose does not cross-build
We can setup the custom runner on Hertzner as they offer arm64 vps' for a low price - Remove the raspberry pi runners as we will deprecate the arm32 build of Processing
- Update installation instructions on the website
- Installer customisation
- Flatpak distribution
To consider
- Appstores
In any case, this pull request does not break the existing Ant build system so we can either wait with the merge or we can have the Gradle version available as a preview.
The bundle size has increased quite a bit since we are shipping a JRE and a JDK instead of using the JDK to run the IDE
|linux-x64 | 257 MB |
|macos-aarch64 | 294 MB |
|macos-x64 | 289 MB |
|windows-x64 | 275 MB |
P.S. this also includes the pre-processor as a Maven library, so merging this PR will add processing:java:prepocessor as a Maven package
Fixes #924