Skip to content

Commit b728681

Browse files
AYastrebovSpace Team
authored andcommitted
[Gradle] Pass deployment target to swift expot's spm build
^KT-81465
1 parent 60b3ee7 commit b728681

File tree

1 file changed

+19
-8
lines changed
  • libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/tasks

1 file changed

+19
-8
lines changed

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftexport/tasks/BuildSPMSwiftExportPackage.kt

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,17 @@
66
package org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftexport.tasks
77

88
import org.gradle.api.DefaultTask
9-
import org.gradle.api.file.*
9+
import org.gradle.api.file.DirectoryProperty
10+
import org.gradle.api.file.RegularFileProperty
1011
import org.gradle.api.model.ObjectFactory
1112
import org.gradle.api.provider.Property
13+
import org.gradle.api.provider.Provider
1214
import org.gradle.api.provider.ProviderFactory
1315
import org.gradle.api.tasks.*
1416
import org.gradle.work.DisableCachingByDefault
1517
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.*
16-
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AppleSdk
17-
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.LibraryTools
18-
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.appleArchitecture
19-
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.appleTarget
20-
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.genericPlatformDestination
21-
import org.jetbrains.kotlin.gradle.utils.*
2218
import org.jetbrains.kotlin.gradle.utils.getFile
19+
import org.jetbrains.kotlin.gradle.utils.property
2320
import org.jetbrains.kotlin.gradle.utils.relativeOrAbsolute
2421
import org.jetbrains.kotlin.gradle.utils.runCommand
2522
import org.jetbrains.kotlin.konan.target.HostManager
@@ -47,6 +44,16 @@ internal abstract class BuildSPMSwiftExportPackage @Inject constructor(
4744
@get:Input
4845
abstract val configuration: Property<String>
4946

47+
@get:Input
48+
val deploymentTargetSettingName: Property<String> = objectFactory.property<String>().convention(
49+
providerFactory.environmentVariable("DEPLOYMENT_TARGET_SETTING_NAME")
50+
)
51+
52+
@get:Internal
53+
val deploymentTarget: Provider<String> = deploymentTargetSettingName.flatMap {
54+
providerFactory.environmentVariable(it)
55+
}
56+
5057
@get:Optional
5158
@get:Input
5259
val targetDeviceIdentifier: Property<String> = objectFactory.property<String>().convention(
@@ -102,10 +109,14 @@ internal abstract class BuildSPMSwiftExportPackage @Inject constructor(
102109
)
103110

104111
val swiftModuleName = swiftApiModuleName.get()
112+
val deploymentTargetSettingName = deploymentTargetSettingName.get()
113+
val deploymentTarget = deploymentTarget.get()
105114

106115
val buildArguments = mapOf(
107116
"ARCHS" to target.map { it.appleArchitecture }.get(),
108117
"CONFIGURATION" to configuration.get(),
118+
"DEPLOYMENT_TARGET_SETTING_NAME" to deploymentTargetSettingName,
119+
deploymentTargetSettingName to deploymentTarget,
109120

110121
/*
111122
We need to add -public-autolink-library flag because bridge module is imported with @_implementationOnly
@@ -121,7 +132,7 @@ internal abstract class BuildSPMSwiftExportPackage @Inject constructor(
121132
"xcodebuild",
122133
"-derivedDataPath", derivedData.relativeOrAbsolute(packageRootPath),
123134
"-scheme", swiftModuleName,
124-
"-destination", destination()
135+
"-destination", destination(),
125136
) + (intermediatesDestination + buildArguments).map { (k, v) -> "$k=$v" }
126137

127138
// FIXME: This will not work with dynamic libraries

0 commit comments

Comments
 (0)