#!/home/nick/bin/feather2 library /home/nick/projects/metabuild/build/libs/metabuild-0.1.jar import uk.co.nickthecoder.metabuild.* class KydMetaBuild : MetaBuild() { val group = "uk.co.nickthecoder" val version = "0.1" val glok_version = "1.0beta3" val kojak_version="0.1" val classloader_version = "4.18" val lwjgl_version = "3.3.1" val ktor_version = "2.3.4" // For the DemoServer val platforms : List = listOf( "js", "jvm" ) meth build() { // This is an attempt to fix "Java heap space" error messages from dokka. jvmArgs("-Xmx2048M -XX:MaxMetaspaceSize=512m" ) kotlinVersion().apply { // Ignore warning : 'expect'/'actual' classes ... are in Beta compilerOption( "-Xexpect-actual-classes" ) } property( "kotlin.mpp.stability.nowarn", "true" ) repositories( MavenCentral(), gitLabRepository( "glok", "46354938" ), gitLabRepository( "kojak", "71353665" ) ) // ==== Core ==== val core = project( "kyd-core" ).apply { kotlinMultiPlatform( platforms ).apply { implementation("uk.co.nickthecoder:glok-core:$glok_version") implementation("uk.co.nickthecoder:glok-model:$glok_version") implementation("uk.co.nickthecoder:kojak:$kojak_version") platform("jvm").apply { implementation( "org.apache.xbean:xbean-classloader:$classloader_version") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation( "org.lwjgl:lwjgl:$lwjgl_version") implementation( "org.lwjgl:lwjgl-opengl:$lwjgl_version") } platform("js").apply { } } dokkaPartial() } // ==== Editor ==== val editor = project( "kyd-editor" ).apply { application( "uk.co.nickthecoder.kyd.editor.Editor" ) kotlin().apply { implementation( core ) implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("uk.co.nickthecoder:glok-core:$glok_version") implementation("uk.co.nickthecoder:glok-model:$glok_version") implementation("uk.co.nickthecoder:glok-resources:$glok_version") implementation("uk.co.nickthecoder:glok-dock:$glok_version") implementation( "org.lwjgl:lwjgl-opengl:$lwjgl_version") implementation("uk.co.nickthecoder:kojak:$kojak_version") } dokkaPartial() } val root = project().apply { application( "uk.co.nickthecoder.kyd.Kyd" ) defaultTasks( "jar", "installDist" ) kotlin().apply { implementation( core ) implementation( editor ) implementation("uk.co.nickthecoder:glok-core:$glok_version") implementation("uk.co.nickthecoder:glok-model:$glok_version") implementation("uk.co.nickthecoder:kojak:$kojak_version") } dokkaMultiModule() exec( "ntc", "publishToNTC.feather", "--", version ).apply { dependsOn( "dokkaHtmlMultiModule" ) } } val demoServer = project( "DemoServer" ).apply { kotlin().apply { implementation( "uk.co.nickthecoder:glok-resources:$glok_version") implementation( "io.ktor:ktor-server-core:$ktor_version") implementation( "io.ktor:ktor-server-netty:$ktor_version") implementation( "io.ktor:ktor-server-html-builder:$ktor_version") implementation( "org.slf4j:slf4j-nop:2.0.9") } } val demo = project( "Demo" ).apply { kotlinMultiPlatform( platforms ).apply { executable = true implementation( core ) implementation("uk.co.nickthecoder:glok-core:$glok_version") implementation("uk.co.nickthecoder:glok-model:$glok_version") } } val cavernQuest = project( "cavernQuest2" ).apply { kotlinMultiPlatform( platforms ).apply { executable = true implementation( core ) implementation("uk.co.nickthecoder:glok-core:$glok_version") implementation("uk.co.nickthecoder:glok-model:$glok_version") } } buildGradleScripts() } func main(args: String...) { KydMetaBuild().build() } }