Skip to content

Commit

Permalink
a real cli
Browse files Browse the repository at this point in the history
  • Loading branch information
wagyourtail committed May 15, 2024
1 parent 066f8a5 commit 6317e20
Show file tree
Hide file tree
Showing 18 changed files with 690 additions and 426 deletions.
17 changes: 11 additions & 6 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
`maven-publish`
`java-library`
application
}

allprojects {
Expand Down Expand Up @@ -44,6 +45,10 @@ val shared by sourceSets.creating {
runtimeClasspath += sourceSets["main"].runtimeClasspath
}

application {
mainClass.set("xyz.wagyourtail.jvmdg.cli.Main")
}

sourceSets {
main {
compileClasspath += shared.output
Expand Down Expand Up @@ -85,9 +90,9 @@ tasks.jar {
"Manifest-Version" to "1.0",
"Implementation-Title" to project.name,
"Implementation-Version" to project.version,
"Main-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Premain-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Agent-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Main-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Premain-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Agent-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Can-Retransform-Classes" to "true",
)
}
Expand Down Expand Up @@ -137,9 +142,9 @@ val jarInJar by tasks.registering(Jar::class) {
"Manifest-Version" to "1.0",
"Implementation-Title" to project.name,
"Implementation-Version" to project.version,
"Main-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Premain-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Agent-Class" to "xyz.wagyourtail.jvmdg.runtime.Bootstrap",
"Main-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Premain-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Agent-Class" to "xyz.wagyourtail.jvmdg.cli.Main",
"Can-Retransform-Classes" to "true",
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream
import org.gradle.api.JavaVersion
import org.gradle.api.internal.ConventionTask
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
Expand All @@ -17,14 +19,23 @@ import java.nio.file.StandardOpenOption
import java.util.zip.ZipFile
import kotlin.io.path.*

open class GenerateCtSymTask : ConventionTask() {
abstract class GenerateCtSymTask : ConventionTask() {

@Optional
@OutputFile
var ctSym = temporaryDir.resolve("jvmdg").resolve("ct.sym")

@get:Input
@get:Optional
abstract val lowerVersion: Property<JavaVersion>

@get:Input
abstract val upperVersion: Property<JavaVersion>

init {
outputs.upToDateWhen { ctSym.exists() }
lowerVersion.set(JavaVersion.VERSION_1_6)
upperVersion.set(JavaVersion.VERSION_22)
}

private fun ZipArchiveOutputStream.write(ci: ClassInfo) {
Expand Down Expand Up @@ -60,7 +71,7 @@ open class GenerateCtSymTask : ConventionTask() {

ZipArchiveOutputStream(ctSym.toPath().outputStream(StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING)).use { zos ->
val prevJava = mutableMapOf<String, ClassInfo>()
for (java in (JavaVersion.VERSION_1_6..JavaVersion.VERSION_21).reversed()) {
for (java in (JavaVersion.VERSION_1_6..JavaVersion.VERSION_22).reversed()) {
val home = toolchain.getJavaHome(java)
project.logger.lifecycle("[ct.sym] Processing $java at $home")
for (path in home.walk().filter { it.exists() && it.isRegularFile() && it.extension in setOf("jar", "jmod") }) {
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ kotlin.code.style=official
org.gradle.jvmargs=-Xmx4G
org.gradle.parallel=true

version=0.3.1
version=0.4.0

asm_version=9.7

Expand Down
1 change: 1 addition & 0 deletions java-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ val downgradeJar8 by tasks.registering(Jar::class) {

val genCySym by tasks.registering(GenerateCtSymTask::class) {
group = "jvmdg"
upperVersion = toVersion
}

val coverageReport by tasks.registering(JavaExec::class) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ public <T> T walk(Function<? super Stream<StackFrame>, ? extends T> function) {
} else {
if (e.getClassName().equals("xyz.wagyourtail.jvmdg.runtime.Bootstrap")) {
return false;
} else if (e.getClassName().equals("xyz.wagyourtail.jvmdg.cli.Main")) {
return false;
}
}
if (showReflect) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.*;
import xyz.wagyourtail.jvmdg.Constants;
import xyz.wagyourtail.jvmdg.cli.Flags;
import xyz.wagyourtail.jvmdg.j8.stub.*;
import xyz.wagyourtail.jvmdg.j8.stub.function.*;
import xyz.wagyourtail.jvmdg.j8.stub.stream.*;
Expand All @@ -28,7 +29,7 @@ public Java8Downgrader() {

@Override
public void init() {
if (!Constants.QUIET) System.err.println("[WARNING] Java 8 -> 7 Stubs are VERY incomplete!");
if (!Flags.quiet) System.err.println("[WARNING] Java 8 -> 7 Stubs are VERY incomplete!");
// -- java.base --
// GaloisCounterMode
// GCMParameters
Expand Down
200 changes: 0 additions & 200 deletions src/main/java/xyz/wagyourtail/jvmdg/Arguments.java

This file was deleted.

Loading

0 comments on commit 6317e20

Please sign in to comment.