mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 00:38:21 +00:00
Share kotlin version config between buildSrc and project (#353)
* Share kotlin version config between buildSrc and project * Use built-in Kotlin MessageCollector
This commit is contained in:
+1
-3
@@ -3,9 +3,7 @@ allprojects {
|
|||||||
version = '0.0.1'
|
version = '0.0.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
apply from: 'properties.gradle'
|
||||||
kotlinVersion = '1.1.2-4'
|
|
||||||
}
|
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
apply from: '../properties.gradle'
|
||||||
kotlinVersion = '1.1.2-4'
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -1,39 +1,28 @@
|
|||||||
package org.apollo.build.compile
|
package org.apollo.build.compile
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.messages.*
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.*
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||||
import org.jetbrains.kotlin.codegen.CompilationException
|
import org.jetbrains.kotlin.codegen.CompilationException
|
||||||
import org.jetbrains.kotlin.com.intellij.openapi.util.Disposer
|
import org.jetbrains.kotlin.com.intellij.openapi.util.Disposer
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.config.addKotlinSourceRoot
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.management.ManagementFactory
|
import java.lang.management.ManagementFactory
|
||||||
import java.net.URISyntaxException
|
import java.net.URISyntaxException
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.nio.file.*
|
import java.nio.file.Files
|
||||||
|
import java.nio.file.Path
|
||||||
|
import java.nio.file.StandardOpenOption
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
class KotlinMessageCollector : MessageCollector {
|
|
||||||
|
|
||||||
override fun clear() {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
|
|
||||||
if (severity.isError) {
|
|
||||||
println("${location.path}:${location.line}-${location.column}: $message")
|
|
||||||
println(">>> ${location.lineContent}")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun hasErrors(): Boolean {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
data class KotlinCompilerResult(val fqName: String, val outputPath: Path)
|
data class KotlinCompilerResult(val fqName: String, val outputPath: Path)
|
||||||
|
|
||||||
class KotlinScriptCompiler {
|
class KotlinScriptCompiler {
|
||||||
@@ -87,7 +76,7 @@ class KotlinScriptCompiler {
|
|||||||
configuration.add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, scriptDefinition)
|
configuration.add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, scriptDefinition)
|
||||||
configuration.put(JVMConfigurationKeys.CONTENT_ROOTS, classpath.map { JvmClasspathRoot(it) })
|
configuration.put(JVMConfigurationKeys.CONTENT_ROOTS, classpath.map { JvmClasspathRoot(it) })
|
||||||
configuration.put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true)
|
configuration.put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true)
|
||||||
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, KotlinMessageCollector())
|
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector)
|
||||||
configuration.copy()
|
configuration.copy()
|
||||||
|
|
||||||
return configuration
|
return configuration
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package org.apollo.build.tasks
|
package org.apollo.build.tasks
|
||||||
|
|
||||||
import org.apollo.build.compile.KotlinMessageCollector
|
|
||||||
import org.apollo.build.compile.KotlinScriptCompiler
|
import org.apollo.build.compile.KotlinScriptCompiler
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.Input
|
||||||
|
import org.gradle.api.tasks.OutputDirectory
|
||||||
|
import org.gradle.api.tasks.TaskAction
|
||||||
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
open class KotlinScriptCompileTask : DefaultTask() {
|
open class KotlinScriptCompileTask : DefaultTask() {
|
||||||
@@ -29,7 +32,8 @@ open class KotlinScriptCompileTask : DefaultTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val classpath = compileClasspath!!.files
|
val classpath = compileClasspath!!.files
|
||||||
val compiler = KotlinScriptCompiler(scriptDefinitionClass!!, classpath, KotlinMessageCollector())
|
val messageCollector = PrintingMessageCollector(System.err, MessageRenderer.PLAIN_RELATIVE_PATHS, true);
|
||||||
|
val compiler = KotlinScriptCompiler(scriptDefinitionClass!!, classpath, messageCollector)
|
||||||
|
|
||||||
inputs.outOfDate {
|
inputs.outOfDate {
|
||||||
removeBinariesFor(it.file)
|
removeBinariesFor(it.file)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import org.apollo.game.model.entity.Npc
|
|||||||
|
|
||||||
start { world ->
|
start { world ->
|
||||||
Spawns.list.forEach {
|
Spawns.list.forEach {
|
||||||
val definition = if (it.id != null) NpcDefinition.lookup(it.id) else lookup_npc(it.name)
|
val definition = if (it.id != null) NpcDefinition.lookup(it.id!!) else lookup_npc(it.name)
|
||||||
if (definition == null) {
|
if (definition == null) {
|
||||||
throw IllegalArgumentException("Invalid NPC name or ID ${it.name}, ${it.id}")
|
throw IllegalArgumentException("Invalid NPC name or ID ${it.name}, ${it.id}")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
ext {
|
||||||
|
kotlinVersion = '1.1.4-3'
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user