CocoaPods: Basic support
This patch adds a separate Gradle plugin allowing a user to import Kotlin/Native modules in Cocoapods projects and use Cocoapods dependencies in Kotlin code via cinterop. The plugin when applied does the following things: 1. Add a framework binary for each supported (iOS or macOS) platform in the project. 2. Add a Cocoapods extension allowing one to configure Cocoapods dependencies of the project. 3. Create cinterop tasks for each dependency from the previous point. The tasks are added for main compilations of each supported platform. 4. Add a task to generate a podspec-file which includes the framework from the point 1, script to build it and dependencies from the point 2. So the Cocoapods import procedure is the following: 1. A user runs `./gradlew generatePodspec`. The plugin creates a podspec-file with all dependencies. 2. The user adds a dependency on this podspec in his Podfile and runs `pod install`. Cocoapods downloads dependencies and configures user's XCode project. 3. The user runs XCode build. XCode builds dependencies and then runs Gradle build. Gradle performs interop processing and builds the Kotlin framework. Compiler options and header search paths are passed in the Gradle from XCode environment variables. After that the final application is built by XCode. Issue #KT-30269 Fixed
This commit is contained in:
@@ -90,7 +90,9 @@ tasks {
|
||||
for ((name, value) in propertiesToExpand) {
|
||||
inputs.property(name, value)
|
||||
}
|
||||
expand("projectVersion" to project.version)
|
||||
filesMatching("project.properties") {
|
||||
expand("projectVersion" to project.version)
|
||||
}
|
||||
}
|
||||
|
||||
named<Jar>("jar") {
|
||||
|
||||
Reference in New Issue
Block a user