-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.gradle.kts
96 lines (86 loc) · 2.67 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
plugins {
kotlin("multiplatform") version "1.6.20"
id("com.google.devtools.ksp")
id("maven-publish")
}
group = "com.rikonardo.pluginscan"
version = "1.0.3"
repositories {
mavenCentral()
maven {
url = uri("https://maven.rikonardo.com/releases")
}
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
dependsOn(tasks.withType<com.google.devtools.ksp.gradle.KspTaskMetadata>())
}
kotlin {
jvm {
compilations.all {
kotlinOptions.jvmTarget = "1.8"
}
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
}
}
js(BOTH) {
browser {
commonWebpackConfig {
cssSupport.enabled = true
}
}
}
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
hostOs == "Mac OS X" -> macosX64("native")
hostOs == "Linux" -> linuxX64("native")
isMingwX64 -> mingwX64("native")
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
}
sourceSets {
val commonMain by getting {
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
dependencies {
implementation(kotlin("test"))
implementation("com.rikonardo.cafebabe:CafeBabe:1.0.1")
}
}
val commonTest by getting
val jvmMain by getting
val jvmTest by getting
val jsMain by getting
val jsTest by getting
val nativeMain by getting
val nativeTest by getting
}
val publicationsFromMainHost =
listOf(jvm(), js()).map { it.name } + "kotlinMultiplatform"
publishing {
publications {
matching { it.name in publicationsFromMainHost }.all {
val targetPublication = this@all
tasks.withType<AbstractPublishToMaven>()
.matching { it.publication == targetPublication }
.configureEach { onlyIf { findProperty("isMainHost") == "true" } }
}
}
}
}
dependencies {
add("kspCommonMainMetadata", project(":preprocessor"))
}
publishing {
repositories {
maven {
val properties = org.jetbrains.kotlin.konan.properties.Properties()
properties.load(rootProject.file("publish.properties").inputStream())
url = uri(properties["deployRepoUrl"].toString())
credentials {
username = properties["deployRepoUsername"].toString()
password = properties["deployRepoPassword"].toString()
}
}
}
}