Slackbot
03/23/2023, 1:34 AMVladimir Sitnikov
03/23/2023, 6:06 AMOctavia Togami
03/23/2023, 6:13 AMbar
does not contain code that will affect foo
. You could have a project(":foo").configure { ... }
anywhere in bar
or some code it depends on, and Gradle has historically allowed that. Configure on demand is a way to tell Gradle to assume that your build will not do this. In the future, project isolation (which forbids this inter-project interaction) will be the correct way to ensure this property.kirill
03/23/2023, 7:23 AMorg.gradle.configureondemand=true
Vladimir Sitnikov
03/23/2023, 7:23 AMkirill
03/23/2023, 11:52 PMkirill
03/23/2023, 11:52 PMCaused by: com.android.builder.errors.EvalIssueException: SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '.../app/local.properties'.
at com.android.builder.errors.IssueReporter.reportError(IssueReporter.kt:112)
at com.android.builder.errors.IssueReporter.reportError$default(IssueReporter.kt:108)
at com.android.build.gradle.internal.SdkLocator.getSdkLocation(SdkLocator.kt:239)
at com.android.build.gradle.internal.SdkLocator.getSdkDirectory(SdkLocator.kt:197)
at com.android.build.gradle.internal.cxx.configure.NdkLocator.findNdkPath(NdkLocator.kt:454)
at com.android.build.gradle.internal.ndk.NdkHandler.getNdkStatus(NdkHandler.kt:85)
at com.android.build.gradle.internal.ndk.NdkHandler.getNdkPlatform(NdkHandler.kt:98)
at com.android.build.gradle.internal.ndk.NdkHandler.getNdkPlatform(NdkHandler.kt:104)
at com.android.build.gradle.BaseExtension$ndkDirectory$1.transform(BaseExtension.kt:384)
at com.android.build.gradle.BaseExtension$ndkDirectory$1.transform(BaseExtension.kt:378)
at org.gradle.api.internal.provider.ValueSupplier$Present.transform(ValueSupplier.java:541)
at org.gradle.api.internal.provider.TransformBackedProvider.mapValue(TransformBackedProvider.java:91)
at org.gradle.api.internal.provider.TransformBackedProvider.calculateOwnValue(TransformBackedProvider.java:83)
at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:73)
at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:93)
at com.android.build.gradle.BaseExtension.getNdkDirectory(BaseExtension.kt:385)
at com.nishtahir.RustAndroidPlugin$apply$$inlined$with$lambda$1$1.execute(RustAndroidPlugin.kt:528)
at com.nishtahir.RustAndroidPlugin$apply$$inlined$with$lambda$1$1.execute(RustAndroidPlugin.kt:157)
kirill
03/23/2023, 11:53 PMkirill
03/23/2023, 11:54 PMrust-android-gradle
plugin triggers these checks when it’s being applied by applying AGP plugins:
open class RustAndroidPlugin : Plugin<Project> {
internal lateinit var cargoExtension: CargoExtension
override fun apply(project: Project) {
with(project) {
cargoExtension = extensions.create("cargo", CargoExtension::class.java)
afterEvaluate {
plugins.all {
when (it) {
is AppPlugin -> configurePlugin<AppExtension>(this)
is LibraryPlugin -> configurePlugin<LibraryExtension>(this)
}
}
}
}
}
kirill
03/23/2023, 11:55 PMandroidMain
targets I apply the plugin like so:
plugins {
...
alias(libs.plugins.rust.android) // this applies RustAndroidPlugin
}
// configure plugin
cargo {
...
}
kirill
03/23/2023, 11:58 PMkirill
03/24/2023, 12:13 AMrust-android-gradle
is part of the entire Gradle project, I’m guessing it will get configured no matter what, right?