# Gradle-Plugin: Get SourceSets of Koltin Multiplatform project

**URL:** <https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533>\
**Category:** Multiplatform\
**Created:** [February 28, 2020, 8:58am UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533 "2020-02-28T08:58:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![marcel.heckel](https://avatars.discourse-cdn.com/v4/letter/m/f1d935/32.png) [@marcel.heckel](https://discuss.kotlinlang.org/u/marcel.heckel)\
**Post date:** [February 28, 2020, 8:58am UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533/1 "2020-02-28T08:58:36Z")

</div>

Hi,

I want to write a Gradle plugin that need to access the source sets.

In a normal Kotlin-JVM project, I can get the sourceSets during task execution in the following way:

```
val sourceSets = project.properties["sourceSets"] as SourceSetContainer

```

This gives me “main” and “test” source sets.

But in a Koltin Multiplatform project, the sourceSets field is empty during task execution.

Is there another way to get the source sets of the Koltin Multiplatform plugin? Or do I need to respect some special contains?

---

<div class="post-metadata">

**Author:** ![Ilya.Matveev](https://avatars.discourse-cdn.com/v4/letter/i/a87d85/32.png) [@Ilya.Matveev](https://discuss.kotlinlang.org/u/Ilya.Matveev)\
**Post date:** [February 28, 2020, 9:26am UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533/2 "2020-02-28T09:26:38Z")

</div>

Hi!

In Kotlin Multiplatform plugin, the `sourceSets` container is a part of the `kotlin` project extension. So you need to get the extension first:

```auto
val kotlinExtension = project.extensions.getByName("kotlin") as KotlinMultiplatformExtension
val kotlinSourceSets = kotlinExtension.sourceSets

```

---

<div class="post-metadata">

**Author:** ![marcel.heckel](https://avatars.discourse-cdn.com/v4/letter/m/f1d935/32.png) [@marcel.heckel](https://discuss.kotlinlang.org/u/marcel.heckel)\
**Post date:** [February 28, 2020, 11:15am UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533/3 "2020-02-28T11:15:32Z")

</div>

Hi,

thanks for the hint.

But I have another problem: KotlinMultiplatformExtension cannot be resolved.

I see it here: [https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt](https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt)

But I cannot find which artifact I have to add to the dependencies of my plugin project.

---

<div class="post-metadata">

**Author:** ![marcel.heckel](https://avatars.discourse-cdn.com/v4/letter/m/f1d935/32.png) [@marcel.heckel](https://discuss.kotlinlang.org/u/marcel.heckel)\
**Post date:** [February 28, 2020, 8:25pm UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533/4 "2020-02-28T20:25:20Z")

</div>

OK, I have found it:

```
compile("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61")

```

Now it works. Thank you!

---

<div class="post-metadata">

**Author:** ![JavierSegoviaCordoba](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/javiersegoviacordoba/32/8391_2.png) [@JavierSegoviaCordoba](https://discuss.kotlinlang.org/u/JavierSegoviaCordoba)\
**Post date:** [March 8, 2021, 12:55pm UTC](https://discuss.kotlinlang.org/t/gradle-plugin-get-sourcesets-of-koltin-multiplatform-project/16533/5 "2021-03-08T12:55:42Z")

</div>

@Ilya.Matveev is it possible to transform a KotlinSourceSet into a SourceSet? I am using a third-party plugin that requires it.

![image](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/f/f8cd44dc7d5021342050799d3786979df603d2ef.png)
