Skip to content

Commit 2941b9e

Browse files
authored
Revert "jextract: Evaluate IfConfigDecl and add --static-build-config option" (#677)
1 parent e0f3745 commit 2941b9e

16 files changed

Lines changed: 18 additions & 560 deletions

File tree

Package.swift

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ let package = Package(
118118
],
119119
dependencies: [
120120
swiftJavaJNICoreDep,
121-
.package(url: "https://github.com/swiftlang/swift-syntax", from: "603.0.0"),
121+
.package(url: "https://github.com/swiftlang/swift-syntax", from: "602.0.0"),
122122
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
123123
.package(url: "https://github.com/apple/swift-system", from: "1.4.0"),
124124
.package(url: "https://github.com/apple/swift-log", from: "1.2.0"),
125125
.package(url: "https://github.com/apple/swift-collections", .upToNextMinor(from: "1.3.0")), // primarily for ordered collections
126-
.package(url: "https://github.com/swiftlang/swift-subprocess.git", from: "0.4.0", traits: ["SubprocessFoundation"]),
126+
.package(url: "https://github.com/swiftlang/swift-subprocess.git", from: "0.2.1", traits: ["SubprocessFoundation"]),
127127

128128
// Benchmarking
129129
.package(url: "https://github.com/ordo-one/package-benchmark", .upToNextMajor(from: "1.4.0")),
@@ -320,7 +320,6 @@ let package = Package(
320320
dependencies: [
321321
.product(name: "SwiftBasicFormat", package: "swift-syntax"),
322322
.product(name: "SwiftLexicalLookup", package: "swift-syntax"),
323-
.product(name: "SwiftIfConfig", package: "swift-syntax"),
324323
.product(name: "SwiftSyntax", package: "swift-syntax"),
325324
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
326325
.product(name: "ArgumentParser", package: "swift-argument-parser"),
@@ -332,25 +331,6 @@ let package = Package(
332331
],
333332
swiftSettings: [
334333
.swiftLanguageMode(.v5)
335-
],
336-
plugins: [
337-
.plugin(name: "_StaticBuildConfigPlugin")
338-
]
339-
),
340-
341-
.executableTarget(
342-
name: "StaticBuildConfigPluginExecutable",
343-
dependencies: [
344-
.product(name: "Subprocess", package: "swift-subprocess"),
345-
.product(name: "SwiftIfConfig", package: "swift-syntax"),
346-
]
347-
),
348-
349-
.plugin(
350-
name: "_StaticBuildConfigPlugin",
351-
capability: .buildTool(),
352-
dependencies: [
353-
"StaticBuildConfigPluginExecutable"
354334
]
355335
),
356336

Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ struct JExtractSwiftBuildToolPlugin: SwiftJavaPluginProtocol, BuildToolPlugin {
4646
// The name of the configuration file SwiftJava.config from the target for
4747
// which we are generating Swift wrappers for Java classes.
4848
let configFile = sourceDir.appending(path: "swift-java.config")
49-
let configuration = try readConfiguration(configPath: configFile)
49+
let configuration = try readConfiguration(sourceDir: sourceDir)
5050

5151
// We use the the usual maven-style structure of "src/[generated|main|test]/java/..."
5252
// that is common in JVM ecosystem
@@ -71,13 +71,6 @@ struct JExtractSwiftBuildToolPlugin: SwiftJavaPluginProtocol, BuildToolPlugin {
7171
// We'll have to make up some caching inside the tool so we don't re-parse files which have not changed etc.
7272
]
7373

74-
if let staticBuildConfig = configuration?.staticBuildConfigurationFile {
75-
guard let resolvedURL = URL(string: staticBuildConfig, relativeTo: configFile) else {
76-
fatalError("Could not resolve 'staticBuildConfigurationFile' url: \(staticBuildConfig)")
77-
}
78-
arguments += ["--static-build-config", resolvedURL.absoluteURL.path(percentEncoded: false)]
79-
}
80-
8174
let dependentConfigFilesArguments = dependentConfigFiles.flatMap { moduleAndConfigFile in
8275
let (moduleName, configFile) = moduleAndConfigFile
8376
return [

Plugins/_StaticBuildConfigPlugin/_StaticBuildConfigPlugin.swift

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

Sources/JExtractSwiftLib/Convenience/SwiftSyntax+Extensions.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,8 @@ extension DeclSyntaxProtocol {
229229
} else {
230230
"var"
231231
}
232-
case .unexpectedCodeDecl(let node):
233-
node.trimmedDescription
234232
case .usingDecl(let node):
235-
node.trimmedDescription
233+
node.nameForDebug
236234
}
237235
}
238236

Sources/JExtractSwiftLib/JExtractDefaultBuildConfiguration.swift

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

Sources/JExtractSwiftLib/Swift2Java.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public struct SwiftToJava {
3434
}
3535

3636
let translator = Swift2JavaTranslator(config: config)
37+
translator.log.logLevel = config.logLevel ?? .info
3738
let log = translator.log
3839

3940
if config.javaPackage == nil || config.javaPackage!.isEmpty {

Sources/JExtractSwiftLib/Swift2JavaTranslator.swift

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import Foundation
1616
import SwiftBasicFormat
17-
import SwiftIfConfig
1817
import SwiftJavaConfigurationShared
1918
import SwiftJavaJNICore
2019
import SwiftParser
@@ -28,9 +27,6 @@ public final class Swift2JavaTranslator {
2827

2928
let config: Configuration
3029

31-
/// The build configuration used to resolve #if conditional compilation blocks.
32-
let buildConfig: any BuildConfiguration
33-
3430
/// The name of the Swift module being translated.
3531
let swiftModuleName: String
3632

@@ -74,19 +70,6 @@ public final class Swift2JavaTranslator {
7470
self.log = Logger(label: "translator", logLevel: config.logLevel ?? .info)
7571
self.config = config
7672
self.swiftModuleName = swiftModule
77-
78-
if let staticBuildConfigPath = config.staticBuildConfigurationFile {
79-
do {
80-
let data = try Data(contentsOf: URL(fileURLWithPath: staticBuildConfigPath))
81-
let decoder = JSONDecoder()
82-
self.buildConfig = try decoder.decode(StaticBuildConfiguration.self, from: data)
83-
self.log.info("Using custom static build configuration from: \(staticBuildConfigPath)")
84-
} catch {
85-
fatalError("Failed to load static build configuration from '\(staticBuildConfigPath)': \(error)")
86-
}
87-
} else {
88-
self.buildConfig = .jextractDefault
89-
}
9073
}
9174
}
9275

@@ -169,7 +152,6 @@ extension Swift2JavaTranslator {
169152
moduleName: self.swiftModuleName,
170153
inputs + [dependenciesSource],
171154
config: self.config,
172-
buildConfig: self.buildConfig,
173155
log: self.log,
174156
)
175157
self.lookupContext = SwiftTypeLookupContext(symbolTable: symbolTable)

Sources/JExtractSwiftLib/Swift2JavaVisitor.swift

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import Foundation
16-
import SwiftIfConfig
1716
import SwiftJavaConfigurationShared
1817
import SwiftParser
1918
import SwiftSyntax
@@ -71,8 +70,7 @@ final class Swift2JavaVisitor {
7170
self.visit(subscriptDecl: node, in: parent)
7271
case .enumCaseDecl(let node):
7372
self.visit(enumCaseDecl: node, in: parent)
74-
case .ifConfigDecl(let node):
75-
self.visit(ifConfigDecl: node, in: parent, sourceFilePath: sourceFilePath)
73+
7674
default:
7775
break
7876
}
@@ -368,30 +366,6 @@ final class Swift2JavaVisitor {
368366
}
369367
}
370368

371-
private func visit(
372-
ifConfigDecl node: IfConfigDeclSyntax,
373-
in parent: ImportedNominalType?,
374-
sourceFilePath: String
375-
) {
376-
let (clause, _) = node.activeClause(in: translator.buildConfig)
377-
if let clause, let elements = clause.elements {
378-
switch elements {
379-
case .statements(let codeBlock):
380-
for codeItem in codeBlock {
381-
if let declNode = codeItem.item.as(DeclSyntax.self) {
382-
self.visit(decl: declNode, in: parent, sourceFilePath: sourceFilePath)
383-
}
384-
}
385-
case .decls(let memberBlock):
386-
for memberItem in memberBlock {
387-
self.visit(decl: memberItem.decl, in: parent, sourceFilePath: sourceFilePath)
388-
}
389-
default:
390-
break
391-
}
392-
}
393-
}
394-
395369
private func importAccessor(
396370
from node: DeclSyntax,
397371
in typeContext: ImportedNominalType?,

0 commit comments

Comments
 (0)