KT-49032: Add default framework header search path for Cocoapod cinterop
Similarly Cocoapods logic https://github.com/CocoaPods/CocoaPods/blob/d18f49392c5e9ed9a2cdcb2ee89391cf7690ee5d/lib/cocoapods/target/build_settings.rb#L1188
This commit is contained in:
committed by
Space
parent
b5449f6ed3
commit
8b9e91568f
+9
-3
@@ -136,6 +136,14 @@ internal val PodBuildSettingsProperties.frameworkSearchPaths: List<String>
|
||||
return frameworkPathsSelfIncluding
|
||||
}
|
||||
|
||||
//Make frameworks headers discoverable with any syntax (quotes, brackets, @import, etc.)
|
||||
//https://github.com/CocoaPods/CocoaPods/blob/d18f49392c5e9ed9a2cdcb2ee89391cf7690ee5d/lib/cocoapods/target/build_settings.rb#L1188
|
||||
private val PodBuildSettingsProperties.frameworkHeadersSearchPaths: List<String>
|
||||
get() = mutableListOf<String>().apply {
|
||||
headerPaths?.let { addAll(it.splitQuotedArgs()) }
|
||||
publicHeadersFolderPath?.let { add("${configurationBuildDir.trimQuotes()}/${it.trimQuotes()}") }
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits a string using a whitespace characters as delimiters.
|
||||
* Ignores whitespaces in quotes and drops quotes, e.g. a string
|
||||
@@ -340,10 +348,8 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
|
||||
// Here and below we need to split such paths taking this into account.
|
||||
interop.compilerOpts.addAll(args.splitQuotedArgs())
|
||||
}
|
||||
podBuildSettings.headerPaths?.let { args ->
|
||||
interop.compilerOpts.addAll(args.splitQuotedArgs().map { "-I$it" })
|
||||
}
|
||||
|
||||
interop.compilerOpts.addAll(podBuildSettings.frameworkHeadersSearchPaths.map { "-I$it" })
|
||||
interop.compilerOpts.addAll(podBuildSettings.frameworkSearchPaths.map { "-F$it" })
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -608,6 +608,7 @@ data class PodBuildSettingsProperties(
|
||||
internal val podsTargetSrcRoot: String,
|
||||
internal val cflags: String? = null,
|
||||
internal val headerPaths: String? = null,
|
||||
internal val publicHeadersFolderPath: String? = null,
|
||||
internal val frameworkPaths: String? = null
|
||||
) {
|
||||
|
||||
@@ -627,6 +628,7 @@ data class PodBuildSettingsProperties(
|
||||
appendText("$PODS_TARGET_SRCROOT=$podsTargetSrcRoot\n")
|
||||
cflags?.let { appendText("$OTHER_CFLAGS=$it\n") }
|
||||
headerPaths?.let { appendText("$HEADER_SEARCH_PATHS=$it\n") }
|
||||
publicHeadersFolderPath?.let { appendText("$PUBLIC_HEADERS_FOLDER_PATH=$it\n") }
|
||||
frameworkPaths?.let { appendText("$FRAMEWORK_SEARCH_PATHS=$it") }
|
||||
}
|
||||
}
|
||||
@@ -638,6 +640,7 @@ data class PodBuildSettingsProperties(
|
||||
const val PODS_TARGET_SRCROOT = "PODS_TARGET_SRCROOT"
|
||||
const val OTHER_CFLAGS = "OTHER_CFLAGS"
|
||||
const val HEADER_SEARCH_PATHS = "HEADER_SEARCH_PATHS"
|
||||
const val PUBLIC_HEADERS_FOLDER_PATH = "PUBLIC_HEADERS_FOLDER_PATH"
|
||||
const val FRAMEWORK_SEARCH_PATHS = "FRAMEWORK_SEARCH_PATHS"
|
||||
|
||||
fun readSettingsFromReader(reader: Reader): PodBuildSettingsProperties {
|
||||
@@ -650,6 +653,7 @@ data class PodBuildSettingsProperties(
|
||||
readProperty(PODS_TARGET_SRCROOT),
|
||||
readNullableProperty(OTHER_CFLAGS),
|
||||
readNullableProperty(HEADER_SEARCH_PATHS),
|
||||
readNullableProperty(PUBLIC_HEADERS_FOLDER_PATH),
|
||||
readNullableProperty(FRAMEWORK_SEARCH_PATHS)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user