[K/N][perf] Rewrite performance server's build

Rewrite to KTS and use JS-IR backend
This commit is contained in:
Pavel Punegov
2022-10-24 17:13:33 +02:00
committed by Space Team
parent 09b7c483dd
commit 315b59e0d6
2 changed files with 77 additions and 62 deletions
@@ -1,62 +0,0 @@
buildscript {
ext.rootBuildDirectory = file('../..')
ext {
def properties = new java.util.Properties()
properties.load(new java.io.FileReader(project.file("$rootBuildDirectory/../gradle.properties")))
properties.each { k, v->
def key = k as String
def value = project.findProperty(key) ?: v
project.logger.info("${project.name} $key: $value")
set(key, value)
}
}
ext["withoutEmbedabble"] = true
MiscKt.kotlinInit(project, findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() ?: false)
ext["bootstrapKotlinRepo"] = BootstrapKt.getBootstrapKotlinRepo(project)
ext["bootstrapKotlinVersion"] = BootstrapKt.getBootstrapKotlinVersion(project)
ext["kotlinVersion"] = project.bootstrapKotlinVersion
apply from: "$rootBuildDirectory/gradle/loadRootProperties.gradle"
apply from: "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle"
}
plugins {
id("org.jetbrains.kotlin.multiplatform")
}
repositories {
mavenCentral()
}
kotlin {
sourceSets {
commonMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion"
}
kotlin.srcDir '../benchmarks/shared/src'
}
jsMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion"
implementation(npm("aws-sdk", "~2.670.0"))
}
kotlin.srcDir 'src/main/kotlin'
kotlin.srcDir 'src/main/kotlin-js'
kotlin.srcDir 'shared/src/main/kotlin'
}
}
targets {
fromPreset(presets.js, 'js') {
nodejs()
compilations.main.kotlinOptions {
outputFile = "${projectDir}/server/app.js"
moduleKind = "commonjs"
sourceMap = true
}
}
}
}
@@ -0,0 +1,77 @@
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_COMMONJS
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
buildscript {
val rootBuildDirectory by extra(file("../.."))
java.util.Properties().also {
it.load(java.io.FileReader(project.file("$rootBuildDirectory/../gradle.properties")))
}.forEach { k, v ->
val key = k as String
val value = project.findProperty(key) ?: v
extra[key] = value
}
extra["withoutEmbedabble"] = true
project.kotlinInit(findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() ?: false)
val bootstrapKotlinVersion: String by extra(project.bootstrapKotlinVersion)
val kotlinVersion: String by extra(bootstrapKotlinVersion)
apply(from = "$rootBuildDirectory/gradle/loadRootProperties.gradle")
apply(from = "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle")
}
plugins {
kotlin("multiplatform")
}
val kotlinVersion: String by extra(bootstrapKotlinVersion)
repositories {
mavenCentral()
}
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion")
}
kotlin.srcDir("../benchmarks/shared/src")
}
val jsMain by creating {
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-js:$kotlinVersion")
implementation(npm("body-parser", "~1.20.0"))
implementation(npm("debug", "~4.3.4"))
implementation(npm("ejs", "~3.1.7"))
implementation(npm("express", "~4.18.1"))
implementation(npm("kotlin", "~1.6.20"))
implementation(npm("node-fetch", "~2.6.6"))
}
kotlin {
srcDir("src/main/kotlin")
srcDir("src/main/kotlin-js")
srcDir("shared/src/main/kotlin")
}
}
}
targets {
js {
moduleName = "app"
nodejs()
compilations.all {
compilerOptions.configure {
moduleKind.set(MODULE_COMMONJS)
sourceMap.set(true)
}
}
binaries.executable()
}
}
}
tasks.withType<KotlinJsIrLink> {
destinationDirectory.set(project.file("server"))
}