Skip to content

Commit fafb86c

Browse files
committed
Support users to set sdkDir for Android
1 parent 664668b commit fafb86c

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

plugin/main/src/kotlinx/benchmark/gradle/AndroidMultiplatformTasks.kt

+10
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,16 @@ private fun Project.createSetupAndroidProjectTask(target: AndroidBenchmarkTarget
5151
)
5252
it.writeText(newText)
5353
}
54+
55+
generatedAndroidProjectDir.resolve("local.properties").let {
56+
val sdkPath = target.sdkDir.orNull
57+
if (sdkPath.isNullOrBlank()) {
58+
throw GradleException("Android SDK path is not set. Please set ANDROID_HOME environment variable or specify sdkPath in the build script.")
59+
} else {
60+
it.writeText("sdk.dir=${sdkPath.replace("\\", "/")}\n")
61+
logger.info("SDK path written to local.properties: ${it.readText()}")
62+
}
63+
}
5464
}
5565
}
5666
}

plugin/main/src/kotlinx/benchmark/gradle/BenchmarkConfiguration.kt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package kotlinx.benchmark.gradle
22

33
import kotlinx.benchmark.gradle.internal.KotlinxBenchmarkPluginInternalApi
4+
import org.gradle.api.provider.Property
45
import org.gradle.api.tasks.*
56
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
67
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
@@ -134,5 +135,9 @@ class AndroidBenchmarkTarget
134135
constructor(
135136
extension: BenchmarksExtension,
136137
name: String,
137-
val target: KotlinAndroidTarget
138-
) : BenchmarkTarget(extension, name)
138+
val target: KotlinAndroidTarget,
139+
) : BenchmarkTarget(extension, name) {
140+
val sdkDir: Property<String> = extension.project.objects.property(String::class.java).convention(
141+
System.getenv("ANDROID_HOME") ?: ""
142+
)
143+
}

0 commit comments

Comments
 (0)