Skip to content

Commit dc29bdd

Browse files
committed
PoC how we might try to use package traits
1 parent 899dc23 commit dc29bdd

File tree

153 files changed

+388
-7
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+388
-7
lines changed

Package.swift

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
// swift-tools-version: 6.0
1+
// swift-tools-version: 6.1
22
// The swift-tools-version declares the minimum version of Swift required to build this package.
33

44
import CompilerPluginSupport
55
import PackageDescription
66

77
import Foundation
88

9+
// Package Trait Names
10+
let SwiftJavaMacrosSupport: String = "SwiftJavaMacrosSupport"
11+
912
// Note: the JAVA_HOME environment variable must be set to point to where
1013
// Java is installed, e.g.,
1114
// Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home.
@@ -196,6 +199,17 @@ let package = Package(
196199
),
197200

198201
],
202+
203+
traits: [
204+
.init(
205+
name: SwiftJavaMacrosSupport,
206+
description: "Enable @JavaMethod, @JavaClass and other Swift macros which are used in wrapping Java types"
207+
),
208+
.default(enabledTraits: [
209+
SwiftJavaMacrosSupport
210+
]) // enabled by default, but downstream libraries may disable macros if they don't use them
211+
],
212+
199213
dependencies: [
200214
.package(url: "https://github.com/swiftlang/swift-syntax", from: "601.0.1"),
201215
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
@@ -208,6 +222,7 @@ let package = Package(
208222
// Benchmarking
209223
.package(url: "https://github.com/ordo-one/package-benchmark", .upToNextMajor(from: "1.4.0")),
210224
],
225+
211226
targets: [
212227
.target(
213228
name: "SwiftJavaDocumentation",
@@ -220,8 +235,8 @@ let package = Package(
220235
.macro(
221236
name: "SwiftJavaMacros",
222237
dependencies: [
223-
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
224-
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
238+
.product(name: "SwiftSyntaxMacros", package: "swift-syntax", condition: .when(traits: [SwiftJavaMacrosSupport])),
239+
.product(name: "SwiftCompilerPlugin", package: "swift-syntax", condition: .when(traits: [SwiftJavaMacrosSupport])),
225240
],
226241
swiftSettings: [
227242
.swiftLanguageMode(.v5)
@@ -237,10 +252,10 @@ let package = Package(
237252
.target(
238253
name: "SwiftJava",
239254
dependencies: [
240-
"CSwiftJavaJNI",
241-
"SwiftJavaMacros",
242-
"JavaTypes",
243-
"SwiftJavaConfigurationShared", // for Configuration reading at runtime
255+
.byName(name: "CSwiftJavaJNI"),
256+
.byName(name: "JavaTypes"),
257+
.byName(name: "SwiftJavaMacros", condition: .when(traits: [SwiftJavaMacrosSupport])),
258+
.byName(name: "SwiftJavaConfigurationShared"), // for Configuration reading at runtime
244259
],
245260
exclude: ["swift-java.config"],
246261
swiftSettings: [

Sources/JavaStdlib/JavaIO/generated/BufferedInputStream.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.BufferedInputStream")
67
open class BufferedInputStream: InputStream {
78
@JavaMethod
@@ -37,3 +38,4 @@ open class BufferedInputStream: InputStream {
3738
@JavaMethod
3839
open override func markSupported() -> Bool
3940
}
41+
#endif

Sources/JavaStdlib/JavaIO/generated/Charset.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.nio.charset.Charset")
67
open class Charset: JavaObject {
78
@JavaMethod
@@ -47,3 +48,4 @@ extension JavaClass<Charset> {
4748
@JavaStaticMethod
4849
public func isSupported(_ arg0: String) -> Bool
4950
}
51+
#endif

Sources/JavaStdlib/JavaIO/generated/Closeable.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaInterface("java.io.Closeable")
67
public struct Closeable {
78
@JavaMethod
89
public func close() throws
910
}
11+
#endif

Sources/JavaStdlib/JavaIO/generated/File.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.File")
67
open class File: JavaObject {
78
@JavaMethod
@@ -164,3 +165,4 @@ extension JavaClass<File> {
164165
@JavaStaticMethod
165166
public func createTempFile(_ arg0: String, _ arg1: String, _ arg2: File?) throws -> File!
166167
}
168+
#endif

Sources/JavaStdlib/JavaIO/generated/FileDescriptor.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.FileDescriptor")
67
open class FileDescriptor: JavaObject {
78
@JavaMethod
@@ -23,3 +24,4 @@ extension JavaClass<FileDescriptor> {
2324
@JavaStaticField(isFinal: true)
2425
public var err: FileDescriptor!
2526
}
27+
#endif

Sources/JavaStdlib/JavaIO/generated/FileReader.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.FileReader")
67
open class FileReader: InputStreamReader {
78
@JavaMethod
@@ -19,3 +20,4 @@ open class FileReader: InputStreamReader {
1920
@JavaMethod
2021
@_nonoverride public convenience init(_ arg0: String, environment: JNIEnvironment? = nil) throws
2122
}
23+
#endif

Sources/JavaStdlib/JavaIO/generated/Flushable.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaInterface("java.io.Flushable")
67
public struct Flushable {
78
@JavaMethod
89
public func flush() throws
910
}
11+
#endif

Sources/JavaStdlib/JavaIO/generated/InputStream.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.InputStream", implements: Closeable.self)
67
open class InputStream: JavaObject {
78
@JavaMethod
@@ -53,3 +54,4 @@ extension JavaClass<InputStream> {
5354
@JavaStaticMethod
5455
public func nullInputStream() -> InputStream!
5556
}
57+
#endif

Sources/JavaStdlib/JavaIO/generated/InputStreamReader.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import SwiftJava
33
import CSwiftJavaJNI
44

5+
#if SwiftJavaMacrosSupport
56
@JavaClass("java.io.InputStreamReader")
67
open class InputStreamReader: Reader {
78
@JavaMethod
@@ -28,3 +29,4 @@ open class InputStreamReader: Reader {
2829
@JavaMethod
2930
open func getEncoding() -> String
3031
}
32+
#endif

0 commit comments

Comments
 (0)