[MPP] Use android.sdk from kotlin/dependencies for functionalTests
This commit is contained in:
committed by
Space Team
parent
877438b1f3
commit
4b6ed128a2
@@ -331,6 +331,48 @@ fun Task.useAndroidJar() {
|
||||
TaskUtils.useAndroidJar(this)
|
||||
}
|
||||
|
||||
fun Task.acceptAndroidSdkLicenses() {
|
||||
val separator = System.lineSeparator()
|
||||
with(project) {
|
||||
val androidSdk = configurations["androidSdk"].singleFile
|
||||
val sdkLicensesDir = androidSdk.resolve("licenses").also {
|
||||
if (!it.exists()) it.mkdirs()
|
||||
}
|
||||
|
||||
val sdkLicenses = listOf(
|
||||
"8933bad161af4178b1185d1a37fbf41ea5269c55",
|
||||
"d56f5187479451eabf01fb78af6dfcb131a6481e",
|
||||
"24333f8a63b6825ea9c5514f83c2829b004d1fee",
|
||||
)
|
||||
val sdkPreviewLicense = "84831b9409646a918e30573bab4c9c91346d8abd"
|
||||
|
||||
val sdkLicenseFile = sdkLicensesDir.resolve("android-sdk-license")
|
||||
if (!sdkLicenseFile.exists()) {
|
||||
sdkLicenseFile.createNewFile()
|
||||
sdkLicenseFile.writeText(
|
||||
sdkLicenses.joinToString(separator = separator)
|
||||
)
|
||||
} else {
|
||||
sdkLicenses
|
||||
.subtract(
|
||||
sdkLicenseFile.readText().lines()
|
||||
)
|
||||
.forEach {
|
||||
sdkLicenseFile.appendText("$it$separator")
|
||||
}
|
||||
}
|
||||
|
||||
val sdkPreviewLicenseFile = sdkLicensesDir.resolve("android-sdk-preview-license")
|
||||
if (!sdkPreviewLicenseFile.exists()) {
|
||||
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
|
||||
} else {
|
||||
if (sdkPreviewLicense != sdkPreviewLicenseFile.readText().trim()) {
|
||||
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.confugureFirPluginAnnotationsDependency(testTask: TaskProvider<Test>) {
|
||||
val firPluginAnnotations: Configuration by configurations.creating
|
||||
|
||||
|
||||
@@ -76,44 +76,7 @@ fun addBenchmarkTask(
|
||||
|
||||
val acceptAndroidSdkLicenses = tasks.register("acceptAndroidSdkLicenses") {
|
||||
useAndroidSdk()
|
||||
doLast {
|
||||
val androidSdk = configurations["androidSdk"].singleFile
|
||||
val sdkLicensesDir = androidSdk.resolve("licenses").also {
|
||||
if (!it.exists()) it.mkdirs()
|
||||
}
|
||||
|
||||
val sdkLicenses = listOf(
|
||||
"8933bad161af4178b1185d1a37fbf41ea5269c55",
|
||||
"d56f5187479451eabf01fb78af6dfcb131a6481e",
|
||||
"24333f8a63b6825ea9c5514f83c2829b004d1fee",
|
||||
)
|
||||
val sdkPreviewLicense = "84831b9409646a918e30573bab4c9c91346d8abd"
|
||||
|
||||
val sdkLicenseFile = sdkLicensesDir.resolve("android-sdk-license")
|
||||
if (!sdkLicenseFile.exists()) {
|
||||
sdkLicenseFile.createNewFile()
|
||||
sdkLicenseFile.writeText(
|
||||
sdkLicenses.joinToString(separator = "\n")
|
||||
)
|
||||
} else {
|
||||
sdkLicenses
|
||||
.subtract(
|
||||
sdkLicenseFile.readText().lines()
|
||||
)
|
||||
.forEach {
|
||||
sdkLicenseFile.appendText("$it\n")
|
||||
}
|
||||
}
|
||||
|
||||
val sdkPreviewLicenseFile = sdkLicensesDir.resolve("android-sdk-preview-license")
|
||||
if (!sdkPreviewLicenseFile.exists()) {
|
||||
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
|
||||
} else {
|
||||
if (sdkPreviewLicense != sdkPreviewLicenseFile.readText().trim()) {
|
||||
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
|
||||
}
|
||||
}
|
||||
}
|
||||
doLast { acceptAndroidSdkLicenses() }
|
||||
}
|
||||
|
||||
fun JavaExec.usesAndroidSdk() {
|
||||
|
||||
@@ -277,6 +277,8 @@ if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||
languageVersion.set(JavaLanguageVersion.of(11))
|
||||
})
|
||||
dependsOnKotlinGradlePluginInstall()
|
||||
useAndroidSdk()
|
||||
doFirst { acceptAndroidSdkLicenses() }
|
||||
|
||||
testLogging {
|
||||
events("passed", "skipped", "failed")
|
||||
|
||||
+2
-2
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.gradle.dependencyResolutionTests.tcs
|
||||
import org.gradle.api.publish.PublishingExtension
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.android.androidTargetPrototype
|
||||
import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
@@ -48,6 +47,7 @@ class ExternalAndroidTargetPrototypeSmokeTest {
|
||||
@Test
|
||||
fun `apply prototype - evaluate - configurations can be resolved`() {
|
||||
val project = buildProjectWithMPP()
|
||||
setAndroidSdkDirProperty(project)
|
||||
project.androidLibrary { compileSdk = 31 }
|
||||
|
||||
val androidTargetPrototype = project.multiplatformExtension.androidTargetPrototype()
|
||||
@@ -84,7 +84,7 @@ class ExternalAndroidTargetPrototypeSmokeTest {
|
||||
applyMultiplatformPlugin()
|
||||
repositories.mavenCentralCacheRedirector()
|
||||
}
|
||||
|
||||
setAndroidSdkDirProperty(project)
|
||||
project.androidLibrary { compileSdk = 31 }
|
||||
project.multiplatformExtension.androidTargetPrototype()
|
||||
project.evaluate()
|
||||
|
||||
+11
-1
@@ -5,11 +5,21 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.util
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.junit.Assume
|
||||
import java.io.File
|
||||
|
||||
val isAndroidSdkAvailable: Boolean = System.getenv("ANDROID_SDK_ROOT")?.let { root -> File(root).exists() } ?: false
|
||||
val androidSdk: String? = System.getProperty("android.sdk")
|
||||
val isAndroidSdkAvailable: Boolean = androidSdk?.let { root -> File(root).exists() } ?: false
|
||||
|
||||
fun assumeAndroidSdkAvailable() {
|
||||
Assume.assumeTrue("Missing android sdk", isAndroidSdkAvailable)
|
||||
}
|
||||
|
||||
fun setAndroidSdkDirProperty(project: Project) {
|
||||
val localPropertiesFile = File(project.rootDir.canonicalPath).resolve("local.properties")
|
||||
if (!localPropertiesFile.exists()) {
|
||||
localPropertiesFile.createNewFile()
|
||||
}
|
||||
localPropertiesFile.writeText("sdk.dir = $androidSdk")
|
||||
}
|
||||
Reference in New Issue
Block a user