Skip to content

Commit c5e3f47

Browse files
committed
Declare the exact path of the jextract generated sources
With kts build scripts Gradle generates some additional Java sources which were being picked up by the Java compilation
1 parent 20f0c5d commit c5e3f47

1 file changed

Lines changed: 8 additions & 15 deletions

File tree

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

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,14 @@ fun Project.registerJextractTask(
5050
inputs.file(File(projectDir, "Package.swift"))
5151

5252
// monitor all targets/products which depend on the JExtract plugin
53-
swiftProductsWithJExtractPlugin().forEach {
54-
logger.info("[swift-java:jextract (Gradle)] Swift input target: ${it}")
55-
inputs.dir(File(layout.projectDirectory.asFile, "Sources/${it}"))
56-
}
57-
outputs.dir(layout.buildDirectory.dir("../.build/plugins/outputs/${layout.projectDirectory.asFile.getName().lowercase()}"))
58-
59-
val baseSwiftPluginOutputsDir = layout.buildDirectory.dir("../.build/plugins/outputs/").get().asFile
60-
if (!baseSwiftPluginOutputsDir.exists()) {
61-
baseSwiftPluginOutputsDir.mkdirs()
62-
}
63-
Files.walk(layout.buildDirectory.dir("../.build/plugins/outputs/").get().asFile.toPath()).forEach {
64-
// Add any Java sources generated by the plugin to our sourceSet
65-
if (it.endsWith("JExtractSwiftPlugin/src/generated/java")) {
66-
outputs.dir(it)
67-
}
53+
swiftProductsWithJExtractPlugin().forEach { targetName ->
54+
logger.info("[swift-java:jextract (Gradle)] Swift input target: ${targetName}")
55+
inputs.dir(File(layout.projectDirectory.asFile, "Sources/${targetName}"))
56+
outputs.dir(
57+
layout.buildDirectory.dir(
58+
"../.build/plugins/outputs/${layout.projectDirectory.asFile.getName().lowercase()}/${targetName}/destination/JExtractSwiftPlugin/src/generated/java"
59+
)
60+
)
6861
}
6962

7063
workingDir = layout.projectDirectory.asFile

0 commit comments

Comments
 (0)