mirror of
https://github.com/apple/pkl.git
synced 2026-03-17 23:03:54 +01:00
This change activates the `TYPESAFE_PROJECT_ACCESSORS` feature preview in Gradle, and switches to such accessors instead of string-based project references, where possible Relates-To: apple/pkl#204 Signed-off-by: Sam Gammon <sam@elide.ventures>
49 lines
1.6 KiB
Kotlin
49 lines
1.6 KiB
Kotlin
plugins {
|
|
pklAllProjects
|
|
pklJavaLibrary
|
|
pklGraalVm
|
|
id("me.champeau.jmh")
|
|
}
|
|
|
|
val truffle: Configuration by configurations.creating
|
|
val graal: Configuration by configurations.creating
|
|
|
|
@Suppress("UnstableApiUsage")
|
|
dependencies {
|
|
jmh(projects.pklCore)
|
|
// necessary because antlr4-runtime is declared as implementation dependency in pkl-core.gradle
|
|
jmh(libs.antlrRuntime)
|
|
truffle(libs.truffleApi)
|
|
graal(libs.graalCompiler)
|
|
}
|
|
|
|
jmh {
|
|
//include = ["fib_class_java"]
|
|
//include = ["fib_class_constrained1", "fib_class_constrained2"]
|
|
jmhVersion.set(libs.versions.jmh)
|
|
// jvmArgsAppend = "-Dgraal.TruffleCompilationExceptionsAreFatal=true " +
|
|
// "-Dgraal.Dump=Truffle,TruffleTree -Dgraal.TraceTruffleCompilation=true " +
|
|
// "-Dgraal.TruffleFunctionInlining=false"
|
|
jvm.set("${buildInfo.graalVm.baseDir}/bin/java")
|
|
// see: https://docs.oracle.com/en/graalvm/enterprise/20/docs/graalvm-as-a-platform/implement-language/#disable-class-path-separation
|
|
jvmArgs.set(
|
|
listOf(
|
|
// one JVM arg per list element doesn't work, but the following does
|
|
"-Dgraalvm.locatorDisabled=true --module-path=${truffle.asPath} --upgrade-module-path=${graal.asPath}"
|
|
)
|
|
)
|
|
includeTests.set(false)
|
|
//threads = Runtime.runtime.availableProcessors() / 2 + 1
|
|
//synchronizeIterations = false
|
|
}
|
|
|
|
tasks.named("jmh") {
|
|
dependsOn(":installGraalVm")
|
|
}
|
|
|
|
// Prevent this error which occurs when building in IntelliJ:
|
|
// "Entry org/pkl/core/fib_class_typed.pkl is a duplicate but no duplicate handling strategy has been set."
|
|
tasks.processJmhResources {
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|