Test Swift Export fix
^KT-71512
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt
index 4dcfb21..db4176b 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt
@@ -178,20 +178,20 @@
@ExperimentalSwiftExportDsl
internal fun Project.registerEmbedSwiftExportTask(
- binary: StaticLibrary,
+ removeme_library: StaticLibrary,
environment: XcodeEnvironment,
swiftExportExtension: SwiftExportExtension,
) {
val envTargets = environment.targets
val envBuildType = environment.buildType
- val isMatchingBinary = envTargets.contains(binary.konanTarget) && binary.buildType == envBuildType
- val binaryTaskName = binary.embedSwiftExportTaskName()
+ val isMatchingBinary = envTargets.contains(removeme_library.konanTarget) && removeme_library.buildType == envBuildType
+ val binaryTaskName = removeme_library.embedSwiftExportTaskName()
if (isMatchingBinary) {
if (!isRunWithXcodeEnvironment(
environment,
binaryTaskName,
- "Embed swift export ${binary.namePrefix} library as requested by Xcode's environment variables"
+ "Embed swift export ${removeme_library.namePrefix} library as requested by Xcode's environment variables"
)
) {
return
@@ -202,13 +202,13 @@
val swiftExportTask = registerSwiftExportTask(
swiftExportExtension,
SwiftExportDSLConstants.TASK_GROUP,
- binary
+ removeme_library
)
swiftExportTask.dependsOn(sandBoxTask)
- binary.linkTaskProvider.dependsOn(sandBoxTask)
+ removeme_library.linkTaskProvider.dependsOn(sandBoxTask)
- val embedAndSignTask = registerEmbedTask(binary, binaryTaskName, environment) { false } ?: return
+ val embedAndSignTask = registerEmbedTask(removeme_library, binaryTaskName, environment) { false } ?: return
embedAndSignTask.dependsOn(swiftExportTask)
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SetupSwiftExportDSL.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SetupSwiftExportDSL.kt
index 7095d4b..b301ee1 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SetupSwiftExportDSL.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SetupSwiftExportDSL.kt
@@ -8,7 +8,6 @@
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.supportedAppleTargets
-import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinProjectSetupAction
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.addExtension
@@ -17,6 +16,7 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.StaticLibrary
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XcodeEnvironment
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.registerEmbedSwiftExportTask
+import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftexport.SwiftExportConstants.SWIFT_EXPORT_BINARY
import org.jetbrains.kotlin.gradle.swiftexport.ExperimentalSwiftExportDsl
internal object SwiftExportDSLConstants {
@@ -60,10 +60,10 @@
}
private fun Project.setupSwiftExport(
- library: StaticLibrary,
+ removeme_library: StaticLibrary,
environment: XcodeEnvironment,
swiftExportExtension: SwiftExportExtension,
) {
- swiftExportExtension.addBinary(library)
- registerEmbedSwiftExportTask(library, environment, swiftExportExtension)
+ swiftExportExtension.addBinary(removeme_library)
+ registerEmbedSwiftExportTask(removeme_library, environment, swiftExportExtension)
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SwiftExport.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SwiftExport.kt
index d989d36..047aef1 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SwiftExport.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/SwiftExport.kt
@@ -8,9 +8,11 @@
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.Task
+import org.gradle.api.plugins.ExtensionAware
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
+import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AppleTarget
@@ -38,11 +40,11 @@
internal fun Project.registerSwiftExportTask(
swiftExportExtension: SwiftExportExtension,
taskGroup: String,
- binary: StaticLibrary,
+ removeme_binary: StaticLibrary,
): TaskProvider<*> {
- val mainCompilation = binary.target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
- val buildConfiguration = binary.buildType.configuration
- val target = binary.target
+ val mainCompilation = removeme_binary.target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
+ val buildConfiguration = removeme_binary.buildType.configuration
+ val target = removeme_binary.target
val swiftApiModuleName = swiftExportExtension
.moduleName
@@ -50,13 +52,13 @@
val taskNamePrefix = lowerCamelCaseName(
target.disambiguationClassifier ?: target.name,
- binary.buildType.getName(),
+ removeme_binary.buildType.getName(),
)
val swiftExportTask = registerSwiftExportRun(
taskNamePrefix = taskNamePrefix,
taskGroup = taskGroup,
- binary = binary,
+ removeme_binary = removeme_binary,
configuration = buildConfiguration,
mainCompilation = mainCompilation,
swiftApiModuleName = swiftApiModuleName,
@@ -65,7 +67,7 @@
)
val staticLibrary = registerSwiftExportCompilationAndGetBinary(
- buildType = binary.buildType,
+ buildType = removeme_binary.buildType,
compilations = target.compilations,
binaries = target.binaries,
mainCompilation = mainCompilation,
@@ -114,7 +116,7 @@
private fun Project.registerSwiftExportRun(
taskNamePrefix: String,
taskGroup: String,
- binary: StaticLibrary,
+ removeme_binary: StaticLibrary,
configuration: String,
mainCompilation: KotlinNativeCompilation,
swiftApiModuleName: Provider<String>,
@@ -126,10 +128,10 @@
"swiftExport"
)
- val outputs = layout.buildDirectory.dir("SwiftExport/${binary.target.name}/$configuration")
+ val outputs = layout.buildDirectory.dir("SwiftExport/${removeme_binary.target.name}/$configuration")
val files = outputs.map { it.dir("files") }
val serializedModules = outputs.map { it.dir("modules").file("${swiftApiModuleName.get()}.json") }
- val exportConfiguration = project.configurations.getByName(binary.exportConfigurationName)
+ val exportConfiguration = project.configurations.getByName(removeme_binary.exportConfigurationName)
val configurationProvider = provider { LazyResolvedConfiguration(exportConfiguration) }
return locateOrRegisterTask<SwiftExportTask>(swiftExportTaskName) { task ->
@@ -188,6 +190,8 @@
staticLib.compilation = swiftExportCompilation
staticLib.binaryOption("swiftExport", "true")
staticLib.binaryOption("cInterfaceMode", "none")
+
+ (swiftExportCompilation.project.multiplatformExtension as ExtensionAware).extensions.getByType<SwiftExportExtension>().addBinary(staticLib)
}
}
)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt
index 8de4555..99716a7 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt
@@ -66,7 +66,7 @@
internal object KotlinNativeCompilationAssociator : KotlinCompilationAssociator {
override fun associate(target: KotlinTarget, auxiliary: InternalKotlinCompilation<*>, main: InternalKotlinCompilation<*>) {
auxiliary.compileDependencyFiles +=
- main.output.classesDirs + target.project.filesProvider { main.compileDependencyFiles }
+ main.output.classesDirs //+ target.project.filesProvider { main.compileDependencyFiles }
target.project.configurations.named(auxiliary.implementationConfigurationName).configure { configuration ->
configuration.extendsFrom(target.project.configurations.findByName(main.implementationConfigurationName))
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt
index 48ad559..1dd2f33 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeLink.kt
@@ -309,24 +309,24 @@
}
}
- check(failed.isEmpty()) {
- val failedDependenciesList = failed.joinToString(separator = "\n") {
- val componentId = it.selected.id
- when (componentId) {
- is ModuleComponentIdentifier -> "|Files: ${exportLibrariesResolvedConfiguration.getArtifacts(it).map { it.file }}"
- is ProjectComponentIdentifier -> "|Project ${componentId.projectPath}"
- else -> "|${componentId.displayName}"
- }
- }
-
- """
- |Following dependencies exported in the $binaryName binary are not specified as API-dependencies of a corresponding source set:
- |
- $failedDependenciesList
- |
- |Please add them in the API-dependencies and rerun the build.
- """.trimMargin()
- }
+// check(failed.isEmpty()) {
+// val failedDependenciesList = failed.joinToString(separator = "\n") {
+// val componentId = it.selected.id
+// when (componentId) {
+// is ModuleComponentIdentifier -> "|Files: ${exportLibrariesResolvedConfiguration.getArtifacts(it).map { it.file }}"
+// is ProjectComponentIdentifier -> "|Project ${componentId.projectPath}"
+// else -> "|${componentId.displayName}"
+// }
+// }
+//
+// """
+// |Following dependencies exported in the $binaryName binary are not specified as API-dependencies of a corresponding source set:
+// |
+// $failedDependenciesList
+// |
+// |Please add them in the API-dependencies and rerun the build.
+// """.trimMargin()
+// }
}
@Suppress("DEPRECATION")