gradle: kts dsl (#1845)

* gradle: kts dsl

* deob: Fix tests

* gradle: Convert fernflower plugin to kotlin
This commit is contained in:
Owain van Brakel
2019-10-27 19:35:25 +01:00
committed by Ganom
parent a3667f10e3
commit b859cec91a
52 changed files with 1598 additions and 975 deletions

View File

@@ -1,63 +0,0 @@
group = 'us.runelitepl.rs'
description = 'Injector'
def buildPath = buildDir.toString().replace('\\', '/') // this doesnt work in an ext block for some reason
def deobfuscatedJar = "${rootPath}/runescape-client/build/libs/rs-client-${project.version}.jar"
def vanillaJar = "${buildPath}/vanilla-${rsversion}.jar"
configurations {
vanilla
}
dependencies {
annotationProcessor group: 'org.eclipse.sisu', name: 'org.eclipse.sisu.inject', version: sisu
compileOnly group: 'org.apache.maven.plugin-tools', name: 'maven-plugin-annotations', version: mavenPluginAnnotations
implementation group: 'com.google.guava', name: 'guava', version: guava
implementation group: 'org.apache.maven', name: 'maven-plugin-api', version: mavenPluginApi
implementation group: 'org.ow2.asm', name: 'asm', version: asm
implementation group: 'org.ow2.asm', name: 'asm-util', version: asm
implementation project(':deobfuscator')
implementation project(':mixins')
implementation project(':runelite-api')
implementation project(':runescape-api')
testImplementation group: 'junit', name: 'junit', version: junit
testImplementation group: 'org.mockito', name: 'mockito-core', version: mockito
testImplementation project(':deobfuscator')
testImplementation project(path: ':deobfuscator', configuration: 'testArchives')
vanilla "net.runelite.rs:vanilla:${rsversion}"
}
compileJava {
dependsOn ":rs-client:build"
inputs.dir("${project.rootDir}/runescape-client/")
inputs.dir("${project.rootDir}/runescape-api/")
inputs.dir("${project.rootDir}/runelite-mixins/")
}
compileJava.doLast() {
copy {
from configurations.vanilla
into "$buildDir"
}
def path = sourceSets.main.runtimeClasspath
def loader
try {
loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[])
def inject = loader.loadClass('net.runelite.injector.Injector')
String[] jarPaths = [
deobfuscatedJar.toString(),
vanillaJar.toString(),
injectedClassesPath.toString()
]
inject.main(jarPaths)
} finally {
if (loader) {
loader.close()
}
}
}

View File

@@ -0,0 +1,83 @@
/*
* Copyright (c) 2019 Owain van Brakel <https://github.com/Owain94>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
group = "com.openosrs.rs"
description = "Injector"
val deobfuscatedJar = "${project.extra["rootPath"]}/runescape-client/build/libs/runescape-client-${ProjectVersions.rlVersion}.jar"
val vanillaJar = "${buildDir}/vanilla-${ProjectVersions.rsversion}.jar"
val vanilla = configurations.create("vanilla")
dependencies {
annotationProcessor(Libraries.sisu)
compileOnly(Libraries.mavenPluginAnnotations)
implementation(Libraries.guava)
implementation(Libraries.mavenPluginApi)
implementation(Libraries.asmAll)
implementation(Libraries.asmUtil)
implementation(project(":deobfuscator"))
implementation(project(":runelite-mixins"))
implementation(project(":runelite-api"))
implementation(project(":runescape-api"))
testImplementation(Libraries.junit)
testImplementation(Libraries.mockitoCore)
testImplementation(project(":deobfuscator"))
testImplementation(project(path = ":deobfuscator", configuration = "testArchives"))
vanilla(Libraries.vanilla)
}
tasks {
register<Copy>("copyVanilla") {
copy {
from(configurations.get("vanilla"))
into("$buildDir")
}
}
register<JavaExec>("inject") {
dependsOn("copyVanilla")
classpath = project.sourceSets.main.get().runtimeClasspath
main = "net.runelite.injector.Injector"
args(listOf(deobfuscatedJar, vanillaJar, project.extra["injectedClassesPath"]))
}
compileJava {
dependsOn(":runescape-client:build")
inputs.dir(project(":runescape-client").projectDir.absolutePath)
inputs.dir(project(":runescape-api").projectDir.absolutePath)
inputs.dir(project(":runelite-mixins").projectDir.absolutePath)
}
jar {
dependsOn("inject")
}
}