Skip to content

Commit 5be4f45

Browse files
authored
Narrow down java.library.path to prevent loading stale dylibs (#673)
1 parent 680ae2a commit 5be4f45

4 files changed

Lines changed: 9 additions & 14 deletions

File tree

BuildLogic/src/main/kotlin/build-logic.java-common-conventions.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ tasks.test {
9292
"--enable-native-access=ALL-UNNAMED",
9393

9494
// Include the library paths where our dylibs are that we want to load and call
95-
"-Djava.library.path=" +
96-
(javaLibraryPaths(rootDir) + javaLibraryPaths(project.projectDir))
97-
.joinToString(File.pathSeparator)
95+
"-Djava.library.path=" + javaLibraryPaths(project.projectDir).joinToString(File.pathSeparator)
9896
)
9997
}
10098

BuildLogic/src/main/kotlin/utilities/javaLibraryPaths.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,10 @@ fun Project.javaLibraryPaths(rootDir: File?): List<String> {
4444
"${arch}-apple-macosx"
4545
}
4646

47-
val paths: List<String> = listOf("release", "debug").flatMap { configuration ->
48-
listOf(
49-
"${base}.build/${triple}/$configuration/",
50-
"${base}../../.build/${triple}/$configuration/",
51-
)
47+
val paths: List<String> = listOf("release", "debug").map { configuration ->
48+
"${base}.build/${triple}/$configuration/"
5249
}
5350
val swiftRuntimePaths = swiftRuntimeLibraryPaths()
5451

5552
return paths + swiftRuntimePaths
56-
}
53+
}

Samples/SwiftJavaExtractFFMSampleApp/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ application {
8080
applicationDefaultJvmArgs = listOf(
8181
"--enable-native-access=ALL-UNNAMED",
8282
// Include the library paths where our dylibs are that we want to load and call
83-
"-Djava.library.path=" + (javaLibraryPaths(rootDir) + javaLibraryPaths(project.projectDir)).joinToString(":"),
83+
"-Djava.library.path=" + javaLibraryPaths(project.projectDir).joinToString(File.pathSeparator),
8484
// Enable tracing downcalls (to Swift)
8585
"-Djextract.trace.downcalls=true"
8686
)
@@ -95,7 +95,7 @@ jmh {
9595

9696
jvmArgsAppend = listOf(
9797
"--enable-native-access=ALL-UNNAMED",
98-
"-Djava.library.path=" + (javaLibraryPaths(rootDir) + javaLibraryPaths(project.projectDir)).joinToString(":"),
98+
"-Djava.library.path=" + javaLibraryPaths(project.projectDir).joinToString(File.pathSeparator),
9999
// Enable tracing downcalls (to Swift)
100100
"-Djextract.trace.downcalls=false"
101101
)

Samples/SwiftJavaExtractJNISampleApp/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ application {
9292
applicationDefaultJvmArgs = listOf(
9393
"--enable-native-access=ALL-UNNAMED",
9494
// Include the library paths where our dylibs are that we want to load and call
95-
"-Djava.library.path=" + (javaLibraryPaths(rootDir) + javaLibraryPaths(project.projectDir)).joinToString(":"),
95+
"-Djava.library.path=" + javaLibraryPaths(project.projectDir).joinToString(File.pathSeparator),
9696
// Enable tracing downcalls (to Swift)
9797
"-Djextract.trace.downcalls=true"
9898
)
@@ -107,7 +107,7 @@ jmh {
107107

108108
jvmArgsAppend = listOf(
109109
"--enable-native-access=ALL-UNNAMED",
110-
"-Djava.library.path=" + (javaLibraryPaths(rootDir) + javaLibraryPaths(project.projectDir)).joinToString(":"),
110+
"-Djava.library.path=" + javaLibraryPaths(project.projectDir).joinToString(File.pathSeparator),
111111
// Enable tracing downcalls (to Swift)
112112
"-Djextract.trace.downcalls=false"
113113
)
@@ -119,4 +119,4 @@ tasks.register("printGradleHome") {
119119
println("Gradle Version: ${gradle.gradleVersion}")
120120
println("Gradle User Home: ${gradle.gradleUserHomeDir}")
121121
}
122-
}
122+
}

0 commit comments

Comments
 (0)