@@ -2,10 +2,13 @@ package godot.gradle
22
33import godot.gradle.projectExt.checkKotlinVersionCompatibility
44import godot.gradle.projectExt.configureThirdPartyPlugins
5+ import godot.gradle.projectExt.godotCoroutineLibraryArtifactName
6+ import godot.gradle.projectExt.godotJvmExtension
57import godot.gradle.projectExt.setupConfigurationsAndCompilations
68import godot.gradle.projectExt.setupTasks
79import godot.gradle.properties.GodotKotlinJvmPropertiesFileImpl
810import godot.plugins.common.GodotKotlinJvmPropertiesFile
11+ import godot.utils.GodotBuildProperties
912import org.gradle.api.Plugin
1013import org.gradle.api.Project
1114import org.gradle.tooling.provider.model.ToolingModelBuilder
@@ -18,24 +21,30 @@ abstract class GodotPlugin : Plugin<Project> {
1821 @get:Inject
1922 abstract val registry: ToolingModelBuilderRegistry
2023
21- override fun apply (target : Project ) {
22- target. checkKotlinVersionCompatibility()
24+ override fun apply (target : Project ) = with (target) {
25+ checkKotlinVersionCompatibility()
2326
24- val extension = target. extensions.create(" godot" , GodotExtension ::class .java).also {
25- it.configureExtensionDefaults(target )
27+ val extension = extensions.create(" godot" , GodotExtension ::class .java).also {
28+ it.configureExtensionDefaults(this )
2629 }
2730
28- target. configureThirdPartyPlugins()
29- target. setupConfigurationsAndCompilations()
30- target. setupTasks()
31+ configureThirdPartyPlugins()
32+ setupConfigurationsAndCompilations()
33+ setupTasks()
3134
3235 // registers the tooling model builder, so it can be used by the ide plugin
33- target.afterEvaluate {
36+ afterEvaluate {
37+ if (godotJvmExtension.enableGodotCoroutines.get()) {
38+ dependencies.add(
39+ " implementation" ,
40+ dependencies.create(" com.utopia-rise:${godotCoroutineLibraryArtifactName} :${GodotBuildProperties .assembledGodotKotlinJvmVersion} " )
41+ )
42+ }
3443 registry.register(
3544 PropertiesModelBuilder (
3645 isFqNameRegistrationEnabled = extension.isFqNameRegistrationEnabled.get(),
3746 isRegistrationFileHierarchyEnabled = extension.isRegistrationFileHierarchyEnabled.get(),
38- registrationFileBaseDir = extension.registrationFileBaseDir.get().asFile.relativeTo(target. projectDir).path
47+ registrationFileBaseDir = extension.registrationFileBaseDir.get().asFile.relativeTo(projectDir).path
3948 )
4049 )
4150 }
@@ -55,7 +64,7 @@ abstract class GodotPlugin : Plugin<Project> {
5564 private val isFqNameRegistrationEnabled : Boolean ,
5665 private val isRegistrationFileHierarchyEnabled : Boolean ,
5766 private val registrationFileBaseDir : String ,
58- ): ToolingModelBuilder {
67+ ) : ToolingModelBuilder {
5968 override fun canBuild (modelName : String ): Boolean {
6069 return modelName == GodotKotlinJvmPropertiesFile ::class .java.name
6170 }
0 commit comments