Configure automatic building of report about support of Java class library

This commit is contained in:
Alexey Andreev 2023-03-06 15:58:24 +01:00
parent e2153c09fe
commit 4d36283946
2 changed files with 28 additions and 12 deletions

View File

@ -1,5 +1,5 @@
TeaVM # TeaVM
=====
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.teavm/teavm-maven-plugin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.teavm/teavm-maven-plugin) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.teavm/teavm-maven-plugin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.teavm/teavm-maven-plugin)
[![Download](https://teavm.org/maven/latestBadge.svg)](https://teavm.org/maven/_latest) [![Download](https://teavm.org/maven/latestBadge.svg)](https://teavm.org/maven/_latest)
@ -16,15 +16,19 @@ Useful links:
* [Discussion on Google Groups](https://groups.google.com/forum/#!forum/teavm) * [Discussion on Google Groups](https://groups.google.com/forum/#!forum/teavm)
Building TeaVM ## Building TeaVM
--------------
Simply clone source code (`git clone https://github.com/konsoletyper/teavm.git`) Simply clone source code (`git clone https://github.com/konsoletyper/teavm.git`)
and run Gradle build (`./gradlew publishToMavenLocal` or `gradlew.bat publishToMavenLocal`). and run Gradle build (`./gradlew publishToMavenLocal` or `gradlew.bat publishToMavenLocal`).
Embedding TeaVM ### Useful Gradle tasks
---------------
* `:tools:classlib-comparison-gen:build` – build Java class library compatibility report.
result is available at: `tools/classlib-comparison-gen/build/jcl-support`
## Embedding TeaVM
If you are not satisfied with Maven, you can embed TeaVM in your program If you are not satisfied with Maven, you can embed TeaVM in your program
or even create your own plugin for any build tool, like Ant or Gradle. or even create your own plugin for any build tool, like Ant or Gradle.
@ -36,8 +40,7 @@ You most likely encounter Maven and IDEA plugins.
Please, notice that these APIs for embedding are still unstable and may change between versions. Please, notice that these APIs for embedding are still unstable and may change between versions.
WebAssembly ## WebAssembly
-----------
WebAssembly support is in experimental status. It may lack major features available in JavaScript backend. WebAssembly support is in experimental status. It may lack major features available in JavaScript backend.
There's no documentation yet, and you should do many things by hands There's no documentation yet, and you should do many things by hands
@ -48,8 +51,7 @@ Then you may want to examine `index-teavm.html` and `index-teavm.js`
to learn how to embed WebAssembly into your web page. to learn how to embed WebAssembly into your web page.
License ## License
-------
TeaVM is distributed under [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). TeaVM is distributed under [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
TeaVM does not rely on OpenJDK or code or other (L)GPL code. TeaVM does not rely on OpenJDK or code or other (L)GPL code.
@ -64,8 +66,7 @@ If you want to contribute code to implementation of Java class library,
please make sure it's not based on OpenJDK or other code licensed under (L)GPL. please make sure it's not based on OpenJDK or other code licensed under (L)GPL.
Feedback ## Feedback
--------
More information is available at the official site: https://teavm.org. More information is available at the official site: https://teavm.org.

View File

@ -25,3 +25,18 @@ dependencies {
implementation(project(":core")) implementation(project(":core"))
implementation(libs.asm) implementation(libs.asm)
} }
val outputDir = layout.buildDirectory.dir("jcl-support")
val generateComparison by tasks.register<JavaExec>("generateComparison") {
dependsOn(tasks["relocateJar"])
inputs.files(configurations.runtimeClasspath)
inputs.files(tasks["relocateJar"].outputs.files)
outputs.dir(outputDir)
classpath = configurations.runtimeClasspath.get() + tasks["relocateJar"].outputs.files
mainClass.set("org.teavm.tools.classlibcomparison.JCLComparisonBuilder")
args("-output", outputDir.get().asFile.absolutePath)
}
tasks.build.configure {
dependsOn(generateComparison)
}