Skip to content

Commit 4765586

Browse files
committed
Clean up API visibility
1 parent 421b245 commit 4765586

File tree

14 files changed

+110
-78
lines changed

14 files changed

+110
-78
lines changed

kmmbridge-github/src/main/kotlin/co/touchlab/kmmbridge/github/GithubReleaseArtifactManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import org.gradle.api.tasks.TaskProvider
1313
import org.gradle.kotlin.dsl.getByType
1414
import java.io.File
1515

16-
class GithubReleaseArtifactManager(
16+
internal class GithubReleaseArtifactManager(
1717
private val repository: String?, private val releaseString: String?, private val useExistingRelease: Boolean
1818
) : ArtifactManager {
1919

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import co.touchlab.kmmbridge.test.TestArtifactManager
2+
import co.touchlab.kmmbridge.test.kmmBridgeExtension
3+
import org.gradle.api.Project
4+
5+
@Suppress("unused")
6+
fun Project.testArtifacts() {
7+
val artifactManager = kmmBridgeExtension.artifactManager
8+
artifactManager.set(TestArtifactManager())
9+
artifactManager.finalizeValue()
10+
}

kmmbridge-test/src/main/kotlin/co/touchlab/kmmbridge/test/TestArtifactManager.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package co.touchlab.kmmbridge.test
22

3+
import co.touchlab.kmmbridge.KmmBridgeExtension
34
import co.touchlab.kmmbridge.artifactmanager.ArtifactManager
45
import org.gradle.api.Project
56
import org.gradle.api.Task
67
import org.gradle.api.tasks.TaskProvider
8+
import org.gradle.kotlin.dsl.getByType
79
import java.io.File
810

911
class TestArtifactManager : ArtifactManager {
@@ -19,4 +21,6 @@ class TestArtifactManager : ArtifactManager {
1921
}
2022

2123
override fun deployArtifact(task: Task, zipFilePath: File, version: String): String = url
22-
}
24+
}
25+
26+
internal val Project.kmmBridgeExtension get() = extensions.getByType<KmmBridgeExtension>()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package co.touchlab.kmmbridge
2+
3+
internal const val TASK_GROUP_NAME = "kmmbridge"
4+
public const val EXTENSION_NAME = "kmmbridge"

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/KMMBridge.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ package co.touchlab.kmmbridge
1515

1616
import co.touchlab.kmmbridge.artifactmanager.ArtifactManager
1717
import co.touchlab.kmmbridge.dependencymanager.SpmDependencyManager
18+
import co.touchlab.kmmbridge.internal.enablePublishing
19+
import co.touchlab.kmmbridge.internal.findXCFrameworkAssembleTask
20+
import co.touchlab.kmmbridge.internal.kotlin
21+
import co.touchlab.kmmbridge.internal.layoutBuildDir
22+
import co.touchlab.kmmbridge.internal.spmBuildTargets
23+
import co.touchlab.kmmbridge.internal.urlFile
24+
import co.touchlab.kmmbridge.internal.zipFilePath
1825
import org.gradle.api.Action
1926
import org.gradle.api.Plugin
2027
import org.gradle.api.Project

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/KmmBridgeExtension.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import co.touchlab.kmmbridge.dependencymanager.DependencyManager
2121
import co.touchlab.kmmbridge.dependencymanager.SpecRepo
2222
import co.touchlab.kmmbridge.dependencymanager.SpmDependencyManager
2323
import co.touchlab.kmmbridge.dsl.TargetPlatformDsl
24+
import co.touchlab.kmmbridge.internal.cocoapods
2425
import co.touchlab.kmmbridge.internal.domain.SwiftToolVersion
26+
import co.touchlab.kmmbridge.internal.kotlin
2527
import org.gradle.api.Project
2628
import org.gradle.api.provider.ListProperty
2729
import org.gradle.api.provider.Property

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/ProjectExtensions.kt

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -14,71 +14,17 @@
1414
package co.touchlab.kmmbridge
1515

1616
import org.gradle.api.Project
17-
import org.gradle.api.Task
18-
import org.gradle.api.UnknownTaskException
19-
import org.gradle.api.plugins.ExtensionAware
2017
import org.gradle.api.plugins.ExtraPropertiesExtension
2118
import org.gradle.api.publish.PublishingExtension
22-
import org.gradle.api.tasks.TaskProvider
23-
import org.gradle.kotlin.dsl.findByType
2419
import org.gradle.kotlin.dsl.getByType
25-
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
26-
import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension
27-
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
28-
import java.io.File
2920

30-
internal val Project.layoutBuildDir get() = layout.buildDirectory.get().asFile
3121

32-
internal val Project.kotlin: KotlinMultiplatformExtension get() = extensions.getByType()
33-
internal val Project.kmmBridgeExtension get() = extensions.getByType<KmmBridgeExtension>()
3422
val Project.publishingExtension get() = extensions.getByType<PublishingExtension>()
3523

36-
internal val Project.urlFile get() = file("$layoutBuildDir/kmmbridge/url")
37-
38-
// Cocoapods is an extension of KMP extension, so you can't just do project.extensions.getByType<CocoapodsExtension>()
39-
internal val KotlinMultiplatformExtension.cocoapodsOrNull get() = (this as ExtensionAware).extensions.findByType<CocoapodsExtension>()
40-
internal val KotlinMultiplatformExtension.cocoapods
41-
get() = cocoapodsOrNull
42-
?: error("You must apply the org.jetbrains.kotlin.native.cocoapods plugin to use cocoapods() configuration")
43-
44-
// This previously defaulted to 'false', but now you can disable it if needed, but otherwise ignore
45-
internal val Project.enablePublishing: Boolean
46-
get() = project.findStringProperty("ENABLE_PUBLISHING")?.toBoolean() ?: false
47-
48-
internal val Project.spmBuildTargets: String?
49-
get() = project.findStringProperty("spmBuildTargets")
50-
51-
@Suppress("SpellCheckingInspection")
52-
internal fun Project.zipFilePath(): File {
53-
val tempDir = file("$layoutBuildDir/kmmbridge/zip")
54-
val artifactName = "frameworkarchive.zip"
55-
return file("$tempDir/$artifactName")
56-
}
57-
58-
public fun Project.findStringProperty(name: String): String? {
24+
fun Project.findStringProperty(name: String): String? {
5925
rootProject.extensions.getByType(ExtraPropertiesExtension::class.java).run {
6026
if (has(name))
6127
return get(name).toString()
6228
}
6329
return null
6430
}
65-
66-
internal const val TASK_GROUP_NAME = "kmmbridge"
67-
public const val EXTENSION_NAME = "kmmbridge"
68-
69-
internal fun Project.findXCFrameworkAssembleTask(buildType: NativeBuildType? = null): TaskProvider<Task> {
70-
val extension = extensions.getByType<KmmBridgeExtension>()
71-
val name = extension.frameworkName.get()
72-
val buildTypeString = (buildType ?: extension.buildType.get()).getName().capitalized()
73-
val taskWithoutName = "assemble${buildTypeString}XCFramework"
74-
val taskWithName = "assemble${name.capitalized()}${buildTypeString}XCFramework"
75-
return runCatching {
76-
tasks.named(taskWithName)
77-
}.recoverCatching {
78-
tasks.named(taskWithoutName)
79-
}.getOrElse {
80-
throw UnknownTaskException(
81-
"Cannot find XCFramework assemble task. Tried $taskWithName and ${taskWithoutName}."
82-
)
83-
}
84-
}

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/artifactmanager/AwsS3PublicArtifactManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package co.touchlab.kmmbridge.artifactmanager
1515

16-
import co.touchlab.kmmbridge.kmmBridgeExtension
16+
import co.touchlab.kmmbridge.internal.kmmBridgeExtension
1717
import org.gradle.api.Project
1818
import org.gradle.api.Task
1919
import org.gradle.api.tasks.TaskProvider
@@ -27,7 +27,7 @@ import software.amazon.awssdk.services.s3.model.PutObjectRequest
2727
import java.io.File
2828
import java.util.*
2929

30-
class AwsS3PublicArtifactManager(
30+
internal class AwsS3PublicArtifactManager(
3131
private val s3Region: String,
3232
private val s3Bucket: String,
3333
private val s3AccessKeyId: String,

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/artifactmanager/MavenPublishArtifactManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package co.touchlab.kmmbridge.artifactmanager
22

3-
import co.touchlab.kmmbridge.capitalized
3+
import co.touchlab.kmmbridge.internal.capitalized
44
import co.touchlab.kmmbridge.publishingExtension
55
import org.gradle.api.GradleException
66
import org.gradle.api.Project
@@ -17,7 +17,7 @@ import java.io.File
1717
private const val FRAMEWORK_PUBLICATION_NAME = "KMMBridgeFramework"
1818
private const val KMMBRIDGE_ARTIFACT_SUFFIX = "kmmbridge"
1919

20-
class MavenPublishArtifactManager(
20+
internal class MavenPublishArtifactManager(
2121
private val publicationName: String?,
2222
private val artifactSuffix: String?,
2323
private val repositoryName: String?,

kmmbridge/src/main/kotlin/co/touchlab/kmmbridge/dependencymanager/CocoapodsDependencyManager.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
package co.touchlab.kmmbridge.dependencymanager
1515

1616
import co.touchlab.kmmbridge.TASK_GROUP_NAME
17-
import co.touchlab.kmmbridge.cocoapods
18-
import co.touchlab.kmmbridge.kmmBridgeExtension
19-
import co.touchlab.kmmbridge.kotlin
20-
import co.touchlab.kmmbridge.layoutBuildDir
21-
import co.touchlab.kmmbridge.urlFile
17+
import co.touchlab.kmmbridge.internal.cocoapods
18+
import co.touchlab.kmmbridge.internal.kmmBridgeExtension
19+
import co.touchlab.kmmbridge.internal.kotlin
20+
import co.touchlab.kmmbridge.internal.layoutBuildDir
21+
import co.touchlab.kmmbridge.internal.urlFile
2222
import org.gradle.api.Action
2323
import org.gradle.api.Project
2424
import org.gradle.api.Task
@@ -31,12 +31,12 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
3131
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
3232
import java.io.File
3333

34-
sealed class SpecRepo {
34+
internal sealed class SpecRepo {
3535
object Trunk : SpecRepo()
3636
class Private(val url: String) : SpecRepo()
3737
}
3838

39-
class CocoapodsDependencyManager(
39+
internal class CocoapodsDependencyManager(
4040
private val specRepoDeferred: () -> SpecRepo,
4141
private val allowWarnings: Boolean,
4242
private val verboseErrors: Boolean

0 commit comments

Comments
 (0)