From bc7467c545f476f261a188894ac1b12ebc768c7c Mon Sep 17 00:00:00 2001 From: Steven Schoen Date: Tue, 23 Sep 2025 06:18:35 -0700 Subject: [PATCH 1/3] Read Gradle project/build dirs in config cache compatible way --- .../gradle/tasks/generateGdIgnoreFilesTask.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/generateGdIgnoreFilesTask.kt b/kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/generateGdIgnoreFilesTask.kt index bd7393828b..7190785650 100644 --- a/kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/generateGdIgnoreFilesTask.kt +++ b/kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/generateGdIgnoreFilesTask.kt @@ -10,16 +10,15 @@ fun Project.generateGdIgnoreFilesTask(): TaskProvider { group = "godot-kotlin-jvm" description = "Generates .gdignore files to hide gradle files, kotlin build files and jre files from the godot editor." - doFirst { + // safety check: make sure that the target project has our plugin + val hasPlugin = provider { pluginManager.hasPlugin("com.utopia-rise.godot-kotlin-jvm") } + onlyIf { hasPlugin.get() } - // safety check: make sure that the target project has our plugin - if (!this.project.pluginManager.hasPlugin("com.utopia-rise.godot-kotlin-jvm")) { - // the target project doesn't seem to have our plugin; skip. - return@doFirst - } + val projectDir = layout.projectDirectory.asFile + val buildDirProvider = layout.buildDirectory.asFile + doFirst { - val projectDir = this.project.projectDir - val buildDir = this.project.layout.buildDirectory.asFile.get() + val buildDir = buildDirProvider.get() val targetDirSequence = sequenceOf( buildDir, From 225aa27172fbf3adbeb50f2196d58aa61456602f Mon Sep 17 00:00:00 2001 From: Steven Schoen Date: Mon, 20 Oct 2025 10:30:39 -0700 Subject: [PATCH 2/3] Upgrade kotlin-preprocessors to 0.3.0 --- kt/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kt/gradle/libs.versions.toml b/kt/gradle/libs.versions.toml index a0a3b38cff..935005f336 100644 --- a/kt/gradle/libs.versions.toml +++ b/kt/gradle/libs.versions.toml @@ -26,7 +26,7 @@ maven-publish="0.32.0" # https://github.com/vanniktech/gradle-maven-publish-plug changelog = "2.2.1" # https://github.com/JetBrains/gradle-changelog-plugin/releases gradleIntelliJPlugin = "2.3.0" # https://github.com/JetBrains/intellij-platform-gradle-plugin/releases ideaSync = "1.1.10" # https://plugins.gradle.org/plugin/org.jetbrains.gradle.plugin.idea-ext -kotlinPreProcessors = "0.2.0" # https://github.com/utopia-rise/kotlin-preprocessors/tags +kotlinPreProcessors = "0.3.0" # https://github.com/utopia-rise/kotlin-preprocessors/tags iosJdk = "21" iosGraalJdkBuild = "v23.1.3-21-b33" From 972c18378b9d9651897490dd9ff71dac33137c09 Mon Sep 17 00:00:00 2001 From: Steven Schoen Date: Mon, 20 Oct 2025 10:30:44 -0700 Subject: [PATCH 3/3] Enable configuration cache in template --- .../main/resources/template/gradle.properties.godot_template | 1 + src/editor/project/templates.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kt/plugins/godot-intellij-plugin/src/main/resources/template/gradle.properties.godot_template b/kt/plugins/godot-intellij-plugin/src/main/resources/template/gradle.properties.godot_template index 6a61dc9bb3..c1d4b364ea 100644 --- a/kt/plugins/godot-intellij-plugin/src/main/resources/template/gradle.properties.godot_template +++ b/kt/plugins/godot-intellij-plugin/src/main/resources/template/gradle.properties.godot_template @@ -1,4 +1,5 @@ org.gradle.jvmargs=-Xmx3G +org.gradle.configuration-cache=true # Set this property to true to disable kotlin jvm plugin version check # Attention: this is an advanced feature. Only use it if you know what you're doing! We cannot guarantee that our compiler plugin is compatible with other kotlin versions than the one we build it for. Setting this property to true can lead to build and/or runtime errors. diff --git a/src/editor/project/templates.h b/src/editor/project/templates.h index b2869c9d57..5b2af1dc40 100644 --- a/src/editor/project/templates.h +++ b/src/editor/project/templates.h @@ -15,7 +15,7 @@ constexpr const char* build_gradle_kts_file_name = R"(build.gradle.kts)"; constexpr const char* build_gradle_kts_file_content = "cGx1Z2lucyB7CiAgICBpZCgiY29tLnV0b3BpYS1yaXNlLmdvZG90LWtvdGxpbi1qdm0iKSB2ZXJzaW9uICJHT0RPVF9LT1RMSU5fSlZNX1ZFUlNJT04iCn0KCnJlcG9zaXRvcmllcyB7CiAgICBtYXZlbkNlbnRyYWwoKQp9Cgprb3RsaW4gewogICAganZtVG9vbGNoYWluKDE3KQp9Cgpnb2RvdCB7CiAgICAvLyAtLS0tLS0tLS1TZXR1cC0tLS0tLS0tLS0tLS0tLS0tCgogICAgLy8gdGhlIHNjcmlwdCByZWdpc3RyYXRpb24gd2hpY2ggeW91J2xsIGF0dGFjaCB0byBub2RlcyBhcmUgZ2VuZXJhdGVkIGludG8gdGhpcyBkaXJlY3RvcnkKICAgIHJlZ2lzdHJhdGlvbkZpbGVCYXNlRGlyLnNldChwcm9qZWN0RGlyLnJlc29sdmUoImdkaiIpKQoKCS8vIENyZWF0ZSAuZ2RqIGZpbGVzIGZyb20gYWxsIEpWTSBzY3JpcHRzCglpc1JlZ2lzdHJhdGlvbkZpbGVHZW5lcmF0aW9uRW5hYmxlZC5zZXQodHJ1ZSkKCiAgICAvLyBkZWZpbmVzIHdoZXRoZXIgdGhlIHNjcmlwdCByZWdpc3RyYXRpb24gZmlsZXMgc2hvdWxkIGJlIGdlbmVyYXRlZCBoaWVyYXJjaGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIGNsYXNzZXMgcGFja2FnZSBwYXRoIG9yIGZsYXR0ZW5lZCBpbnRvIGByZWdpc3RyYXRpb25GaWxlQmFzZURpcmAKICAgIC8vaXNSZWdpc3RyYXRpb25GaWxlSGllcmFyY2h5RW5hYmxlZC5zZXQodHJ1ZSkKCiAgICAvLyBkZWZpbmVzIHdoZXRoZXIgeW91ciBzY3JpcHRzIHNob3VsZCBiZSByZWdpc3RlcmVkIHdpdGggdGhlaXIgZnFOYW1lIG9yIHRoZWlyIHNpbXBsZSBuYW1lIChjYW4gaGVscCB3aXRoIHJlc29sdmluZyBzY3JpcHQgbmFtZSBjb25mbGljdHMpCiAgICAvL2lzRnFOYW1lUmVnaXN0cmF0aW9uRW5hYmxlZC5zZXQoZmFsc2UpCgogICAgLy8gLS0tLS0tLS0tQW5kcm9pZC0tLS0tLS0tLS0tLS0tLS0KCiAgICAvLyBOT1RFOiBNYWtlIHN1cmUgeW91IHJlYWQ6IGh0dHBzOi8vZ29kb3Qta290bC5pbi9lbi9zdGFibGUvdXNlci1ndWlkZS9leHBvcnRpbmcvI2FuZHJvaWQgYXMgbm90IGFsbCBqdm0gbGlicmFyaWVzIGFyZSBjb21wYXRpYmxlIHdpdGggYW5kcm9pZCEKICAgIC8vIElNUE9SVEFOVDogQW5kcm9pZCBleHBvcnQgc2hvdWxkIHRvIGJlIGNvbnNpZGVyZWQgZnJvbSB0aGUgc3RhcnQgb2YgZGV2ZWxvcG1lbnQhCiAgICAvL2lzQW5kcm9pZEV4cG9ydEVuYWJsZWQuc2V0KEFORFJPSURfRU5BQkxFRCkKICAgIC8vZDhUb29sUGF0aC5zZXQoRmlsZSgiRDhfVE9PTF9QQVRIIikpCiAgICAvL2FuZHJvaWRDb21waWxlU2RrRGlyLnNldChGaWxlKCJBTkRST0lEX0NPTVBJTEVfU0RLX0RJUiIpKQoKICAgIC8vIC0tLS0tLS0tSU9TIGFuZCBHcmFhbC0tLS0tLS0tLS0tLQoKICAgIC8vIE5PVEU6IHRoaXMgaXMgYW4gYWR2YW5jZWQgZmVhdHVyZSEgUmVhZDogaHR0cHM6Ly9nb2RvdC1rb3RsLmluL2VuL3N0YWJsZS91c2VyLWd1aWRlL2FkdmFuY2VkL2dyYWFsLXZtLW5hdGl2ZS1pbWFnZS8KICAgIC8vIElNUE9SVEFOVDogR3JhYWwgTmF0aXZlIEltYWdlIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgZnJvbSB0aGUgc3RhcnQgb2YgZGV2ZWxvcG1lbnQhCiAgICAvL2lzR3JhYWxOYXRpdmVJbWFnZUV4cG9ydEVuYWJsZWQuc2V0KElTX0dSQUFMX1ZNX0VOQUJMRUQpCiAgICAvL2dyYWFsVm1EaXJlY3Rvcnkuc2V0KEZpbGUoIkdSQUFMX1ZNX0RJUiIpKQogICAgLy93aW5kb3dzRGV2ZWxvcGVyVkNWYXJzUGF0aC5zZXQoRmlsZSgiV0lORE9XU19ERVZFTE9QRVJfVlNfVkFSU19QQVRIIikpCiAgICAvL2lzSU9TRXhwb3J0RW5hYmxlZC5zZXQoSVNfSU9TX0VOQUJMRUQpCgoJLy8gLS0tLS0tLS1MaWJyYXJ5IGF1dGhvcnMtLS0tLS0tLS0tLS0KCgkvLyBsaWJyYXJ5IHNldHVwLiBTZWU6IGh0dHBzOi8vZ29kb3Qta290bC5pbi9lbi9zdGFibGUvZGV2ZWxvcC1saWJyYXJpZXMvCiAgICAvL2NsYXNzUHJlZml4LnNldCgiTXlDdXN0b21DbGFzc1ByZWZpeCIpCiAgICAvL3Byb2plY3ROYW1lLnNldCgiTGlicmFyeVByb2plY3ROYW1lIikKICAgIC8vcHJvamVjdE5hbWUuc2V0KCJMaWJyYXJ5UHJvamVjdE5hbWUiKQp9Cg=="; constexpr const char* gradle_properties_file_name = R"(gradle.properties)"; -constexpr const char* gradle_properties_file_content = "b3JnLmdyYWRsZS5qdm1hcmdzPS1YbXgzRwoKIyBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIHRvIGRpc2FibGUga290bGluIGp2bSBwbHVnaW4gdmVyc2lvbiBjaGVjawojIEF0dGVudGlvbjogdGhpcyBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlLiBPbmx5IHVzZSBpdCBpZiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyEgV2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IG91ciBjb21waWxlciBwbHVnaW4gaXMgY29tcGF0aWJsZSB3aXRoIG90aGVyIGtvdGxpbiB2ZXJzaW9ucyB0aGFuIHRoZSBvbmUgd2UgYnVpbGQgaXQgZm9yLiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBjYW4gbGVhZCB0byBidWlsZCBhbmQvb3IgcnVudGltZSBlcnJvcnMuCiNnb2RvdC5qdm0uc3VwcHJlc3NLb3RsaW5JbmNvbXBhdGliaWxpdHk9dHJ1ZQo="; +constexpr const char* gradle_properties_file_content = "b3JnLmdyYWRsZS5qdm1hcmdzPS1YbXgzRwpvcmcuZ3JhZGxlLmNvbmZpZ3VyYXRpb24tY2FjaGU9dHJ1ZQoKIyBTZXQgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIHRvIGRpc2FibGUga290bGluIGp2bSBwbHVnaW4gdmVyc2lvbiBjaGVjawojIEF0dGVudGlvbjogdGhpcyBpcyBhbiBhZHZhbmNlZCBmZWF0dXJlLiBPbmx5IHVzZSBpdCBpZiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyEgV2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IG91ciBjb21waWxlciBwbHVnaW4gaXMgY29tcGF0aWJsZSB3aXRoIG90aGVyIGtvdGxpbiB2ZXJzaW9ucyB0aGFuIHRoZSBvbmUgd2UgYnVpbGQgaXQgZm9yLiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBjYW4gbGVhZCB0byBidWlsZCBhbmQvb3IgcnVudGltZSBlcnJvcnMuCiNnb2RvdC5qdm0uc3VwcHJlc3NLb3RsaW5JbmNvbXBhdGliaWxpdHk9dHJ1ZQo="; constexpr const char* gradlew_bat_file_name = R"(gradlew.bat)"; constexpr const char* gradlew_bat_file_content = "QHJlbQpAcmVtIENvcHlyaWdodCAyMDE1IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KQHJlbQpAcmVtIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwpAcmVtIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KQHJlbSBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKQHJlbQpAcmVtICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMApAcmVtCkByZW0gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpAcmVtIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCkByZW0gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCkByZW0gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApAcmVtIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpAcmVtCgpAaWYgIiVERUJVRyUiID09ICIiIEBlY2hvIG9mZgpAcmVtICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkByZW0KQHJlbSAgR3JhZGxlIHN0YXJ0dXAgc2NyaXB0IGZvciBXaW5kb3dzCkByZW0KQHJlbSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKQHJlbSBTZXQgbG9jYWwgc2NvcGUgZm9yIHRoZSB2YXJpYWJsZXMgd2l0aCB3aW5kb3dzIE5UIHNoZWxsCmlmICIlT1MlIj09IldpbmRvd3NfTlQiIHNldGxvY2FsCgpzZXQgRElSTkFNRT0lfmRwMAppZiAiJURJUk5BTUUlIiA9PSAiIiBzZXQgRElSTkFNRT0uCnNldCBBUFBfQkFTRV9OQU1FPSV+bjAKc2V0IEFQUF9IT01FPSVESVJOQU1FJQoKQHJlbSBSZXNvbHZlIGFueSAiLiIgYW5kICIuLiIgaW4gQVBQX0hPTUUgdG8gbWFrZSBpdCBzaG9ydGVyLgpmb3IgJSVpIGluICgiJUFQUF9IT01FJSIpIGRvIHNldCBBUFBfSE9NRT0lJX5maQoKQHJlbSBBZGQgZGVmYXVsdCBKVk0gb3B0aW9ucyBoZXJlLiBZb3UgY2FuIGFsc28gdXNlIEpBVkFfT1BUUyBhbmQgR1JBRExFX09QVFMgdG8gcGFzcyBKVk0gb3B0aW9ucyB0byB0aGlzIHNjcmlwdC4Kc2V0IERFRkFVTFRfSlZNX09QVFM9Ii1YbXg2NG0iICItWG1zNjRtIgoKQHJlbSBGaW5kIGphdmEuZXhlCmlmIGRlZmluZWQgSkFWQV9IT01FIGdvdG8gZmluZEphdmFGcm9tSmF2YUhvbWUKCnNldCBKQVZBX0VYRT1qYXZhLmV4ZQolSkFWQV9FWEUlIC12ZXJzaW9uID5OVUwgMj4mMQppZiAiJUVSUk9STEVWRUwlIiA9PSAiMCIgZ290byBpbml0CgplY2hvLgplY2hvIEVSUk9SOiBKQVZBX0hPTUUgaXMgbm90IHNldCBhbmQgbm8gJ2phdmEnIGNvbW1hbmQgY291bGQgYmUgZm91bmQgaW4geW91ciBQQVRILgplY2hvLgplY2hvIFBsZWFzZSBzZXQgdGhlIEpBVkFfSE9NRSB2YXJpYWJsZSBpbiB5b3VyIGVudmlyb25tZW50IHRvIG1hdGNoIHRoZQplY2hvIGxvY2F0aW9uIG9mIHlvdXIgSmF2YSBpbnN0YWxsYXRpb24uCgpnb3RvIGZhaWwKCjpmaW5kSmF2YUZyb21KYXZhSG9tZQpzZXQgSkFWQV9IT01FPSVKQVZBX0hPTUU6Ij0lCnNldCBKQVZBX0VYRT0lSkFWQV9IT01FJS9iaW4vamF2YS5leGUKCmlmIGV4aXN0ICIlSkFWQV9FWEUlIiBnb3RvIGluaXQKCmVjaG8uCmVjaG8gRVJST1I6IEpBVkFfSE9NRSBpcyBzZXQgdG8gYW4gaW52YWxpZCBkaXJlY3Rvcnk6ICVKQVZBX0hPTUUlCmVjaG8uCmVjaG8gUGxlYXNlIHNldCB0aGUgSkFWQV9IT01FIHZhcmlhYmxlIGluIHlvdXIgZW52aXJvbm1lbnQgdG8gbWF0Y2ggdGhlCmVjaG8gbG9jYXRpb24gb2YgeW91ciBKYXZhIGluc3RhbGxhdGlvbi4KCmdvdG8gZmFpbAoKOmluaXQKQHJlbSBHZXQgY29tbWFuZC1saW5lIGFyZ3VtZW50cywgaGFuZGxpbmcgV2luZG93cyB2YXJpYW50cwoKaWYgbm90ICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byB3aW45eE1FX2FyZ3MKCjp3aW45eE1FX2FyZ3MKQHJlbSBTbHVycCB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4Kc2V0IENNRF9MSU5FX0FSR1M9CnNldCBfU0tJUD0yCgo6d2luOXhNRV9hcmdzX3NsdXJwCmlmICJ4JX4xIiA9PSAieCIgZ290byBleGVjdXRlCgpzZXQgQ01EX0xJTkVfQVJHUz0lKgoKOmV4ZWN1dGUKQHJlbSBTZXR1cCB0aGUgY29tbWFuZCBsaW5lCgpzZXQgQ0xBU1NQQVRIPSVBUFBfSE9NRSVcZ3JhZGxlXHdyYXBwZXJcZ3JhZGxlLXdyYXBwZXIuamFyCgoKQHJlbSBFeGVjdXRlIEdyYWRsZQoiJUpBVkFfRVhFJSIgJURFRkFVTFRfSlZNX09QVFMlICVKQVZBX09QVFMlICVHUkFETEVfT1BUUyUgIi1Eb3JnLmdyYWRsZS5hcHBuYW1lPSVBUFBfQkFTRV9OQU1FJSIgLWNsYXNzcGF0aCAiJUNMQVNTUEFUSCUiIG9yZy5ncmFkbGUud3JhcHBlci5HcmFkbGVXcmFwcGVyTWFpbiAlQ01EX0xJTkVfQVJHUyUKCjplbmQKQHJlbSBFbmQgbG9jYWwgc2NvcGUgZm9yIHRoZSB2YXJpYWJsZXMgd2l0aCB3aW5kb3dzIE5UIHNoZWxsCmlmICIlRVJST1JMRVZFTCUiPT0iMCIgZ290byBtYWluRW5kCgo6ZmFpbApyZW0gU2V0IHZhcmlhYmxlIEdSQURMRV9FWElUX0NPTlNPTEUgaWYgeW91IG5lZWQgdGhlIF9zY3JpcHRfIHJldHVybiBjb2RlIGluc3RlYWQgb2YKcmVtIHRoZSBfY21kLmV4ZSAvY18gcmV0dXJuIGNvZGUhCmlmICBub3QgIiIgPT0gIiVHUkFETEVfRVhJVF9DT05TT0xFJSIgZXhpdCAxCmV4aXQgL2IgMQoKOm1haW5FbmQKaWYgIiVPUyUiPT0iV2luZG93c19OVCIgZW5kbG9jYWwKCjpvbWVnYQo=";