blob: 06753342b0eace51ddcfdff5dbd787b4c61777dd [file] [log] [blame]
package org.jetbrains.dokka.gradle
import org.junit.BeforeClass
import java.io.File
abstract class AbstractDokkaAndroidGradleTest : AbstractDokkaGradleTest() {
override val pluginClasspath: List<File> = androidPluginClasspathData.toFile().readLines().map { File(it) }
companion object {
@JvmStatic
@BeforeClass
fun acceptAndroidSdkLicenses() {
val sdkDir = androidLocalProperties?.toFile()?.let {
val lines = it.readLines().map { it.trim() }
val sdkDirLine = lines.firstOrNull { "sdk.dir" in it }
sdkDirLine?.substringAfter("=")?.trim()
} ?: System.getenv("ANDROID_HOME")
if (sdkDir == null || sdkDir.isEmpty()) {
error("Android SDK home not set, " +
"try setting \$ANDROID_HOME " +
"or sdk.dir in runners/gradle-integration-tests/testData/android.local.properties")
}
val sdkDirFile = File(sdkDir)
if (!sdkDirFile.exists()) error("\$ANDROID_HOME and android.local.properties points to non-existing location")
val sdkLicensesDir = sdkDirFile.resolve("licenses")
val acceptedLicenses = File("android-licenses")
acceptedLicenses.listFiles().forEach { licenseFile ->
val target = sdkLicensesDir.resolve(licenseFile.name)
if(!target.exists() || target.readText() != licenseFile.readText()) {
val overwrite = System.getProperty("android.licenses.overwrite", "false").toBoolean()
if (!target.exists() || overwrite) {
licenseFile.copyTo(target, true)
println("Accepted ${licenseFile.name}, by copying $licenseFile to $target")
}
}
}
}
}
}