Skip to content

Commit baedda3

Browse files
authored
Introduced support for com.android.kotlin.multiplatform.library plugin (#346)
1 parent 2c77263 commit baedda3

21 files changed

Lines changed: 258 additions & 22 deletions

File tree

.github/workflows/ci-cd.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,11 @@ jobs:
3232
build:
3333
name: Build (${{ matrix.project }})
3434
needs: compute-projects
35-
runs-on: ${{ matrix.os || 'ubuntu' }}-latest
35+
runs-on: ${{ contains(matrix.project, 'kmp') && 'macos' || 'ubuntu' }}-latest
3636
strategy:
3737
fail-fast: false
3838
matrix:
3939
project: ${{ fromJSON(needs.compute-projects.outputs.projects) }}
40-
include:
41-
- project: 'demo-project:kts-multiplatform'
42-
os: 'macos'
43-
- project: 'plugin'
4440
steps:
4541
- name: Checkout
4642
uses: actions/checkout@v5

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ plugins {
88
alias(libs.plugins.kotlin.multiplatform) apply false
99
alias(libs.plugins.android.application) apply false
1010
alias(libs.plugins.android.library) apply false
11+
alias(libs.plugins.android.multiplatform) apply false
1112
alias(libs.plugins.publicationsReport)
1213
`jacoco-report-aggregation`
1314
}
File renamed without changes.

demo-project/kts-multiplatform/src/androidMain/AndroidManifest.xml renamed to demo-project/kmp-android-legacy/src/androidMain/AndroidManifest.xml

File renamed without changes.

demo-project/kts-multiplatform/src/androidUnitTest/kotlin/com/github/gmazzo/buildconfig/demos/kts_multiplatform/AndroidBuildConfigTest.kt renamed to demo-project/kmp-android-legacy/src/androidUnitTest/kotlin/com/github/gmazzo/buildconfig/demos/kmp_android_legacy/AndroidBuildConfigTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.gmazzo.buildconfig.demos.kts_multiplatform
1+
package com.github.gmazzo.buildconfig.demos.kmp_android_legacy
22

33
import com.eygraber.uri.Uri
44
import com.github.gmazzo.buildconfig.demos.android.BuildConfig as AndroidBuildConfig
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.github.gmazzo.buildconfig.demos.kmp_android_legacy
2+
3+
import com.eygraber.uri.Uri
4+
import kotlin.test.Test
5+
import kotlin.test.assertEquals
6+
7+
abstract class CommonBuildConfigTest(
8+
private val expectedPlatform: String,
9+
private val expectedMobile: Boolean = false,
10+
private val expectedDebug: Boolean = false,
11+
private val expectedUri: Uri = Uri.parse("https://api.example.com"),
12+
private val expectedProduct: String? = null,
13+
) {
14+
15+
@Test
16+
fun testBuildConfigProperties() {
17+
assertEquals("aCommonValue", BuildConfig.COMMON_VALUE)
18+
assertEquals(expectedPlatform, BuildConfig.PLATFORM)
19+
assertEquals(expectedDebug, BuildConfig.DEBUG)
20+
assertEquals(expectedUri, BuildConfig.ENDPOINT)
21+
assertEquals(expectedProduct, BuildConfig.PRODUCT_VALUE)
22+
}
23+
24+
@Test
25+
fun testI18nProperties() {
26+
assertEquals("Hello", i18n_hello)
27+
assertEquals(expectedPlatform, i18n_kind)
28+
}
29+
30+
@Test
31+
fun testSingleProperties() {
32+
assertEquals(expectedMobile, Single.IS_MOBILE)
33+
}
34+
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.github.gmazzo.buildconfig.demos.kmp_android_legacy
2+
3+
import kotlin.test.Test
4+
import kotlin.test.assertEquals
5+
6+
class iOSBuildConfigTest : CommonBuildConfigTest(
7+
expectedPlatform = "ios",
8+
expectedMobile = true,
9+
) {
10+
11+
@Test
12+
fun testIOSOnlyValues() {
13+
assertEquals("anIOSValue", BuildConfig.IOS_VALUE)
14+
}
15+
16+
}

demo-project/kts-multiplatform/src/jvmMain/kotlin/KSPService.kt renamed to demo-project/kmp-android-legacy/src/jvmMain/kotlin/com/github/gmazzo/buildconfig/demos/kmp_android_legacy/KSPService.kt

File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.github.gmazzo.buildconfig.demos.kmp_android_legacy
2+
3+
import kotlin.test.Test
4+
import kotlin.test.assertEquals
5+
6+
class JVMBuildConfigTest : CommonBuildConfigTest(
7+
expectedPlatform = "jvm",
8+
) {
9+
10+
@Test
11+
fun testJVMOnlyValues() {
12+
assertEquals("aJvmValue", BuildConfig.JVM_VALUE)
13+
}
14+
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.github.gmazzo.buildconfig.demos.kmp_android_legacy
2+
3+
import kotlin.test.Test
4+
import kotlin.test.assertEquals
5+
6+
class WebBuildConfigTest : CommonBuildConfigTest(
7+
expectedPlatform = "web",
8+
) {
9+
10+
@Test
11+
fun testWebOnlyValues() {
12+
assertEquals("aWebValue", BuildConfig.WEB_VALUE)
13+
}
14+
15+
}

0 commit comments

Comments
 (0)