FoundryProperties
(Mostly Gradle) properties for configuration of Foundry Gradle Plugin.
Order attempted as described by PropertyResolver.providerFor.
Properties
A comma-separated list of configurations to use in affected project detection.
Optional file location for an affected_projects.txt
file that contains a list of projects affected in this build.
Opt out for -Werror.
Opt out for -Werror in tests.
Always enables resources in android unit tests. Only present for benchmarking purposes and should otherwise be off.
Anvil generator projects that should always be included when Anvil is enabled.
Anvil runtime projects that should always be included when Anvil is enabled.
Flag to enable use of the Anvil KSP fork. https://github.com/ZacSweers/anvil
Global toggle to enable bugsnag. Note this still respects variant filters.
Branch pattern for git branches Bugsnag should be enabled on.
Optional override for buildToolsVersion in Android projects. Sometimes temporarily necessary to pick up new fixes.
Flag to, when true, makes affectedProjectConfigurations build upon the defaults rather than replace them.
Flag to enable ciLint on a project. Default is true.
Comma-separated list of CI lint variants to run (Android only). Default when unspecified will lint all variants.
Flag to enable ciUnitTest on this project. Default is true.
If enabled, applies the kotlinx-kover plugin to projects using ciUnitTest.
CI unit test variant (Android only). Defaults to release
.
Common compose compiler options.
Enables live literals. Note that they are disabled by default due to https://issuetracker.google.com/issues/274207650 and https://issuetracker.google.com/issues/274231394.
By default, Compose on android only enables source information in debug variants. This is a bit silly in large projects because we generally make all libraries single-variant as "release", and can result in libraries not having source information. Instead, we rely on R8 to strip out this information in release builds as needed.
Relative path to a Compose stability configuration file from the root project.
Use a workaround for compose-compiler's includeInformation
option on android projects.
User string used for debug APK outputs.
Version code used for debug APK outputs.
An alias name to a libs.versions.toml bundle for common Android Compose dependencies that should be added to android projects with compose enabled
Default namespace prefix for android projects if one isn't specified.
Default package prefix for JVM projects if one isn't specified.
Detekt baseline file, evaluated from project.layout.projectDirectory.file(...).
Detekt config files, evaluated from rootProject.file(...).
Force-disables Anvil regardless of FoundryExtension.dagger()
settings, useful for K2 testing where Anvil is unsupported.
Variants that should be disabled in a given subproject.
Enables eager configuration of FoundryArtifact publishing in subprojects. This is behind a flag as a failsafe while we try different approaches to allow lenient resolution.
Flag to enable the Gradle Dependency Analysis Plugin, which is disabled by default due to https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/204
Android cache fix plugin.
Opt-in for beta SGP features.
Enables full detekt mode (with type resolution). Off by default due to performance issues.
Flag to enable kapt in tests. By default these are disabled due to this undesirable (but surprisingly intented) behavior of running kapt + stub generation even if no processors are present.
At the time of writing, AGP does not support running lint on com.android.test
projects. This is a flag to eventually support this in the future.
Opt-in flag to enable mavenLocal repos, used for local testing.
Flag to enable/disable Moshi-IR.
Opt-in flag to enable snapshots repos, used for the dependencies build shadow job.
Flag for Error-Prone auto-patching. Enable when running an auto-patch of EP, such as when it's being introduced to a new module or upgrading EP itself.
Error-Prone checks that should be considered errors.
Log Foundry extension configuration state verbosely.
Flag to indicate whether this project is a test library (such as test utils, test fixtures, etc).
Optional link to JDK configuration
Optional error message to show when the JDK configuration is invalid.
Flag to disable JVM vendor setting locally.
Overrides the kotlin language version if present.
The project-specific kotlin.daemon.jvmargs computed by bootstrap.
Free compiler arguments to pass to Kotlin's freeCompilerArgs
property in all compilations. Should not include opt-in arguments or -progressive
.
Free compiler arguments to pass to Kotlin's freeCompilerArgs
property in JVM compilations. Should not include opt-in arguments or -progressive
.
Option to force a specific kotlin language version. By default defers to the KGP default the build is running with.
Opt-in annotations to pass to Kotlin's optIn
property.
Default for Kotlin's progressive
mode. Defaults to enabled.
Flag to connect SqlDelight sources to KSP.
Flag to connect ViewBinding sources to KSP.
Indicates that this android library project has variants. Flag-only, value is ignored.
File name to use for a project's lint baseline.
Flag to control whether or not lint checks test sources.
Flag to enable errors only in lint checks.
Flag to control whether or not lint checks ignores test sources.
Flag to control which agp version should be used for lint. Optional. Value should be a version key in libs.versions.toml
,
Experimental flag to enable logging thermal throttling on macOS devices.
Global boolean that controls whether mod score is enabled on this project.
Per-project boolean that allows for excluding this project from mod score.
Flag to enable/disable moshi proguard rule gen.
Ndk version to use for android projects.
Flag to indicate this project should be exempted from platforms, usually platform projects themselves.
Flag for Nullaway baselining. When enabled along with errorProneAutoPatch, existing nullability issues will be baselined with a castToNonNull
call to wrap it.
Gradle path to a platform project to be referenced by other projects.
Performance optimization to relocate the entire project build directory to a location outside the IDE's view. This prevents the IDE from tracking these files and improves IDE performance.
Location for robolectric-core to be referenced by app. Temporary till we have a better solution for "always add these" type of deps.
Property corresponding to the preinstrumented jars version (the -i2
suffix in jars).
Property corresponding to the SDK versions we test in Robolectric tests. Its value should be a comma-separated list of SDK ints to download.
Opt-out flag to skip the androidx dependency check. Should only be used for debugging.
Comma-separated set of projects to ignore in sorting dependencies.
Global control for enabling stricter validation of projects, such as ensuring Kotlin projects have at least one .kt
source file.
Specific toggle for validating manifests in androidTest sources.
Property corresponding to the supported languages in GA builds
Property corresponding to the supported languages in Beta builds
Property corresponding to the supported languages in Internal builds
Flag to enable verbose logging in unit tests.
Property to enable auto-fixing in topography validation.
Property pointing at a features config JSON file for foundry.gradle.topography.ModuleFeaturesConfig.
Controls how often to fork the JVM in unit tests. Default is 1000.
Parallelism multiplier to use for unit tests. This should be a float value that is multiplied by the number of cores. The value can be a fraction. Default is 0.5.
Flag for enabling test orchestrator.
When this property is present, the "internalRelease" build variant will have an application id of "com.Slack.prototype", instead of "com.Slack.internal".
Enables verbose logging in miscellaneous places of SGP. This is intended to be a less noisy alternative to running gradle with --info
or --debug
.
Property corresponding to the file path of a custom versions.json file for use with dependencies shadow jobs.
Indicates that the gradle versions plugin should allow unstable versions. By default, unstable versions are excluded due to the frequent androidx alpha/beta/rc cycle noise. Flag-only, value is ignored.