В документации 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 vs compilerOpts
внутри .def
файла?
У меня нет сильного C фона, и я просто пытаюсь выучить Kotlin Multiplatform
(а сейчас просто пытаюсь понять, как взаимодействовать с c или объективные C библиотеки), но я не могу их правильно настроить.
Буду очень признателен за некоторую помощь, так как даже не до конца понимаю, как работает файл .def
.
Любой материал для чтения, связанный с пониманием этих вещей, очень помог бы.