File tree Expand file tree Collapse file tree 5 files changed +31
-10
lines changed
plugin/main/src/kotlinx/benchmark/gradle Expand file tree Collapse file tree 5 files changed +31
-10
lines changed Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ class BenchmarksPlugin : Plugin<Project> {
5858 task<DefaultTask >(it.prefixName(RUN_BENCHMARKS_TASKNAME )) {
5959 group = BENCHMARKS_TASK_GROUP
6060 description = " Execute all benchmarks in a project"
61- extensions.extraProperties.set(" idea.internal.test" , System .getProperty (" idea.active" ))
61+ extensions.extraProperties.set(" idea.internal.test" , getSystemProperty (" idea.active" ))
6262
6363 // Force all benchmarks runner to first build all benchmarks to ensure it won't spend time
6464 // running some benchmarks when other will fail to compile
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ fun Project.createJsBenchmarkExecTask(
1717
1818 group = BenchmarksPlugin .BENCHMARKS_TASK_GROUP
1919 description = " Executes benchmark for '${target.name} '"
20- extensions.extraProperties.set(" idea.internal.test" , System .getProperty (" idea.active" ))
20+ extensions.extraProperties.set(" idea.internal.test" , project.getSystemProperty (" idea.active" ))
2121
2222 val reportsDir = benchmarkReportsDir(config, target)
2323 val reportFile = reportsDir.resolve(" ${target.name} .${config.reportFileExt()} " )
Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ fun Project.createJvmBenchmarkExecTask(
9595 ) {
9696 group = BenchmarksPlugin .BENCHMARKS_TASK_GROUP
9797 description = " Execute benchmark for '${target.name} '"
98- extensions.extraProperties.set(" idea.internal.test" , System .getProperty (" idea.active" ))
98+ extensions.extraProperties.set(" idea.internal.test" , project.getSystemProperty (" idea.active" ))
9999
100100 val benchmarkBuildDir = benchmarkBuildDir(target)
101101 val reportsDir = benchmarkReportsDir(config, target)
Original file line number Diff line number Diff line change @@ -106,7 +106,7 @@ fun Project.createNativeBenchmarkExecTask(
106106 ) {
107107 group = BenchmarksPlugin .BENCHMARKS_TASK_GROUP
108108 description = " Executes benchmark for '${target.name} '"
109- extensions.extraProperties.set(" idea.internal.test" , System .getProperty (" idea.active" ))
109+ extensions.extraProperties.set(" idea.internal.test" , project.getSystemProperty (" idea.active" ))
110110
111111 val binary =
112112 benchmarkCompilation.target.binaries.getExecutable(benchmarkCompilation.name, NativeBuildType .RELEASE )
Original file line number Diff line number Diff line change 11package kotlinx.benchmark.gradle
22
3- import groovy.lang.*
4- import org.gradle.api.*
5- import org.gradle.api.tasks.*
6- import java.io.*
7- import java.time.*
8- import java.time.format.*
3+ import groovy.lang.Closure
4+ import org.gradle.api.Action
5+ import org.gradle.api.Project
6+ import org.gradle.api.Task
7+ import org.gradle.api.invocation.Gradle
8+ import org.gradle.api.tasks.TaskProvider
9+ import org.gradle.util.GradleVersion
10+ import java.io.File
11+ import java.time.LocalDateTime
12+ import java.time.format.DateTimeFormatter
913
1014fun cleanup (file : File ) {
1115 if (file.exists()) {
@@ -115,3 +119,20 @@ private fun validateConfig(config: BenchmarkConfiguration) {
115119 }
116120
117121}
122+
123+ internal val Gradle .isConfigurationCacheAvailable
124+ get() = try {
125+ val startParameters = gradle.startParameter
126+ startParameters.javaClass.getMethod(" isConfigurationCache" )
127+ .invoke(startParameters) as ? Boolean
128+ } catch (_: Exception ) {
129+ null
130+ } ? : false
131+
132+ internal fun Project.getSystemProperty (key : String ): String? {
133+ return if (gradle.isConfigurationCacheAvailable) {
134+ providers.systemProperty(key).forUseAtConfigurationTime().orNull
135+ } else {
136+ System .getProperty(key)
137+ }
138+ }
You can’t perform that action at this time.
0 commit comments