Skip to content

Instantly share code, notes, and snippets.

@egorikftp
Last active April 19, 2022 11:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save egorikftp/46187612a2ab39c99f3c1c3709731e99 to your computer and use it in GitHub Desktop.
Save egorikftp/46187612a2ab39c99f3c1c3709731e99 to your computer and use it in GitHub Desktop.
KMM extensions for sourceSets
import org.gradle.api.NamedDomainObjectContainer
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
typealias SourceSets = NamedDomainObjectContainer<KotlinSourceSet>
fun SourceSets.androidMain(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("androidMain", setup)
fun SourceSets.commonMain(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("commonMain", setup)
fun SourceSets.jvmMain(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("jvmMain", setup)
fun SourceSets.desktopMain(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("desktopMain", setup)
fun SourceSets.iosArm64Main(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("iosArm64Main", setup)
fun SourceSets.iosMain(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("iosMain", setup)
fun SourceSets.iosX64Main(setup: KotlinSourceSet.() -> Unit) = kotlinSourceSet("iosX64Main", setup)
private fun SourceSets.kotlinSourceSet(
name: String,
setup: KotlinSourceSet.() -> Unit
) = named(name, setup).get()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment