Hi! The main idea behind this dependency is the following.
Consider two dependent native libraries
A -> B
. We create a Kotlin wrapper for the
B
library and publish it (name this wrapper
B-kt
). Now we want to interop the
A
library and use it together with
B-kt
in an app. In this case cinterop bindings produced for
A
and
B
should be compatible. To achieve that, we pass a cinterop klib produced for
B
and published with
B-kt
to the cinterop tool, when we produce bindings for
A
.
In this case, if the cinterop tool find some `B`'s symbol in `A`'s API, it will not generate a new binding for it. Instead, it will use the already generated binding, so Kotlin APIs of
A
and
B
will be compatible.
But I agree that the Gradle plugin can be more smart here and don't consider non-cinterop klibs as inputs for cinterop tasks.
Add a link to your issue to this thread, just for the record:
https://youtrack.jetbrains.com/issue/KT-42056