Skip to content

Commit 345dd08

Browse files
committed
Added platform filtering for test utils
1 parent 8e0c72b commit 345dd08

File tree

3 files changed

+60
-41
lines changed

3 files changed

+60
-41
lines changed

firebase-perf/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ kotlin {
146146
if (name.lowercase().contains("ios")
147147
|| name.lowercase().contains("apple")
148148
|| name.lowercase().contains("tvos")
149+
|| name.lowercase().contains("macos")
149150
) {
150151
optIn("kotlinx.cinterop.ExperimentalForeignApi")
151152
}

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,18 @@ kotlin.native.cacheKind=none
2222
firebase-analytics.supportedTargets=ios,macos,tvos,jvm,js,android
2323
firebase-app.supportedTargets=ios,macos,tvos,jvm,js,android
2424
firebase-auth.supportedTargets=ios,macos,tvos,jvm,js,android
25-
firebase-common-internal.supportedTargets=ios,macos,tvos,jvm,js
25+
firebase-common-internal.supportedTargets=ios,macos,tvos,jvm,js,android
2626
firebase-common.supportedTargets=ios,macos,tvos,jvm,js,android
2727
firebase-config.supportedTargets=ios,macos,tvos,jvm,js,android
28-
firebase-crashlytics.supportedTargets=ios,macos,tvos,jvm,js
28+
firebase-crashlytics.supportedTargets=ios,macos,tvos,jvm,js,android
2929
firebase-database.supportedTargets=ios,macos,tvos,jvm,js,android
3030
firebase-firestore.supportedTargets=ios,macos,tvos,jvm,js,android
3131
firebase-functions.supportedTargets=ios,macos,tvos,jvm,js,android
3232
firebase-installations.supportedTargets=ios,macos,tvos,jvm,js,android
3333
firebase-messaging.supportedTargets=ios,macos,tvos,jvm,js,android
3434
firebase-perf.supportedTargets=ios,macos,tvos,jvm,js,android
3535
firebase-storage.supportedTargets=ios,macos,tvos,jvm,js,android
36+
test-utils.supportedTargets=ios,macos,tvos,jvm,js,android
3637

3738
# Versions:
3839
firebase-analytics.version=2.3.0

test-utils/build.gradle.kts

Lines changed: 56 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
22
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
33
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
44
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
5+
import utils.TargetPlatform
6+
import utils.toTargetPlatforms
57

68
/*
79
* Copyright (c) 2023 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license.
@@ -10,37 +12,40 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
1012
// this project is used only in tests to share common code. publishing is disabled in the root build.gradle.kts
1113

1214
version = "0.0.1"
15+
val supportedPlatforms = (project.property("test-utils.supportedTargets") as String).toTargetPlatforms()
1316

1417
plugins {
1518
id("com.android.library")
1619
kotlin("multiplatform")
1720
kotlin("plugin.serialization")
1821
}
1922

20-
android {
21-
val minSdkVersion: Int by project
22-
val compileSdkVersion: Int by project
23+
if (supportedPlatforms.contains(TargetPlatform.Android)) {
24+
android {
25+
val minSdkVersion: Int by project
26+
val compileSdkVersion: Int by project
2327

24-
compileSdk = compileSdkVersion
25-
namespace = "dev.gitlive.firebase.testUtils"
28+
compileSdk = compileSdkVersion
29+
namespace = "dev.gitlive.firebase.testUtils"
2630

27-
defaultConfig {
28-
minSdk = minSdkVersion
29-
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
30-
}
31+
defaultConfig {
32+
minSdk = minSdkVersion
33+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
34+
}
3135

32-
compileOptions {
33-
sourceCompatibility = JavaVersion.VERSION_17
34-
targetCompatibility = JavaVersion.VERSION_17
35-
}
36+
compileOptions {
37+
sourceCompatibility = JavaVersion.VERSION_17
38+
targetCompatibility = JavaVersion.VERSION_17
39+
}
3640

37-
packaging {
38-
resources.pickFirsts.add("META-INF/kotlinx-serialization-core.kotlin_module")
39-
resources.pickFirsts.add("META-INF/AL2.0")
40-
resources.pickFirsts.add("META-INF/LGPL2.1")
41-
}
42-
lint {
43-
abortOnError = false
41+
packaging {
42+
resources.pickFirsts.add("META-INF/kotlinx-serialization-core.kotlin_module")
43+
resources.pickFirsts.add("META-INF/AL2.0")
44+
resources.pickFirsts.add("META-INF/LGPL2.1")
45+
}
46+
lint {
47+
abortOnError = false
48+
}
4449
}
4550
}
4651

@@ -62,32 +67,40 @@ kotlin {
6267
}
6368
}
6469

65-
@Suppress("OPT_IN_USAGE")
66-
androidTarget {
67-
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
68-
unitTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
69-
publishAllLibraryVariants()
70+
if (supportedPlatforms.contains(TargetPlatform.Android)) {
71+
@Suppress("OPT_IN_USAGE")
72+
androidTarget {
73+
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
74+
unitTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
75+
publishAllLibraryVariants()
76+
}
7077
}
7178

72-
jvm()
73-
74-
val supportAppleTarget = project.property("skipAppleTargets") != "true"
79+
if (supportedPlatforms.contains(TargetPlatform.Jvm)) {
80+
jvm()
81+
}
7582

76-
if (supportAppleTarget) {
83+
if (supportedPlatforms.contains(TargetPlatform.Ios)) {
7784
iosArm64()
7885
iosX64()
7986
iosSimulatorArm64()
87+
}
88+
if (supportedPlatforms.contains(TargetPlatform.Tvos)) {
8089
tvosX64()
8190
tvosArm64()
8291
tvosSimulatorArm64()
92+
}
93+
if (supportedPlatforms.contains(TargetPlatform.Macos)) {
8394
macosArm64()
8495
macosX64()
8596
}
8697

87-
js(IR) {
88-
useCommonJs()
89-
nodejs()
90-
browser()
98+
if (supportedPlatforms.contains(TargetPlatform.Js)) {
99+
js(IR) {
100+
useCommonJs()
101+
nodejs()
102+
browser()
103+
}
91104
}
92105

93106
sourceSets {
@@ -111,15 +124,19 @@ kotlin {
111124
}
112125
}
113126

114-
getByName("jsMain") {
115-
dependencies {
116-
implementation(kotlin("test-js"))
127+
if (supportedPlatforms.contains(TargetPlatform.Js)) {
128+
getByName("jsMain") {
129+
dependencies {
130+
implementation(kotlin("test-js"))
131+
}
117132
}
118133
}
119134

120-
getByName("jvmMain") {
121-
dependencies {
122-
api(libs.kotlinx.coroutines.swing)
135+
if (supportedPlatforms.contains(TargetPlatform.Jvm)) {
136+
getByName("jvmMain") {
137+
dependencies {
138+
api(libs.kotlinx.coroutines.swing)
139+
}
123140
}
124141
}
125142
}

0 commit comments

Comments
 (0)