Skip to content

Commit c8681c1

Browse files
authored
Merge pull request #224 from rintaro/jextract-extraargs
[jextract/JExtractSwiftCommandPlugin] Pass extra arguments to the tool
2 parents 86b44fa + 2d48cb4 commit c8681c1

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

Plugins/JExtractSwiftCommandPlugin/JExtractSwiftCommandPlugin.swift

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,18 @@ final class JExtractSwiftCommandPlugin: SwiftJavaPluginProtocol, BuildToolPlugin
4040
// Plugin can't have dependencies, so we have some naive argument parsing instead:
4141
self.verbose = arguments.contains("-v") || arguments.contains("--verbose")
4242

43-
let selectedTargets: [String] =
44-
if let last = arguments.lastIndex(where: { $0.starts(with: "-")}),
45-
last < arguments.endIndex {
46-
Array(arguments[..<last])
47-
} else {
48-
[]
49-
}
50-
5143
for target in context.package.targets {
5244
guard getSwiftJavaConfigPath(target: target) != nil else {
5345
log("[swift-java-command] Skipping jextract step: Missing swift-java.config for target '\(target.name)'")
5446
continue
5547
}
5648

5749
do {
50+
let extraArguments = arguments.filter { arg in
51+
arg != "-v" && arg != "--verbose"
52+
}
5853
print("[swift-java-command] Extracting Java wrappers from target: '\(target.name)'...")
59-
try performCommand(context: context, target: target, extraArguments: arguments)
54+
try performCommand(context: context, target: target, extraArguments: extraArguments)
6055
} catch {
6156
print("[swift-java-command] error: Failed to extract from target '\(target.name)': \(error)")
6257
}
@@ -94,7 +89,7 @@ final class JExtractSwiftCommandPlugin: SwiftJavaPluginProtocol, BuildToolPlugin
9489
}
9590

9691
/// Perform the command on a specific target.
97-
func performCommand(context: PluginContext, target: Target, extraArguments _: [String]) throws {
92+
func performCommand(context: PluginContext, target: Target, extraArguments: [String]) throws {
9893
guard let sourceModule = target.sourceModule else { return }
9994

10095
if self.buildInputs {
@@ -110,7 +105,7 @@ final class JExtractSwiftCommandPlugin: SwiftJavaPluginProtocol, BuildToolPlugin
110105

111106
let arguments = try prepareJExtractArguments(context: context, target: target)
112107

113-
try runExtract(context: context, target: target, arguments: arguments)
108+
try runExtract(context: context, target: target, arguments: arguments + extraArguments)
114109

115110
if self.buildOutputs {
116111
// Building the *products* since we need to build the dylib that contains our newly generated sources,

0 commit comments

Comments
 (0)