]> git.lizzy.rs Git - LightOverlay.git/commitdiff
Migrate to using the architect plugin
authorshedaniel <daniel@shedaniel.me>
Sat, 3 Oct 2020 19:03:13 +0000 (03:03 +0800)
committershedaniel <daniel@shedaniel.me>
Sat, 3 Oct 2020 19:03:13 +0000 (03:03 +0800)
Signed-off-by: shedaniel <daniel@shedaniel.me>
architectPlugin/build.gradle [deleted file]
architectPlugin/settings.gradle [deleted file]
architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPlugin.kt [deleted file]
architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPluginExtension.kt [deleted file]
architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/RemapMCPTask.kt [deleted file]
build.gradle
forge/build.gradle
settings.gradle

diff --git a/architectPlugin/build.gradle b/architectPlugin/build.gradle
deleted file mode 100644 (file)
index 7db7ebe..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-plugins {
-    id "org.jetbrains.kotlin.jvm" version "1.3.72"
-}
-
-repositories {
-    jcenter()
-    maven { url "https://maven.fabricmc.net/" }
-}
-
-apply plugin: 'java-gradle-plugin'
-
-dependencies {
-    implementation gradleApi()
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72"
-    implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.72"
-    implementation "net.fabricmc:fabric-loom:0.5-SNAPSHOT"
-    runtime "net.fabricmc:fabric-loom:0.5-SNAPSHOT"
-    implementation "net.fabricmc:tiny-remapper:0.3.0.70"
-    implementation "net.fabricmc:tiny-mappings-parser:0.2.2.14"
-}
-
-compileKotlin {
-    kotlinOptions {
-        jvmTarget = "1.8"
-    }
-}
-
-gradlePlugin {
-    plugins {
-        architect {
-            id = 'me.shedaniel.plugin.architect'
-            implementationClass = 'me.shedaniel.plugin.architect.ArchitectPlugin'
-        }
-    }
-}
\ No newline at end of file
diff --git a/architectPlugin/settings.gradle b/architectPlugin/settings.gradle
deleted file mode 100644 (file)
index 9c68a5a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-pluginManagement {
-    repositories {
-        jcenter()
-        gradlePluginPortal()
-    }
-}
diff --git a/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPlugin.kt b/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPlugin.kt
deleted file mode 100644 (file)
index 21638f8..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-package me.shedaniel.plugin.architect
-
-import org.gradle.api.JavaVersion
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.plugins.JavaPluginExtension
-
-class ArchitectPlugin : Plugin<Project> {
-    override fun apply(project: Project) {
-        project.apply(mapOf(
-                "plugin" to "java",
-                "plugin" to "eclipse",
-                "plugin" to "idea"
-        ))
-        project.extensions.create("architect", ArchitectPluginExtension::class.java, project)
-        
-        project.afterEvaluate {
-            project.extensions.getByType(JavaPluginExtension::class.java).apply {
-                sourceCompatibility = JavaVersion.VERSION_1_8
-                targetCompatibility = JavaVersion.VERSION_1_8
-            }
-        }
-        
-        project.tasks.register("remapMcp", RemapMCPTask::class.java) {
-            
-        }
-    }
-}
\ No newline at end of file
diff --git a/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPluginExtension.kt b/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/ArchitectPluginExtension.kt
deleted file mode 100644 (file)
index afd5a3e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-package me.shedaniel.plugin.architect
-
-import org.gradle.api.Project
-
-open class ArchitectPluginExtension(val project: Project) {
-    var minecraft = ""
-
-    fun common() {
-        project.configurations.create("mcp")
-
-        project.tasks.getByName("remapMcp") {
-            it as RemapMCPTask
-
-            it.input.set(project.file("${project.buildDir}/libs/${project.properties["archivesBaseName"]}-${project.version}-dev.jar"))
-            it.archiveClassifier.set("mcp")
-            it.dependsOn(project.tasks.getByName("jar"))
-            project.tasks.getByName("build").dependsOn(it)
-        }
-
-        project.artifacts {
-            it.add("mcp", mapOf(
-                    "file" to project.file("${project.buildDir}/libs/${project.properties["archivesBaseName"]}-${project.version}-mcp.jar"),
-                    "type" to "jar",
-                    "builtBy" to project.tasks.getByName("remapMcp")
-            ))
-        }
-    }
-}
\ No newline at end of file
diff --git a/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/RemapMCPTask.kt b/architectPlugin/src/main/kotlin/me/shedaniel/plugin/architect/RemapMCPTask.kt
deleted file mode 100644 (file)
index 9d97daf..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-@file:Suppress("UnstableApiUsage")
-
-package me.shedaniel.plugin.architect
-
-import net.fabricmc.loom.LoomGradleExtension
-import net.fabricmc.loom.util.GradleSupport
-import net.fabricmc.loom.util.TinyRemapperMappingsHelper
-import net.fabricmc.mapping.tree.TinyTree
-import net.fabricmc.tinyremapper.IMappingProvider
-import net.fabricmc.tinyremapper.NonClassCopyMode
-import net.fabricmc.tinyremapper.OutputConsumerPath
-import net.fabricmc.tinyremapper.TinyRemapper
-import org.gradle.api.file.RegularFileProperty
-import org.gradle.api.tasks.TaskAction
-import org.gradle.jvm.tasks.Jar
-import java.io.File
-import java.io.FileNotFoundException
-import java.io.InputStream
-import java.net.URL
-import java.nio.file.Files
-import java.nio.file.Path
-
-
-open class RemapMCPTask : Jar() {
-    private val fromM: String = "named"
-    private val toM: String = "official"
-    val input: RegularFileProperty = GradleSupport.getfileProperty(project)
-
-    @TaskAction
-    fun doTask() {
-        val input: Path = this.input.asFile.get().toPath()
-        val output: Path = this.archiveFile.get().asFile.toPath()
-
-        output.toFile().delete()
-
-        if (!Files.exists(input)) {
-            throw FileNotFoundException(input.toString())
-        }
-
-        val remapperBuilder: TinyRemapper.Builder = TinyRemapper.newRemapper()
-
-        val classpathFiles: Set<File> = LinkedHashSet(
-                project.configurations.getByName("compileClasspath").files
-        )
-        val classpath = classpathFiles.asSequence().map { obj: File -> obj.toPath() }.filter { p: Path -> input != p && Files.exists(p) }.toList().toTypedArray()
-
-        val mappings = getMappings()
-        val mojmapToMcpClass = createMojmapToMcpClass(mappings)
-        remapperBuilder.withMappings(remapToMcp(TinyRemapperMappingsHelper.create(mappings, fromM, fromM, false), mojmapToMcpClass))
-        remapperBuilder.ignoreFieldDesc(true)
-        remapperBuilder.skipLocalVariableMapping(true)
-
-        project.logger.lifecycle(":remapping " + input.fileName)
-
-        val architectFolder = project.rootProject.buildDir.resolve("tmp/architect")
-        architectFolder.deleteRecursively()
-        architectFolder.mkdirs()
-        val manifestFile = architectFolder.resolve("META-INF/MANIFEST.MF")
-        manifestFile.parentFile.mkdirs()
-        manifestFile.writeText("""
-Manifest-Version: 1.0
-FMLModType: LIBRARY
-
-        """.trimIndent())
-
-        val remapper = remapperBuilder.build()
-
-        try {
-            OutputConsumerPath.Builder(output).build().use { outputConsumer ->
-                outputConsumer.addNonClassFiles(input, NonClassCopyMode.SKIP_META_INF, null)
-                outputConsumer.addNonClassFiles(architectFolder.toPath(), NonClassCopyMode.UNCHANGED, null)
-                remapper.readClassPath(*classpath)
-                remapper.readInputs(input)
-                remapper.apply(outputConsumer)
-            }
-        } catch (e: Exception) {
-            remapper.finish()
-            throw RuntimeException("Failed to remap $input to $output", e)
-        }
-
-        architectFolder.deleteRecursively()
-        remapper.finish()
-
-        if (!Files.exists(output)) {
-            throw RuntimeException("Failed to remap $input to $output - file missing!")
-        }
-    }
-
-    private fun remapToMcp(parent: IMappingProvider, mojmapToMcpClass: Map<String, String>): IMappingProvider = IMappingProvider {
-        it.acceptClass("net/fabricmc/api/Environment", "net/minecraftforge/api/distmarker/OnlyIn")
-        it.acceptClass("net/fabricmc/api/EnvType", "net/minecraftforge/api/distmarker/Dist")
-        it.acceptField(IMappingProvider.Member("net/fabricmc/api/EnvType", "SERVER", "Lnet/fabricmc/api/EnvType;"), "DEDICATED_SERVER")
-
-        parent.load(object : IMappingProvider.MappingAcceptor {
-            override fun acceptClass(srcName: String?, dstName: String?) {
-                it.acceptClass(srcName, mojmapToMcpClass[srcName] ?: srcName)
-            }
-
-            override fun acceptMethod(method: IMappingProvider.Member?, dstName: String?) {
-            }
-
-            override fun acceptMethodArg(method: IMappingProvider.Member?, lvIndex: Int, dstName: String?) {
-            }
-
-            override fun acceptMethodVar(method: IMappingProvider.Member?, lvIndex: Int, startOpIdx: Int, asmIndex: Int, dstName: String?) {
-            }
-
-            override fun acceptField(field: IMappingProvider.Member?, dstName: String?) {
-            }
-        })
-    }
-
-    private fun getMappings(): TinyTree {
-        val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java)
-        return loomExtension.mappingsProvider.mappings
-    }
-
-    private fun getRootExtension(): ArchitectPluginExtension =
-            project.rootProject.extensions.getByType(ArchitectPluginExtension::class.java)
-
-    private fun createMojmapToMcpClass(mappings: TinyTree): Map<String, String> {
-        val mcpMappings = readMCPMappings(getRootExtension().minecraft)
-        val mutableMap = mutableMapOf<String, String>()
-        mappings.classes.forEach { clazz ->
-            val official = clazz.getName("official")
-            val named = clazz.getName("named")
-            val mcp = mcpMappings[official]
-            if (mcp != null) {
-                mutableMap[named] = mcp
-            }
-        }
-        return mutableMap
-    }
-
-    private fun readMCPMappings(version: String): Map<String, String> {
-        val file = project.rootProject.file(".gradle/mappings/mcp-$version.tsrg")
-        if (file.exists().not()) {
-            file.parentFile.mkdirs()
-            file.writeText(URL("https://raw.githubusercontent.com/MinecraftForge/MCPConfig/master/versions/release/$version/joined.tsrg").readText())
-        }
-        return mutableMapOf<String, String>().also { readMappings(it, file.inputStream()) }
-    }
-
-    private fun readMappings(mutableMap: MutableMap<String, String>, inputStream: InputStream) {
-        inputStream.bufferedReader().forEachLine {
-            if (!it.startsWith("\t")) {
-                val split = it.split(" ")
-                val obf = split[0]
-                val className = split[1]
-                mutableMap[obf] = className
-            }
-        }
-    }
-}
\ No newline at end of file
index 228b6bdf8aaae23586c9c5a7862d753201b1c4e8..fe4719bdce3db272b19aa354d9e5507f3c7c768d 100644 (file)
@@ -20,7 +20,7 @@ import java.util.zip.ZipInputStream
 import java.util.zip.ZipOutputStream
 
 plugins {
-    id "me.shedaniel.plugin.architect"
+    id "architect-plugin" version "1.0.6"
     id "org.jetbrains.gradle.plugin.idea-ext" version "0.7"
 }
 
