-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
80 lines (68 loc) · 2.49 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
plugins {
alias(libs.plugins.android.lib) apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.atomicfu) apply false
alias(libs.plugins.kotlinx.bcv) apply false
alias(libs.plugins.kotlinx.kover)
alias(libs.plugins.fluxo.bcv.js) apply false
alias(libs.plugins.gradle.doctor) apply false
alias(libs.plugins.fluxo.kmp.conf)
}
// Setup project defaults.
fkcSetupRaw {
explicitApi()
// Default KMP setup.
defaults {
allDefaultTargets(
// wasmWasi = true // TODO
)
androidNative()
}
projectName = "Fluxo IO"
description = "Fluxo IO library for Kotlin Multiplatform"
githubProject = "fluxo-kt/fluxo-io"
group = "io.github.fluxo-kt"
publicationConfig {
developerId = "amal"
developerName = "Artyom Shendrik"
developerEmail = "[email protected]"
}
enableSpotless = false
apiValidation {
tsApiChecks = false
}
experimentalLatestCompilation = true
allWarningsAsErrors = true
optInInternal = true
optIns = listOf(
"kotlin.js.ExperimentalJsExport",
)
}
/**
* Find Android SDK JAR for usage as dependency in non-android modules or source sets.
*/
fun findAndroidJar(project: Project, compileSdkVersion: Int): FileCollection {
fun getSdkDirFromLocalProperties(): String? {
// Get "sdk.dir" property from local.properties file.
return project.file("local.properties")
.takeIf { it.exists() }
?.run {
readLines().firstOrNull { it.startsWith("sdk.dir=") }
?.substringAfter("sdk.dir=")
}
}
fun findAndroidSdkDir(): String? {
// https://developer.android.com/studio/command-line/variables
return getSdkDirFromLocalProperties()
?: System.getenv("ANDROID_SDK_ROOT")
?: System.getenv("ANDROID_HOME")
?: System.getProperty("android.home")
}
// References:
// https://android.googlesource.com/platform/tools/base/+/f6bef46dc8/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/SdkHandler.java#319
// https://github.com/stepango/android-jar
val androidSdkDir = findAndroidSdkDir()
?: throw java.io.FileNotFoundException("Can't locate Android SDK path")
return project.files("$androidSdkDir/platforms/android-$compileSdkVersion/android.jar")
}
extra["androidJar"] = findAndroidJar(project, libs.versions.androidCompileSdk.get().toInt())