KiteConfigModulesExtension

Where your projects live, inside kiteConfig { modules { ... } }.

kiteConfig {
modules {
shared = ":shared"
androidApps(":androidApp")
}
}

Most builds never open this block. KiteConfig finds the shared KMP project and the Android app by itself, so a standard template repo configures nothing here.

Auto-detection fails closed. When two projects apply Kotlin Multiplatform and a shared-scoped feature such as buildConfig needs one, or two projects are Android applications, the build stops and names the candidates instead of guessing. One line here ends the ambiguity for good.

What each selector controls

PropertySelectsDetected when you say nothing
sharedwhere generated commonMain source landsthe sole project applying Kotlin Multiplatform
androidAppswhich apps receive identity, versions, and logo outputthe sole Android application project
desktopAppswhich desktop apps receive identity, versions, and installer iconsthe sole Compose Desktop application project
androidAppDirectorywhere launcher resources are writtenthe selected application's own directory
composeResourceswhere locale discovery readsthe shared project's commonMain/composeResources

Detection reports rather than guesses. Zero or several candidates fails with the list of what it found and the one line that settles it.

See also

for the feature that most often needs shared.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
abstract val androidAppDirectory: DirectoryProperty

Directory of the Android app module on disk.

Link copied to clipboard
abstract val androidApps: ListProperty<String>

Exact Android application project paths, absolute, such as ":androidApp". These receive app identity, versions, display name, locale filters, and logo output.

Link copied to clipboard
abstract val composeResources: DirectoryProperty

Compose resources directory that locale discovery reads.

Link copied to clipboard
abstract val desktopApps: ListProperty<String>

Exact Compose Desktop application project paths, absolute, such as ":desktopApp". These receive app identity, versions, packaging names, and installer icons.

Link copied to clipboard
abstract val shared: Property<String>

Absolute Gradle path of the KMP project that owns generated commonMain source, for example ":shared" or ":core:shared".

Functions

Link copied to clipboard
fun androidApps(vararg paths: String)

Adds one or more application paths to androidApps.

Link copied to clipboard
fun desktopApps(vararg paths: String)

Adds one or more desktop application paths to desktopApps.