diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt index a1937c03574..0e73e4e0fd9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt @@ -154,7 +154,7 @@ open class CocoapodsExtension(private val project: Project) { * Add a CocoaPods dependency to the pod built from this project. */ @JvmOverloads - fun pod(name: String, version: String? = null, path: File? = null, moduleName: String = name.asModuleName()) { + fun pod(name: String, version: String? = null, path: File? = null, moduleName: String = name.asModuleName(), headers: String? = null) { // Empty string will lead to an attempt to create two podDownload tasks. // One is original podDownload and second is podDownload + pod.name require(name.isNotEmpty()) { "Please provide not empty pod name to avoid ambiguity" } @@ -183,7 +183,7 @@ open class CocoapodsExtension(private val project: Project) { project.logger.warn(warnMessage) podSource = path.parentFile } - addToPods(CocoapodsDependency(name, moduleName, version, podSource?.let { Path(it) })) + addToPods(CocoapodsDependency(name, moduleName, headers, version, podSource?.let { Path(it) })) } @@ -271,6 +271,7 @@ open class CocoapodsExtension(private val project: Project) { data class CocoapodsDependency( private val name: String, @get:Input var moduleName: String, + @get:Optional @get:Input var headers: String? = null, @get:Optional @get:Input var version: String? = null, @get:Optional @get:Nested var source: PodLocation? = null, @get:Internal var extraOpts: List = listOf(), diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt index e7e26d48944..79e71182767 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Compan import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.GENERATE_WRAPPER_PROPERTY import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.SYNC_TASK_NAME import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs +import org.jetbrains.kotlin.gradle.utils.appendLine import java.io.File /** @@ -329,11 +330,12 @@ open class DefFileTask : DefaultTask() { @TaskAction fun generate() { outputFile.parentFile.mkdirs() - outputFile.writeText( - """ - language = Objective-C - modules = ${pod.get().moduleName} - """.trimIndent() - ) + outputFile.writeText(buildString { + appendLine("language = Objective-C") + with(pod.get()) { + if (headers != null) appendLine("headers = $headers") + else appendLine("modules = $moduleName") + } + }) } } \ No newline at end of file