-
Notifications
You must be signed in to change notification settings - Fork 138
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
69 lines (61 loc) · 2.06 KB
/
Copy pathbuild.gradle.kts
File metadata and controls
69 lines (61 loc) · 2.06 KB
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
plugins {
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.compose) apply false
alias(libs.plugins.jetbrains.compose) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.application) apply false
}
tasks.register("checkAndroid") {
group = "verification"
description = "Runs Android companion checks and release assembly."
dependsOn(
":conversionCore:testReleaseUnitTest",
":shared:testReleaseUnitTest",
":androidApp:assembleRelease",
)
}
val assembleWebSite by tasks.registering(Sync::class) {
group = "distribution"
description = "Stages the Compose/Wasm application and firmware for GitHub Pages."
val siteDirectory = layout.buildDirectory.dir("webSite")
dependsOn(":webApp:wasmJsBrowserDistribution")
from(project(":webApp").layout.buildDirectory.dir("dist/wasmJs/productionExecutable"))
from(layout.buildDirectory.dir("firmware")) {
into("firmware")
}
into(siteDirectory)
doLast {
val site = siteDirectory.get().asFile
val assets = site.walkTopDown()
.filter { it.isFile && !it.relativeTo(site).invariantSeparatorsPath.startsWith("firmware/") }
.map { "./${it.relativeTo(site).invariantSeparatorsPath}" }
.filterNot {
it == "./asset-manifest.json" ||
it.endsWith(".map") ||
it.endsWith(".LICENSE.txt")
}
.sorted()
.joinToString(prefix = "[\n \"", separator = "\",\n \"", postfix = "\"\n]\n")
site.resolve("asset-manifest.json").writeText(assets)
}
}
tasks.register("checkWeb") {
group = "verification"
description = "Runs Wasm conversion and browser checks, then stages the Pages site."
dependsOn(
":conversionCore:wasmJsBrowserTest",
":webApp:wasmJsBrowserTest",
assembleWebSite,
)
}
tasks.register("checkIos") {
group = "verification"
description = "Runs iOS companion checks for CI and device framework builds."
dependsOn(
":conversionCore:compileKotlinIosArm64",
":conversionCore:iosSimulatorArm64Test",
":shared:compileKotlinIosArm64",
)
}