Skip to content

Commit 7c31b95

Browse files
authored
Merge pull request ge-org#1 from jizoquval/m1_support
M1 support
2 parents 8d7c25e + 315300c commit 7c31b95

File tree

5 files changed

+64
-13
lines changed

5 files changed

+64
-13
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ repositories {
2424
}
2525

2626
dependencies {
27-
compileOnly(kotlin("gradle-plugin"))
27+
compileOnly(kotlin("gradle-plugin", "1.5.30"))
2828
testImplementation("io.kotest:kotest-runner-junit5:4.3.0")
2929
testImplementation("io.kotest:kotest-assertions-core:4.3.0")
3030
testImplementation("io.kotest:kotest-property:4.3.0")
3131
testImplementation("io.mockk:mockk:1.10.0")
32-
testImplementation(kotlin("gradle-plugin"))
32+
testImplementation(kotlin("gradle-plugin", "1.5.30"))
3333
}
3434

3535
java {

src/main/kotlin/com/chromaticnoise/multiplatformswiftpackage/domain/TargetName.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@ package com.chromaticnoise.multiplatformswiftpackage.domain
33
internal enum class TargetName(val identifier: String) {
44
IOSarm64("iosArm64"),
55
IOSx64("iosX64"),
6+
IOSSimulatorArm64("iosSimulatorArm64"),
67
WatchOSarm32("watchosArm32"),
78
WatchOSarm64("watchosArm64"),
89
WatchOSx86("watchosX86"),
910
WatchOSx64("watchosX64"),
11+
WatchOSSimulatorArm64("watchosSimulatorArm64"),
1012
TvOSarm64("tvosArm64"),
1113
TvOSx64("tvosX64"),
12-
MacOSx64("macosX64");
14+
TvOSSimulatorArm64("tvosSimulatorArm64"),
15+
MacOSx64("macosX64"),
16+
MacOSArm64("macosArm64");
1317

1418
internal companion object {
1519
private val map = values().associateBy(TargetName::identifier)

src/main/kotlin/com/chromaticnoise/multiplatformswiftpackage/domain/extensions.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,15 @@ internal val Collection<Either<List<PluginConfiguration.PluginConfigurationError
2020
internal val TargetName.konanTarget: KonanTarget get() = when (this) {
2121
TargetName.IOSarm64 -> KonanTarget.IOS_ARM64
2222
TargetName.IOSx64 -> KonanTarget.IOS_X64
23+
TargetName.IOSSimulatorArm64 -> KonanTarget.IOS_SIMULATOR_ARM64
2324
TargetName.WatchOSarm32 -> KonanTarget.WATCHOS_ARM32
2425
TargetName.WatchOSarm64 -> KonanTarget.WATCHOS_ARM64
2526
TargetName.WatchOSx86 -> KonanTarget.WATCHOS_X86
2627
TargetName.WatchOSx64 -> KonanTarget.WATCHOS_X64
28+
TargetName.WatchOSSimulatorArm64 -> KonanTarget.WATCHOS_SIMULATOR_ARM64
2729
TargetName.TvOSarm64 -> KonanTarget.TVOS_ARM64
2830
TargetName.TvOSx64 -> KonanTarget.TVOS_X64
31+
TargetName.TvOSSimulatorArm64 -> KonanTarget.TVOS_SIMULATOR_ARM64
2932
TargetName.MacOSx64 -> KonanTarget.MACOS_X64
33+
TargetName.MacOSArm64 -> KonanTarget.MACOS_ARM64
3034
}

src/main/kotlin/com/chromaticnoise/multiplatformswiftpackage/dsl/TargetPlatformDsl.kt

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import groovy.lang.Closure
1010
import org.gradle.util.ConfigureUtil
1111

1212
/**
13-
* DSL to create instances of [TargetPlatform].
14-
*/
13+
* DSL to create instances of [TargetPlatform].
14+
*/
1515
public class TargetPlatformDsl {
1616
internal var targetPlatforms = mutableListOf<Either<List<PluginConfigurationError>, TargetPlatform>>()
1717

@@ -21,7 +21,14 @@ public class TargetPlatformDsl {
2121
* @param version builder for an instance of [PlatformVersion]
2222
*/
2323
public fun iOS(version: PlatformVersionDsl.() -> Unit) {
24-
targetsInternal(listOf(Either.Right(TargetName.IOSarm64), Either.Right(TargetName.IOSx64)), version)
24+
targetsInternal(
25+
listOf(
26+
Either.Right(TargetName.IOSarm64),
27+
Either.Right(TargetName.IOSx64),
28+
Either.Right(TargetName.IOSSimulatorArm64)
29+
),
30+
version
31+
)
2532
}
2633

2734
public fun iOS(version: Closure<PlatformVersionDsl>) {
@@ -34,11 +41,14 @@ public class TargetPlatformDsl {
3441
* @param version builder for an instance of [PlatformVersion]
3542
*/
3643
public fun watchOS(version: PlatformVersionDsl.() -> Unit) {
37-
targetsInternal(listOf(
38-
Either.Right(TargetName.WatchOSarm32),
39-
Either.Right(TargetName.WatchOSarm64),
40-
Either.Right(TargetName.WatchOSx86),
41-
Either.Right(TargetName.WatchOSx64)),
44+
targetsInternal(
45+
listOf(
46+
Either.Right(TargetName.WatchOSarm32),
47+
Either.Right(TargetName.WatchOSarm64),
48+
Either.Right(TargetName.WatchOSx86),
49+
Either.Right(TargetName.WatchOSx64),
50+
Either.Right(TargetName.WatchOSSimulatorArm64)
51+
),
4252
version
4353
)
4454
}
@@ -53,7 +63,14 @@ public class TargetPlatformDsl {
5363
* @param version builder for an instance of [PlatformVersion]
5464
*/
5565
public fun tvOS(version: PlatformVersionDsl.() -> Unit) {
56-
targetsInternal(listOf(Either.Right(TargetName.TvOSarm64), Either.Right(TargetName.TvOSx64)), version)
66+
targetsInternal(
67+
listOf(
68+
Either.Right(TargetName.TvOSarm64),
69+
Either.Right(TargetName.TvOSx64),
70+
Either.Right(TargetName.TvOSSimulatorArm64)
71+
),
72+
version
73+
)
5774
}
5875

5976
public fun tvOS(version: Closure<PlatformVersionDsl>) {
@@ -66,7 +83,13 @@ public class TargetPlatformDsl {
6683
* @param version builder for an instance of [PlatformVersion]
6784
*/
6885
public fun macOS(version: PlatformVersionDsl.() -> Unit) {
69-
targetsInternal(listOf(Either.Right(TargetName.MacOSx64)), version)
86+
targetsInternal(
87+
listOf(
88+
Either.Right(TargetName.MacOSx64),
89+
Either.Right(TargetName.MacOSArm64)
90+
),
91+
version
92+
)
7093
}
7194

7295
public fun macOS(version: Closure<PlatformVersionDsl>) {

src/test/kotlin/com/chromaticnoise/multiplatformswiftpackage/dsl/TargetPlatformDslTest.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ class TargetPlatformDslTest : StringSpec() {
2525
.shouldHaveTarget("iosX64")
2626
}
2727

28+
"adding ios targets should add arm 64 simulator target" {
29+
TargetPlatformDsl().apply { iOS(someVersion) }.targetPlatforms
30+
.shouldHaveTarget("iosSimulatorArm64")
31+
}
32+
2833
"adding watchOS targets should add arm 32 target" {
2934
TargetPlatformDsl().apply { watchOS(someVersion) }.targetPlatforms
3035
.shouldHaveTarget("watchosArm32")
@@ -40,6 +45,11 @@ class TargetPlatformDslTest : StringSpec() {
4045
.shouldHaveTarget("watchosX86")
4146
}
4247

48+
"adding watchOS targets should add arm 64 simulator target" {
49+
TargetPlatformDsl().apply { watchOS(someVersion) }.targetPlatforms
50+
.shouldHaveTarget("watchosSimulatorArm64")
51+
}
52+
4353
"adding tvOS targets should add arm 64 target" {
4454
TargetPlatformDsl().apply { tvOS(someVersion) }.targetPlatforms
4555
.shouldHaveTarget("tvosArm64")
@@ -50,11 +60,21 @@ class TargetPlatformDslTest : StringSpec() {
5060
.shouldHaveTarget("tvosX64")
5161
}
5262

63+
"adding tvOS targets should add arm 64 simulator target" {
64+
TargetPlatformDsl().apply { tvOS(someVersion) }.targetPlatforms
65+
.shouldHaveTarget("tvosSimulatorArm64")
66+
}
67+
5368
"adding macOS targets should add x64 target" {
5469
TargetPlatformDsl().apply { macOS(someVersion) }.targetPlatforms
5570
.shouldHaveTarget("macosX64")
5671
}
5772

73+
"adding macOS targets should add arm 64 target" {
74+
TargetPlatformDsl().apply { macOS(someVersion) }.targetPlatforms
75+
.shouldHaveTarget("macosArm64")
76+
}
77+
5878
"adding target without names should not add a platform target" {
5979
TargetPlatformDsl().apply { targets(version = someVersion) }.targetPlatforms
6080
.shouldBeEmpty()

0 commit comments

Comments
 (0)