Tell IDEA to delegate through Gradle

This commit is contained in:
shedaniel
2021-01-26 09:18:44 +08:00
parent 41191d3681
commit 815b728306
3 changed files with 21 additions and 2 deletions

View File

@@ -4,6 +4,9 @@ import me.shedaniel.architect.plugin.transformers.*
import net.fabricmc.loom.util.LoggerFilter
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.ExtensionAware
import org.gradle.plugins.ide.idea.model.IdeaModel
import org.jetbrains.gradle.ext.ActionDelegationConfig
import java.net.URI
class ArchitectPlugin : Plugin<Project> {
@@ -23,10 +26,21 @@ class ArchitectPlugin : Plugin<Project> {
mapOf(
"plugin" to "java",
"plugin" to "eclipse",
"plugin" to "idea"
"plugin" to "idea",
"plugin" to "org.jetbrains.gradle.plugin.idea-ext"
)
)
project.afterEvaluate {
val ideaModel = project.extensions.getByName("idea") as IdeaModel
val idea = ideaModel.project as? ExtensionAware
val settings = idea?.extensions?.getByName("settings") as? ExtensionAware
(settings?.extensions?.getByName("delegateActions") as? ActionDelegationConfig)?.apply {
delegateBuildRunToGradle = true
testRunner = ActionDelegationConfig.TestRunner.GRADLE
}
}
project.extensions.create("architectury", ArchitectPluginExtension::class.java, project)
project.tasks.register("transformProductionFabric", TransformingTask::class.java) {

View File

@@ -21,7 +21,6 @@ open class ArchitectPluginExtension(val project: Project) {
fun platformSetupLoomIde() {
val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java)
loomExtension.autoGenIDERuns = true
loomExtension.addTaskBeforeRun("\$PROJECT_DIR\$/${project.name}:build")
}
fun common(forgeEnabled: Boolean) {
@@ -67,6 +66,8 @@ open class ArchitectPluginExtension(val project: Project) {
it.outputs.upToDateWhen { false }
} as TransformingTask
transformProductionFabricTask.dependsOn(transformDevelopmentFabricTask)
val remapJarTask = project.tasks.getByName("remapJar") {
it as RemapJarTask
@@ -103,6 +104,8 @@ open class ArchitectPluginExtension(val project: Project) {
it.outputs.upToDateWhen { false }
} as TransformingTask
transformProductionForgeTask.dependsOn(transformDevelopmentForgeTask)
transformProductionForgeTask.archiveFile.get().asFile.takeUnless { it.exists() }?.createEmptyJar()
transformDevelopmentForgeTask.archiveFile.get().asFile.takeUnless { it.exists() }?.createEmptyJar()