Skip to content

Commit

Permalink
api and seperate cli jar
Browse files Browse the repository at this point in the history
  • Loading branch information
wagyourtail committed Aug 29, 2024
1 parent 0ed0502 commit 01329a5
Show file tree
Hide file tree
Showing 9 changed files with 117 additions and 55 deletions.
23 changes: 21 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,24 @@ jobs:

- uses: actions/upload-artifact@v2
with:
name: Unimined Artifacts
path: ./build/libs/
name: Artifacts
path: ./build/libs/

- uses: actions/upload-artifact@v2
with:
name: CLI Artifacts
path: ./cli/build/libs/

- name: Load Gradle Properties
uses: christian-draeger/[email protected]
id: gradle_properties
with:
path: './gradle.properties'
properties: 'version'

- name: Upload to Release
uses: JasonEtco/[email protected]
with:
args: ./build/libs/unimined-mapping-library-cli-${{ steps.gradle_properties.outputs.version }}-all.jar application/jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7 changes: 6 additions & 1 deletion .github/workflows/build_snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,14 @@ jobs:
run: chmod +x gradlew

- name: Publish
run: ./gradlew publish -Pversion_snapshot -Pmvn.user=${{ secrets.MAVEN_USER }} -Pmvn.key=${{ secrets.MAVEN_TOKEN }} -x test
run: ./gradlew publish -Pversion_snapshot -Pmvn.user=${{ secrets.MAVEN_USER }} -Pmvn.key=${{ secrets.MAVEN_TOKEN }}

- uses: actions/upload-artifact@v2
with:
name: Unimined Snapshot Artifacts
path: ./build/libs/

- uses: actions/upload-artifact@v2
with:
name: CLI Snapshot Artifacts
path: ./cli/build/libs/
1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

59 changes: 24 additions & 35 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import xyz.wagyourtail.commons.gradle.shadow.ShadowJar
import java.net.URI

plugins {
val kotlinVersion: String by System.getProperties()
kotlin("multiplatform") version kotlinVersion
`maven-publish`
kotlin("plugin.serialization") version kotlinVersion
id("xyz.wagyourtail.commons-gradle") version "1.0.0-SNAPSHOT"
}

