66package org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftexport.tasks
77
88import org.gradle.api.DefaultTask
9- import org.gradle.api.file.*
9+ import org.gradle.api.file.DirectoryProperty
10+ import org.gradle.api.file.RegularFileProperty
1011import org.gradle.api.model.ObjectFactory
1112import org.gradle.api.provider.Property
13+ import org.gradle.api.provider.Provider
1214import org.gradle.api.provider.ProviderFactory
1315import org.gradle.api.tasks.*
1416import org.gradle.work.DisableCachingByDefault
1517import 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.*
2218import org.jetbrains.kotlin.gradle.utils.getFile
19+ import org.jetbrains.kotlin.gradle.utils.property
2320import org.jetbrains.kotlin.gradle.utils.relativeOrAbsolute
2421import org.jetbrains.kotlin.gradle.utils.runCommand
2522import 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