Skip to content

Commit e66620d

Browse files
authored
Add USVM jars to resources/lib (#2719)
1 parent b9726de commit e66620d

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

utbot-usvm/build.gradle.kts

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,41 @@ dependencies {
3434
usvmInstrumentationCollector("$usvmRepo:usvm-jvm-instrumentation-collectors:$usvmVersion")
3535
usvmInstrumentationRunner("$usvmRepo:usvm-jvm-instrumentation:$usvmVersion")
3636
usvmInstrumentationRunner("$usvmRepo:usvm-jvm-instrumentation-collectors:$usvmVersion")
37-
}
37+
}
38+
39+
// TODO replace with runner from usvm (unavailable due to huge jar size)
40+
val usvmInstrumentationRunnerJarTask by tasks.register<Jar>("usvmInstrumentationRunnerJar") {
41+
archiveBaseName.set("usvm-jvm-instrumentation-runner")
42+
archiveVersion.set("")
43+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
44+
45+
manifest {
46+
attributes(
47+
"Main-Class" to "org.usvm.instrumentation.rd.InstrumentedProcessKt",
48+
"Premain-Class" to "org.usvm.instrumentation.agent.Agent",
49+
"Can-Retransform-Classes" to "true",
50+
"Can-Redefine-Classes" to "true"
51+
)
52+
}
53+
54+
from(configurations.named("usvmInstrumentationRunner").get().map {
55+
if (it.isDirectory) it else zipTree(it)
56+
})
57+
}
58+
59+
tasks.processResources {
60+
listOf(
61+
approximations,
62+
usvmApproximationsApi,
63+
usvmInstrumentationCollector,
64+
usvmInstrumentationRunnerJarTask,
65+
).forEach { source ->
66+
from(source) {
67+
into("lib")
68+
rename {
69+
it.replace("-$usvmVersion", "")
70+
.replace("-$approximationsVersion", "")
71+
}
72+
}
73+
}
74+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.utbot.usvm.jc
2+
3+
import org.utbot.common.JarUtils
4+
5+
object JcJars {
6+
val approximationsJar by lazy { extractUsvmJar("approximations.jar") }
7+
val approximationsApiJar by lazy { extractUsvmJar("usvm-jvm-api.jar") }
8+
val collectorsJar by lazy { extractUsvmJar("usvm-jvm-instrumentation-collectors.jar") }
9+
val runnerJar by lazy { extractUsvmJar("usvm-jvm-instrumentation-runner.jar") }
10+
11+
private fun extractUsvmJar(jarFileName: String) = JarUtils.extractJarFileFromResources(
12+
jarFileName = jarFileName,
13+
jarResourcePath = "lib/$jarFileName",
14+
targetDirectoryName = "usvm"
15+
)
16+
}
17+

0 commit comments

Comments
 (0)