1+ import org.gradle.kotlin.dsl.support.serviceOf
2+ import org.gradle.kotlin.dsl.withType
3+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
4+
5+ plugins {
6+ alias(libs.plugins.spring.dependency.management)
7+ alias(libs.plugins.spring.boot)
8+ alias(libs.plugins.kotlin.jvm)
9+ alias(libs.plugins.kotlin.plugin.spring)
10+ }
11+
12+ kotlin.jvmToolchain {
13+ languageVersion.set(JavaLanguageVersion .of(17 ))
14+ vendor.set(JvmVendorSpec .AMAZON )
15+ }
16+
17+ val resourceDependency: Configuration by configurations.creating {
18+ isCanBeResolved = true
19+ isCanBeConsumed = false
20+ }
21+
22+ val kotlinComposeWasmStdlibTypeInfo: Configuration by configurations.creating {
23+ isTransitive = false
24+ isCanBeResolved = true
25+ isCanBeConsumed = false
26+ attributes {
27+ attribute(
28+ Category .CATEGORY_ATTRIBUTE ,
29+ objects.categoryComposeCache
30+ )
31+ attribute(
32+ CacheAttribute .cacheAttribute,
33+ CacheAttribute .TYPEINFO
34+ )
35+ }
36+ }
37+
38+ val kotlinComposeWasmStdlib: Configuration by configurations.creating {
39+ isTransitive = false
40+ isCanBeResolved = true
41+ isCanBeConsumed = false
42+ attributes {
43+ attribute(
44+ Category .CATEGORY_ATTRIBUTE ,
45+ objects.categoryComposeCache
46+ )
47+ attribute(
48+ CacheAttribute .cacheAttribute,
49+ CacheAttribute .FULL
50+ )
51+ }
52+ }
53+
54+ dependencies {
55+ implementation(" org.springframework.boot:spring-boot-starter-web" )
56+ // implementation(libs.springfox.boot.starter)
57+ // implementation(libs.aws.springboot.container)
58+ // implementation(libs.junit)
59+ // implementation(libs.logback.logstash.encoder)
60+ // implementation(libs.intellij.trove4j)
61+ // implementation(libs.kotlin.reflect)
62+ // implementation(libs.bundles.kotlin.stdlib)
63+ // implementation(libs.kotlin.test)
64+ // implementation(libs.kotlin.compiler)
65+ // implementation(libs.kotlin.script.runtime)
66+ // implementation(libs.kotlin.compiler.ide) {
67+ // isTransitive = false
68+ // }
69+ // implementation(libs.kotlin.core)
70+ // implementation(project(":executors", configuration = "default"))
71+ // implementation(project(":common", configuration = "default"))
72+ //
73+ // testImplementation("org.springframework.boot:spring-boot-starter-test") {
74+ // exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
75+ // }
76+ // testImplementation(libs.kotlinx.coroutines.test)
77+
78+ resourceDependency(libs.skiko.js.wasm.runtime)
79+ kotlinComposeWasmStdlib(project(" :cache-maker" ))
80+ kotlinComposeWasmStdlibTypeInfo(project(" :cache-maker" ))
81+ }
82+
83+ val composeWasmPropertiesUpdater by tasks.registering(ComposeWasmPropertiesUpdater ::class ) {
84+ dependsOn(kotlinComposeWasmStdlibTypeInfo)
85+ propertiesMap.put(" spring.mvc.pathmatch.matching-strategy" , " ant_path_matcher" )
86+ propertiesMap.put(" server.port" , " 8081" )
87+ propertiesMap.put(" skiko.version" , libs.versions.skiko.get())
88+
89+ val applicationPropertiesFile = projectDir.resolve(" src/main/resources/application.properties" )
90+ val applicationProperties = applicationPropertiesFile.absolutePath
91+ propertiesPath.set(applicationProperties)
92+
93+ typeInfoFile.set(kotlinComposeWasmStdlibTypeInfo.singleFile)
94+
95+ if (! applicationPropertiesFile.exists()) {
96+ applicationPropertiesFile.createNewFile()
97+ }
98+ }
99+
100+ tasks.withType<KotlinCompile > {
101+ dependsOn(composeWasmPropertiesUpdater)
102+ }
103+
104+ tasks.named<Copy >(" processResources" ) {
105+ dependsOn(composeWasmPropertiesUpdater)
106+ val archiveOperation = project.serviceOf<ArchiveOperations >()
107+ from(resourceDependency.map {
108+ archiveOperation.zipTree(it)
109+ }) {
110+ into(" com/compiler/server" )
111+ }
112+ from(kotlinComposeWasmStdlib) {
113+ into(" com/compiler/server" )
114+ }
115+ }
0 commit comments