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
|
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.
|
* Splits a string using a whitespace characters as delimiters.
|
||||||
* Ignores whitespaces in quotes and drops quotes, e.g. a string
|
* 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.
|
// Here and below we need to split such paths taking this into account.
|
||||||
interop.compilerOpts.addAll(args.splitQuotedArgs())
|
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" })
|
interop.compilerOpts.addAll(podBuildSettings.frameworkSearchPaths.map { "-F$it" })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -608,6 +608,7 @@ data class PodBuildSettingsProperties(
|
|||||||
internal val podsTargetSrcRoot: String,
|
internal val podsTargetSrcRoot: String,
|
||||||
internal val cflags: String? = null,
|
internal val cflags: String? = null,
|
||||||
internal val headerPaths: String? = null,
|
internal val headerPaths: String? = null,
|
||||||
|
internal val publicHeadersFolderPath: String? = null,
|
||||||
internal val frameworkPaths: String? = null
|
internal val frameworkPaths: String? = null
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -627,6 +628,7 @@ data class PodBuildSettingsProperties(
|
|||||||
appendText("$PODS_TARGET_SRCROOT=$podsTargetSrcRoot\n")
|
appendText("$PODS_TARGET_SRCROOT=$podsTargetSrcRoot\n")
|
||||||
cflags?.let { appendText("$OTHER_CFLAGS=$it\n") }
|
cflags?.let { appendText("$OTHER_CFLAGS=$it\n") }
|
||||||
headerPaths?.let { appendText("$HEADER_SEARCH_PATHS=$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") }
|
frameworkPaths?.let { appendText("$FRAMEWORK_SEARCH_PATHS=$it") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -638,6 +640,7 @@ data class PodBuildSettingsProperties(
|
|||||||
const val PODS_TARGET_SRCROOT = "PODS_TARGET_SRCROOT"
|
const val PODS_TARGET_SRCROOT = "PODS_TARGET_SRCROOT"
|
||||||
const val OTHER_CFLAGS = "OTHER_CFLAGS"
|
const val OTHER_CFLAGS = "OTHER_CFLAGS"
|
||||||
const val HEADER_SEARCH_PATHS = "HEADER_SEARCH_PATHS"
|
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"
|
const val FRAMEWORK_SEARCH_PATHS = "FRAMEWORK_SEARCH_PATHS"
|
||||||
|
|
||||||
fun readSettingsFromReader(reader: Reader): PodBuildSettingsProperties {
|
fun readSettingsFromReader(reader: Reader): PodBuildSettingsProperties {
|
||||||
@@ -650,6 +653,7 @@ data class PodBuildSettingsProperties(
|
|||||||
readProperty(PODS_TARGET_SRCROOT),
|
readProperty(PODS_TARGET_SRCROOT),
|
||||||
readNullableProperty(OTHER_CFLAGS),
|
readNullableProperty(OTHER_CFLAGS),
|
||||||
readNullableProperty(HEADER_SEARCH_PATHS),
|
readNullableProperty(HEADER_SEARCH_PATHS),
|
||||||
|
readNullableProperty(PUBLIC_HEADERS_FOLDER_PATH),
|
||||||
readNullableProperty(FRAMEWORK_SEARCH_PATHS)
|
readNullableProperty(FRAMEWORK_SEARCH_PATHS)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user