| 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") |
| } |
| } |
| |
| } |
| } |
| |
| } |
| } |