Build: use configuration for dependency on android-extensions-runtime

`evaluationDependsOn` may lead to obscure gradle errors on project configuration
This commit is contained in:
Vyacheslav Gerasimov
2019-04-23 19:52:31 +03:00
parent b3720a55d2
commit 0ec1df89fa
2 changed files with 9 additions and 9 deletions
@@ -7,6 +7,7 @@ plugins {
} }
val robolectricClasspath by configurations.creating val robolectricClasspath by configurations.creating
val androidExtensionsRuntimeForTests by configurations.creating
dependencies { dependencies {
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") } testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
@@ -35,6 +36,8 @@ dependencies {
robolectricClasspath(project(":kotlin-android-extensions-runtime")) { isTransitive = false } robolectricClasspath(project(":kotlin-android-extensions-runtime")) { isTransitive = false }
embedded(project(":kotlin-android-extensions-runtime")) { isTransitive = false } embedded(project(":kotlin-android-extensions-runtime")) { isTransitive = false }
androidExtensionsRuntimeForTests(project(":kotlin-android-extensions-runtime")) { isTransitive = false }
} }
sourceSets { sourceSets {
@@ -46,16 +49,15 @@ runtimeJar()
dist() dist()
testsJar {} testsJar()
evaluationDependsOn(":kotlin-android-extensions-runtime")
projectTest { projectTest {
environment("ANDROID_EXTENSIONS_RUNTIME_CLASSES", getSourceSetsFrom(":kotlin-android-extensions-runtime")["main"].output.classesDirs.asPath) dependsOn(androidExtensionsRuntimeForTests)
dependsOn(":dist") dependsOn(":dist")
workingDir = rootDir workingDir = rootDir
useAndroidJar() useAndroidJar()
doFirst { doFirst {
systemProperty("androidExtensionsRuntime.classpath", androidExtensionsRuntimeForTests.asPath)
val androidPluginPath = File(intellijRootDir(), "plugins/android").canonicalPath val androidPluginPath = File(intellijRootDir(), "plugins/android").canonicalPath
systemProperty("ideaSdk.androidPlugin.path", androidPluginPath) systemProperty("ideaSdk.androidPlugin.path", androidPluginPath)
systemProperty("robolectric.classpath", robolectricClasspath.asPath) systemProperty("robolectric.classpath", robolectricClasspath.asPath)
@@ -125,12 +125,10 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() {
val junitCoreResourceName = JUnitCore::class.java.name.replace('.', '/') + ".class" val junitCoreResourceName = JUnitCore::class.java.name.replace('.', '/') + ".class"
val junitJar = File(JUnitCore::class.java.classLoader.getResource(junitCoreResourceName).file.substringBeforeLast('!')) val junitJar = File(JUnitCore::class.java.classLoader.getResource(junitCoreResourceName).file.substringBeforeLast('!'))
val androidExtensionsRuntimeCP = val androidExtensionsRuntimeJars = System.getProperty("androidExtensionsRuntime.classpath")?.split(File.pathSeparator)?.map(::File)
(System.getenv("ANDROID_EXTENSIONS_RUNTIME_CLASSES")?.split(File.pathSeparator) ?: error("Unable to get a valid classpath from 'androidExtensionsRuntime.classpath' property")
?: listOf("out/production/android-extensions-runtime")
).map { File(it) }
return listOf(kotlinRuntimeJar) + layoutLibJars + robolectricJars + junitJar + androidExtensionsRuntimeCP return listOf(kotlinRuntimeJar) + layoutLibJars + robolectricJars + junitJar + androidExtensionsRuntimeJars
} }
override fun doMultiFileTest(wholeFile: File, files: List<TestFile>, javaFilesDir: File?) { override fun doMultiFileTest(wholeFile: File, files: List<TestFile>, javaFilesDir: File?) {