В документации cinterop
для Kotlin/Native
вы должны определить .def
файл, например:
language = Objective-C
modules = FirebaseCore
compilerOpts = -framework FirebaseCore
linkerOpts = -framework FirebaseCore
Теперь вы также можете указать compilerOpts
в блоке cinterop
, например:
compilations["main"].cinterops {
firebasecore {
packageName 'cocoapods.FirebaseCore'
defFile = file("$projectDir/src/iosMain/c_interop/FirebaseCore.def")
includeDirs ("$projectDir/../iosApp/Pods/FirebaseCore/Firebase/Core/Public")
compilerOpts ("-F$projectDir/src/iosMain/c_interop/modules/FirebaseCore-${versions.firebaseCoreIos}")
}
}
Я взял здесь только этот пример Кевина Галлигана: KMPFirestore.
Я действительно не понимаю, в чем разница между compilerOpts
внутри gradle и compilerOpts
внутри .def
файла?
У меня нет сильного опыта в C, и я просто пытаюсь изучить Kotlin Multiplatform
(а пока просто пытаюсь понять, как взаимодействовать с библиотеками c или objectiveC), но я не могу их правильно настроить.
Я был бы очень признателен за помощь, поскольку я даже не совсем понимаю, как работает .def
файл.
Любой материал для чтения, связанный с пониманием этих вещей, будет большим подспорьем.