version = if (project.hasProperty("version_snapshot")) project.properties["version"] as String + "-SNAPSHOT" else project.properties["version"] as String
group = project.properties["group"] as String
allprojects {
apply(plugin = "base")

base {
archivesName.set(project.properties["archives_base_name"] as String)
version = if (project.hasProperty("version_snapshot")) project.properties["version"] as String + "-SNAPSHOT" else project.properties["version"] as String
group = project.properties["group"] as String

base {
archivesName.set(project.properties["archives_base_name"] as String)
}

repositories {
mavenCentral()
}
}

val kotlinVersion: String by System.getProperties()
val javaVersion: String by System.getProperties()

val cliktVersion: String by project.properties

val main = "xyz.wagyourtail.unimined.mapping.MainKt"

repositories {
mavenCentral()
}

kotlin {
jvmToolchain(8)
jvm {
Expand All @@ -35,16 +37,6 @@ kotlin {
freeCompilerArgs = listOf("-Xjsr305=strict")
}
}
@OptIn(ExperimentalKotlinGradlePluginApi::class)
mainRun {
mainClass.set(main)
args(
"-i", "preProp-intermediary-yarn-1-stubs-0641d60.umf",
"-pns", "official",
"-p", "client.jar",
"export", "umf", "propagated.umf"
)
}
}
js {
browser {
Expand All @@ -59,11 +51,11 @@ kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.github.oshai:kotlin-logging:6.0.1")
implementation("com.squareup.okio:okio:3.7.0")
implementation("com.sschr15.annotations:jb-annotations-kmp:24.1.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC2")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
api("io.github.oshai:kotlin-logging:6.0.1")
api("com.squareup.okio:okio:3.7.0")
api("com.sschr15.annotations:jb-annotations-kmp:24.1.0")
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC2")
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
}
}
val commonTest by getting {
Expand All @@ -75,15 +67,12 @@ kotlin {
}
val jvmMain by getting {
dependencies {
implementation("com.github.ajalt.clikt:clikt:$cliktVersion")

implementation("org.slf4j:slf4j-api:2.0.10")
implementation("org.slf4j:slf4j-simple:2.0.10")

// apache compress
implementation("org.apache.commons:commons-compress:1.26.1")
implementation("org.ow2.asm:asm:9.6")
implementation("org.ow2.asm:asm-tree:9.6")
api("org.apache.commons:commons-compress:1.26.1")

// asm
api("org.ow2.asm:asm:9.6")
api("org.ow2.asm:asm-tree:9.6")
}
}
val jvmTest by getting {
Expand Down
39 changes: 39 additions & 0 deletions cli/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
import xyz.wagyourtail.commons.gradle.shadow.ShadowJar

plugins {
kotlin("jvm")
}

val cliktVersion: String by project.properties

dependencies {
implementation(project(":"))

implementation("com.github.ajalt.clikt:clikt:$cliktVersion")

implementation("org.slf4j:slf4j-api:2.0.12")
implementation("org.slf4j:slf4j-simple:2.0.10")

}

val shadowJar by tasks.registering(ShadowJar::class) {
from(sourceSets.main.get().output)

archivesName.set(base.archivesName.get() + "-cli")
archiveClassifier = "all"
shadowContents.add(configurations.runtimeClasspath.get())

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
exclude("module-info.class")

manifest {
attributes(
"Main-Class" to "xyz.wagyourtail.unimined.mapping.cli.MainKt"
)
}
}

tasks.assemble {
dependsOn(shadowJar)
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package xyz.wagyourtail.unimined.mapping
package xyz.wagyourtail.unimined.mapping.cli

import com.github.ajalt.clikt.core.*
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.convert
import com.github.ajalt.clikt.parameters.arguments.multiple
import com.github.ajalt.clikt.parameters.options.*
import com.github.ajalt.clikt.parameters.types.enum
import com.github.ajalt.clikt.parameters.types.file
Expand All @@ -12,7 +11,9 @@ import kotlinx.coroutines.runBlocking
import okio.buffer
import okio.sink
import okio.source
import xyz.wagyourtail.unimined.mapping.Main.Companion.LOGGER
import xyz.wagyourtail.unimined.mapping.EnvType
import xyz.wagyourtail.unimined.mapping.Namespace
import xyz.wagyourtail.unimined.mapping.cli.Main.Companion.LOGGER
import xyz.wagyourtail.unimined.mapping.formats.FormatRegistry
import xyz.wagyourtail.unimined.mapping.propogator.Propagator
import xyz.wagyourtail.unimined.mapping.tree.MemoryMappingTree
Expand Down
11 changes: 11 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
pluginManagement {
repositories {
maven("https://maven.wagyourtail.xyz/snapshots")
mavenCentral()
gradlePluginPortal()
}
}

plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
}

include("cli")

rootProject.name = "unimined-mapping-library"

Original file line number Diff line number Diff line change
Expand Up @@ -34,43 +34,40 @@ open class InheritanceTree(val tree: AbstractMappingTree, val ns: Namespace) {
data.take()
continue
}
var col = data.takeNextLiteral() ?: continue
var col = data.takeNext().second
var indent = 0
while (col.isEmpty()) {
indent++
col = data.takeNextLiteral() ?: continue
col = data.takeNext().second
}
if (indent > 1) {
throw IllegalArgumentException("expected method, found double indent")
}
if (indent == 0) {
val cls = col
val sup = data.takeNextLiteral()!!.ifEmpty { null }
val intf = mutableListOf<String>()
while (true) {
intf.add(data.takeNextLiteral() ?: break)
}
ci = ClassInfo(InternalName.read(cls), sup?.let { InternalName.read(it) }, intf.map { InternalName.read(it) })
val sup = data.takeNext().second.ifEmpty { null }
val intf = data.takeRemainingOnLine().map { InternalName.read(it.second) }
ci = ClassInfo(InternalName.read(cls), sup?.let { InternalName.read(it) }, intf)
_classes[ci.name] = ci
} else {
val acc = col.split("|")
val name = data.takeNextLiteral()!!
val desc = FieldOrMethodDescriptor.read(data.takeNextLiteral()!!)
val acc = col.split("|").map { AccessFlag.valueOf(it.uppercase()) }
val name = data.takeNext().second
val desc = FieldOrMethodDescriptor.read(data.takeNext().second)

if (desc.isMethodDescriptor()) {
ci!!._methods.add(
MethodInfo(
name,
desc.getMethodDescriptor(),
AccessFlag.toInt(acc.map { AccessFlag.valueOf(it.uppercase()) }.toSet())
AccessFlag.toInt(acc.toSet())
)
)
} else {
ci!!._fields.add(
FieldInfo(
name,
desc.getFieldDescriptor(),
AccessFlag.toInt(acc.map { AccessFlag.valueOf(it.uppercase()) }.toSet())
AccessFlag.toInt(acc.toSet())
)
)
}
Expand Down

0 comments on commit 01329a5

Please sign in to comment.