b6edf9a86e
Such dependencies will be embedded into plugin jar and their package will be relocated. This is need to avoid dependency conflicts with user build scripts dependencies or other Gradle plugins. Kotlin project dependencies are not shadowed. ^KT-46034 Fixed
77 lines
2.3 KiB
Kotlin
77 lines
2.3 KiB
Kotlin
plugins {
|
|
kotlin("jvm")
|
|
id("jps-compatible")
|
|
kotlin("plugin.serialization")
|
|
id("de.undercouch.download")
|
|
}
|
|
|
|
dependencies {
|
|
implementation(kotlinStdlib())
|
|
testImplementation(commonDependency("junit:junit"))
|
|
testCompileOnly(project(":kotlin-test:kotlin-test-jvm"))
|
|
testCompileOnly(project(":kotlin-test:kotlin-test-junit"))
|
|
testImplementation(projectTests(":compiler:tests-common"))
|
|
testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
|
|
}
|
|
|
|
|
|
val testSuiteRevision = "18f8340"
|
|
val testSuiteDir = File(buildDir, "testsuite")
|
|
val testSuiteZip = File(testSuiteDir, testSuiteRevision + ".zip")
|
|
|
|
val downloadTestSuite by task<de.undercouch.gradle.tasks.download.Download> {
|
|
src("https://github.com/WebAssembly/testsuite/zipball/$testSuiteRevision")
|
|
dest(testSuiteZip)
|
|
overwrite(false)
|
|
}
|
|
|
|
val unzipTestSuite by task<Copy> {
|
|
dependsOn(downloadTestSuite)
|
|
from(zipTree(downloadTestSuite.get().dest))
|
|
into(testSuiteDir)
|
|
}
|
|
|
|
val wabtDir = File(buildDir, "wabt")
|
|
val wabtVersion = "1.0.19"
|
|
|
|
val downloadWabt by task<de.undercouch.gradle.tasks.download.Download> {
|
|
val gradleOs = org.gradle.internal.os.OperatingSystem.current()
|
|
val os = when {
|
|
gradleOs.isMacOsX -> "macos"
|
|
gradleOs.isWindows -> "windows"
|
|
gradleOs.isLinux -> "ubuntu"
|
|
else -> error("Unsupported OS: $gradleOs")
|
|
}
|
|
val fileName = "wabt-$wabtVersion-$os.tar.gz"
|
|
src("https://github.com/WebAssembly/wabt/releases/download/$wabtVersion/$fileName")
|
|
dest(File(wabtDir, fileName))
|
|
overwrite(false)
|
|
}
|
|
|
|
val unzipWabt by task<Copy> {
|
|
dependsOn(downloadWabt)
|
|
from(tarTree(resources.gzip(downloadWabt.get().dest)))
|
|
into(wabtDir)
|
|
}
|
|
|
|
sourceSets {
|
|
"main" { projectDefault() }
|
|
"test" { projectDefault() }
|
|
}
|
|
|
|
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
|
|
kotlinOptions.freeCompilerArgs += listOf(
|
|
"-opt-in=kotlin.ExperimentalUnsignedTypes",
|
|
"-Xskip-prerelease-check"
|
|
)
|
|
}
|
|
|
|
projectTest("test", true) {
|
|
dependsOn(unzipWabt)
|
|
dependsOn(unzipTestSuite)
|
|
systemProperty("wabt.bin.path", "$wabtDir/wabt-$wabtVersion/bin")
|
|
systemProperty("wasm.testsuite.path", "$testSuiteDir/WebAssembly-testsuite-$testSuiteRevision")
|
|
workingDir = projectDir
|
|
}
|
|
|
|
testsJar() |