@@ -30,7 +30,7 @@ architect {
 
 allprojects {
     apply plugin: "java"
-    apply plugin: "me.shedaniel.plugin.architect"
+    apply plugin: "architect-plugin"
 
     group "me.shedaniel"
     archivesBaseName = rootProject.name
index 7c65caf8218bfab1d4ac02f0e04e558c47b100c3..c8f2722f9f9832aebf8fff1a7ff96a3f32b68dd3 100644 (file)
@@ -53,7 +53,7 @@ dependencies {
     minecraft("net.minecraftforge:forge:${rootProject.architect.minecraft}-${project.forge_version}")
     implementation(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_forge}"))
 
-    compile(project(path: ":common", configuration: "mcp")) {
+    compile(project(path: ":common", configuration: "mcpGenerateMod")) {
         transitive = false
     }
     shadow(project(path: ":common", configuration: "mcp")) {
index 9772f1796af177a274188524e136b13f1056e42a..5cfc93160143489b8ce5a38a580ad5a97a388aee 100644 (file)
@@ -5,13 +5,12 @@ pluginManagement {
             name = 'Fabric'
             url = 'https://maven.fabricmc.net/'
         }
+        maven { url "https://dl.bintray.com/shedaniel/cloth" }
         gradlePluginPortal()
     }
 }
 
-includeBuild("architectPlugin")
-
-rootProject.name="light-overlay"
+rootProject.name = "light-overlay"
 
 include("common")
 include("fabric")