Kotlin / Native c взаимодействие с ограниченной видимостью

Можно ли генерировать удары c с internal видимостью?

При использовании взаимодействия c с Kotlin / Native сгенерированные stabs для функций и структур c имеют public видимость. Насколько я понимаю, это означает, что если кто-то будет использовать этот код Kotlin в качестве библиотеки, сгенерированные удары также будут видны в целевом проекте. Этот факт затрудняет создание оболочки Kotlin над библиотекой c.


person Feedforward    schedule 14.09.2019    source источник


Ответы (1)


Извините, но такое поведение пока не поддерживается.
Прежде всего, поскольку инструмент cinterop создает привязки в виде файла .klib, он связан с отдельным модулем. Так что не поможет, если вы как-нибудь пометите их как internal.
.klib с привязками - это просто еще один исходный набор проекта. Затем он должен быть доступен для подключения к различным видам зависимостей. Теперь из-за некоторых языковых ограничений нельзя использовать implementation вид зависимости для подключения библиотек Kotlin / Native, только api одну. Но, вероятно, когда-нибудь он станет доступным.
На данный момент лучший вариант, который я могу порекомендовать, - это назвать пакет внутренним или как-то так, чтобы потребитель узнал о его практическом характере.

person Artyom Degtyarev    schedule 16.09.2019