◐ Shell
clean mode source ↗

Initial FFI setup by tychedelia · Pull Request #1287 · processing/processing4

@tychedelia

Closes #1270
Partially addresses #1269

TODO:

  • Add docs on how to install jextract
  • Remove Kotlin EAP
  • Add README to include folder
  • Add jextract to build
  • Wire cargo clean into gradle.

Stefterv


// TODO: Update to 2.10.20 and add hot-reloading: https://github.com/JetBrains/compose-hot-reload

abstract class SignResourcesTask : DefaultTask() {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good one! Is the intention to move this to a separate file?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think it probably should be in a separate file, totally. will do that....

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

factored out all these into a new buildSrc dir

tychedelia

// Can be deleted after the migration to Gradle is complete
layout.buildDirectory = file(".build")

allprojects {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just a workaround until kotlin 2.3.0 is released with jdk 25 support.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we leave a little TODO saying that?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's more complicated now as it enforces android source level compat

Stefterv


static {
// platform
if (OS_NAME.contains("mac") || OS_NAME.contains("darwin")) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to start including Android from the start?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ugh yeah, good callout. i did identify that there's a plugin for building Rust/android here https://github.com/mozilla/rust-android-gradle. let me think more about this re: the binding strategy, since panama won't work there

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whatever you do, I don't think android should block progress this early on.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a enableWebGPU flag that enforces source level compat with android atm. we can make the call on full android support later

Stefterv

Stefterv

catilac

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments! How would I try this?
I'm happy to approve and get it into our feature branch, but the TODOs tell me this is just early feedback (which I love)

Exciting work!

// Can be deleted after the migration to Gradle is complete
layout.buildDirectory = file(".build")

allprojects {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we leave a little TODO saying that?


static {
// platform
if (OS_NAME.contains("mac") || OS_NAME.contains("darwin")) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whatever you do, I don't think android should block progress this early on.


[lib]
name = "processing"
crate-type = ["cdylib"]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

obsessed with what we get from rust

…android source level compat.