-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFkcSetupKotlinApp.kt
38 lines (36 loc) · 1.3 KB
/
FkcSetupKotlinApp.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@file:JvmName("Fkc")
@file:JvmMultifileClass
import fluxo.conf.dsl.FluxoConfigurationExtension
import fluxo.conf.dsl.fluxoConfiguration
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
/**
* Lazily configures a Kotlin JVM app module (Gradle [Project]).
* Suitable for Compose, CLI, or any other JVM application.
*
* @receiver The [Project] to configure.
*
* @param setupKsp Whether to set up KSP (auto-detected if already applied).
* @param optIns List of the Kotlin opt-ins to add in the project.
*
* @param kotlin Configuration block for the [KotlinJvmProjectExtension].
* @param config Configuration block for the [FluxoConfigurationExtension].
*
* @see org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
* @see fluxo.conf.dsl.FluxoConfigurationExtension.setupKsp
* @see fluxo.conf.dsl.FluxoConfigurationExtension.optIns
*
* @see fkcSetupKotlinApp for a library configuration defaults.
*/
@JvmName("setupKotlinApp")
public fun Project.fkcSetupKotlinApp(
setupKsp: Boolean? = null,
optIns: List<String>? = null,
kotlin: (KotlinJvmProjectExtension.() -> Unit)? = null,
config: (FluxoConfigurationExtension.() -> Unit)? = null,
) {
fluxoConfiguration {
isApplication = true
setupKotlin(optIns, setupKsp, config, kotlin)
}
}