swiftlang / swift-java

Apache License 2.0
724 stars 27 forks source link

Redesign jextract-swift: plugins and avoid custom swift features #170

Closed ktoso closed 4 days ago

ktoso commented 1 week ago

Redesign jextract-swift: plugins and avoid custom swift features

We now heavily rely on Swift thunk generation and call into those C calling convention compatible APIs from Java. They translate into member calls on classes -- this way we'll be able to also do structs and other things.

This also introduces gradle to "drive" the swift package jextract plugin. This allows us for samples to be a plain ./gradlew run, and no more manual running of any make or other swift interface generation steps etc.

This is a big milestone towards getting "just works" builds with the jextract route.

Follow ups will handle more java library path handling and more types of calls we can make, like variables, and importing structs etc.