Skip to content

Commit 896b2be

Browse files
committed
fix JavaDependencySampleApp in swift-java cli mode
1 parent 772c21a commit 896b2be

File tree

6 files changed

+21
-203
lines changed

6 files changed

+21
-203
lines changed

Plugins/JExtractSwiftCommandPlugin/JExtractSwiftCommandPlugin.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ final class JExtractSwiftCommandPlugin: SwiftJavaPluginProtocol, BuildToolPlugin
8181
// We'll have to make up some caching inside the tool so we don't re-parse files which have not changed etc.
8282
]
8383
// arguments.append(sourceDir) // TODO: we could do this shape maybe? to have the dirs last?
84-
if let package = configuration.javaPackage, !package.isEmpty {
84+
if let package = configuration?.javaPackage, !package.isEmpty {
8585
["--java-package", package]
8686
}
8787

Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct JExtractSwiftBuildToolPlugin: SwiftJavaPluginProtocol, BuildToolPlugin {
4242
let sourceDir = target.directory.string
4343
let configuration = try readConfiguration(sourceDir: "\(sourceDir)")
4444

45-
guard let javaPackage = configuration.javaPackage else {
45+
guard let javaPackage = configuration?.javaPackage else {
4646
// throw SwiftJavaPluginError.missingConfiguration(sourceDir: "\(sourceDir)", key: "javaPackage")
4747
log("Skipping jextract step, no 'javaPackage' configuration in \(getSwiftJavaConfigPath(target: target) ?? "")")
4848
return []

Plugins/SwiftJavaPlugin/SwiftJavaPlugin.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ struct SwiftJavaBuildToolPlugin: SwiftJavaPluginProtocol, BuildToolPlugin {
3838
// which we are generating Swift wrappers for Java classes.
3939
let configFile = URL(filePath: sourceDir)
4040
.appending(path: SwiftJavaConfigFileName)
41-
let config = try readConfiguration(sourceDir: sourceDir)
41+
let config = try readConfiguration(sourceDir: sourceDir) ?? Configuration()
4242

4343
log("Config on path: \(configFile.path(percentEncoded: false))")
4444
log("Config was: \(config)")

Sources/JExtractSwiftLib/SwiftThunkTranslator.swift

Lines changed: 0 additions & 191 deletions
This file was deleted.

Sources/JavaKitConfigurationShared/Configuration.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public struct JavaDependencyDescriptor: Hashable, Codable {
113113
}
114114
}
115115

116-
public func readConfiguration(sourceDir: String, file: String = #fileID, line: UInt = #line) throws -> Configuration {
116+
public func readConfiguration(sourceDir: String, file: String = #fileID, line: UInt = #line) throws -> Configuration? {
117117
// Workaround since filePath is macOS 13
118118
let sourcePath =
119119
if sourceDir.hasPrefix("file://") { sourceDir } else { "file://" + sourceDir }
@@ -122,12 +122,15 @@ public func readConfiguration(sourceDir: String, file: String = #fileID, line: U
122122
return try readConfiguration(configPath: configPath, file: file, line: line)
123123
}
124124

125-
public func readConfiguration(configPath: URL, file: String = #fileID, line: UInt = #line) throws -> Configuration {
125+
public func readConfiguration(configPath: URL, file: String = #fileID, line: UInt = #line) throws -> Configuration? {
126+
guard let configData = try? Data(contentsOf: configPath) else {
127+
return nil
128+
}
129+
126130
do {
127-
let configData = try Data(contentsOf: configPath)
128131
return try JSONDecoder().decode(Configuration.self, from: configData)
129132
} catch {
130-
throw ConfigurationError(message: "Failed to parse SwiftJava configuration at '\(configPath.absoluteURL)'!", error: error,
133+
throw ConfigurationError(message: "Failed to parse SwiftJava configuration at '\(configPath.absoluteURL)'! \(#fileID):\(#line)", error: error,
131134
file: file, line: line)
132135
}
133136
}

Sources/SwiftJavaTool/SwiftJava.swift

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ struct SwiftJava: AsyncParsableCommand {
116116
return nil
117117
}
118118

119+
print("[debug][swift-java] Module base directory based on outputDirectory!")
119120
return URL(fileURLWithPath: outputDirectory)
120121
}
121122

@@ -186,21 +187,23 @@ struct SwiftJava: AsyncParsableCommand {
186187

187188
mutating func run() async {
188189
print("[info][swift-java] Run: \(CommandLine.arguments.joined(separator: " "))")
190+
print("[info][swift-java] Current work directory: \(URL(fileURLWithPath: "."))")
191+
print("[info][swift-java] Module base directory: \(moduleBaseDir)")
189192
do {
190-
var config: Configuration = Configuration()
193+
var earlyConfig: Configuration?
191194
if let moduleBaseDir {
192195
print("[debug][swift-java] Load config from module base directory: \(moduleBaseDir.path)")
193-
config = try readConfiguration(sourceDir: moduleBaseDir.path)
196+
earlyConfig = try readConfiguration(sourceDir: moduleBaseDir.path)
194197
} else if let inputSwift {
195198
print("[debug][swift-java] Load config from module swift input directory: \(inputSwift)")
196-
config = try readConfiguration(sourceDir: inputSwift)
199+
earlyConfig = try readConfiguration(sourceDir: inputSwift)
197200
}
201+
var config = earlyConfig ?? Configuration()
198202

199203
config.logLevel = self.logLevel
200204
if let javaPackage {
201205
config.javaPackage = javaPackage
202206
}
203-
assert(config.javaPackage != nil, "java-package was nil!")
204207

205208
// Determine the mode in which we'll execute.
206209
let toolMode: ToolMode
@@ -461,7 +464,10 @@ extension SwiftJava {
461464
return (false, .init())
462465
case .amend:
463466
let configPath = actualOutputDirectory
464-
return (true, try readConfiguration(sourceDir: configPath.path))
467+
guard let config = try readConfiguration(sourceDir: configPath.path) else {
468+
return (false, .init())
469+
}
470+
return (true, config)
465471
}
466472
}
467473
}

0 commit comments

Comments
 (0)