Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 22 additions & 7 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
// swift-tools-version: 6.0
// swift-tools-version: 6.1
// The swift-tools-version declares the minimum version of Swift required to build this package.

import CompilerPluginSupport
import PackageDescription

import Foundation

// Package Trait Names
let SwiftJavaMacrosSupport: String = "SwiftJavaMacrosSupport"

// Note: the JAVA_HOME environment variable must be set to point to where
// Java is installed, e.g.,
// Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home.
Expand Down Expand Up @@ -196,6 +199,17 @@ let package = Package(
),

],

traits: [
.init(
name: SwiftJavaMacrosSupport,
description: "Enable @JavaMethod, @JavaClass and other Swift macros which are used in wrapping Java types"
),
.default(enabledTraits: [
SwiftJavaMacrosSupport
]) // enabled by default, but downstream libraries may disable macros if they don't use them
],

dependencies: [
.package(url: "https://github.com/swiftlang/swift-syntax", from: "601.0.1"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
Expand All @@ -208,6 +222,7 @@ let package = Package(
// Benchmarking
.package(url: "https://github.com/ordo-one/package-benchmark", .upToNextMajor(from: "1.4.0")),
],

targets: [
.target(
name: "SwiftJavaDocumentation",
Expand All @@ -220,8 +235,8 @@ let package = Package(
.macro(
name: "SwiftJavaMacros",
dependencies: [
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
.product(name: "SwiftSyntaxMacros", package: "swift-syntax", condition: .when(traits: [SwiftJavaMacrosSupport])),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax", condition: .when(traits: [SwiftJavaMacrosSupport])),
],
swiftSettings: [
.swiftLanguageMode(.v5)
Expand All @@ -237,10 +252,10 @@ let package = Package(
.target(
name: "SwiftJava",
dependencies: [
"CSwiftJavaJNI",
"SwiftJavaMacros",
"JavaTypes",
"SwiftJavaConfigurationShared", // for Configuration reading at runtime
.byName(name: "CSwiftJavaJNI"),
.byName(name: "JavaTypes"),
.byName(name: "SwiftJavaMacros", condition: .when(traits: [SwiftJavaMacrosSupport])),
.byName(name: "SwiftJavaConfigurationShared"), // for Configuration reading at runtime
],
exclude: ["swift-java.config"],
swiftSettings: [
Expand Down
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/BufferedInputStream.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.BufferedInputStream")
open class BufferedInputStream: InputStream {
@JavaMethod
Expand Down Expand Up @@ -37,3 +38,4 @@ open class BufferedInputStream: InputStream {
@JavaMethod
open override func markSupported() -> Bool
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Charset.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.nio.charset.Charset")
open class Charset: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -47,3 +48,4 @@ extension JavaClass<Charset> {
@JavaStaticMethod
public func isSupported(_ arg0: String) -> Bool
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Closeable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.io.Closeable")
public struct Closeable {
@JavaMethod
public func close() throws
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/File.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.File")
open class File: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -164,3 +165,4 @@ extension JavaClass<File> {
@JavaStaticMethod
public func createTempFile(_ arg0: String, _ arg1: String, _ arg2: File?) throws -> File!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/FileDescriptor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.FileDescriptor")
open class FileDescriptor: JavaObject {
@JavaMethod
Expand All @@ -23,3 +24,4 @@ extension JavaClass<FileDescriptor> {
@JavaStaticField(isFinal: true)
public var err: FileDescriptor!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/FileReader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.FileReader")
open class FileReader: InputStreamReader {
@JavaMethod
Expand All @@ -19,3 +20,4 @@ open class FileReader: InputStreamReader {
@JavaMethod
@_nonoverride public convenience init(_ arg0: String, environment: JNIEnvironment? = nil) throws
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Flushable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.io.Flushable")
public struct Flushable {
@JavaMethod
public func flush() throws
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/InputStream.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.InputStream", implements: Closeable.self)
open class InputStream: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -53,3 +54,4 @@ extension JavaClass<InputStream> {
@JavaStaticMethod
public func nullInputStream() -> InputStream!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/InputStreamReader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.InputStreamReader")
open class InputStreamReader: Reader {
@JavaMethod
Expand All @@ -28,3 +29,4 @@ open class InputStreamReader: Reader {
@JavaMethod
open func getEncoding() -> String
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/OutputStream.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.OutputStream", implements: Closeable.self, Flushable.self)
open class OutputStream: JavaObject {
@JavaMethod
Expand All @@ -26,3 +27,4 @@ extension JavaClass<OutputStream> {
@JavaStaticMethod
public func nullOutputStream() -> OutputStream!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Path.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.nio.file.Path")
public struct Path {
@JavaMethod
Expand Down Expand Up @@ -86,3 +87,4 @@ extension JavaClass<Path> {
@JavaStaticMethod
public func of(_ arg0: String, _ arg1: [String]) -> Path!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Readable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.lang.Readable")
public struct Readable {

}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Reader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.Reader", implements: Readable.self, Closeable.self)
open class Reader: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -38,3 +39,4 @@ extension JavaClass<Reader> {
@JavaStaticMethod
public func nullReader() -> Reader!
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/StringReader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.StringReader")
open class StringReader: Reader {
@JavaMethod
Expand Down Expand Up @@ -31,3 +32,4 @@ open class StringReader: Reader {
@JavaMethod
open override func markSupported() -> Bool
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/WatchService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.nio.file.WatchService", extends: Closeable.self)
public struct WatchService {
@JavaMethod
public func close() throws
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaIO/generated/Writer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.io.Writer", implements: Appendable.self, Closeable.self, Flushable.self)
open class Writer: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -47,3 +48,4 @@ extension JavaClass<Writer> {
@JavaStaticMethod
public func nullWriter() -> Writer!
}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
//
//===----------------------------------------------------------------------===//

#if SwiftJavaMacrosSupport
extension Constructor {
/// Whether this is a 'public' constructor.
public var isPublic: Bool {
Expand All @@ -23,3 +24,4 @@ extension Constructor {
return (getModifiers() & 256) != 0
}
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/Executable+Utilities.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import SwiftJava

#if SwiftJavaMacrosSupport
extension Executable {
/// Whether this executable throws any checked exception.
public var throwsCheckedException: Bool {
Expand All @@ -29,3 +30,4 @@ extension Executable {
return false
}
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/Field+Utilities.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
//
//===----------------------------------------------------------------------===//

#if SwiftJavaMacrosSupport
extension Field {
/// Whether this is a 'static' field.
public var isStatic: Bool {
Expand All @@ -23,3 +24,4 @@ extension Field {
return (getModifiers() & 16) != 0
}
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/JavaClass+Reflection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import SwiftJava

// TODO: We should be able to autogenerate this as an extension based on
// knowing that JavaClass was defined elsewhere.
#if SwiftJavaMacrosSupport
extension JavaClass {
@JavaMethod
public func getDeclaredMethods() -> [Method?]
Expand Down Expand Up @@ -47,3 +48,4 @@ extension JavaClass {
@JavaMethod
public func getAnnotations() -> [Annotation?]
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/Method+Utilities.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
//
//===----------------------------------------------------------------------===//

#if SwiftJavaMacrosSupport
extension Method {
/// Whether this is a 'public' method.
public var isPublic: Bool {
Expand All @@ -33,3 +34,4 @@ extension Method {
return (getModifiers() & 256) != 0
}
}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.lang.reflect.AccessibleObject")
open class AccessibleObject: JavaObject {
@JavaMethod
Expand Down Expand Up @@ -41,3 +42,4 @@ extension JavaClass<AccessibleObject> {
@JavaStaticMethod
public func setAccessible(_ arg0: [AccessibleObject?], _ arg1: Bool)
}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.lang.reflect.AnnotatedType")
public struct AnnotatedType {
@JavaMethod
Expand Down Expand Up @@ -31,3 +32,4 @@ public struct AnnotatedType {
@JavaMethod
public func getDeclaredAnnotationsByType(_ arg0: JavaClass<Annotation>?) -> [Annotation?]
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/generated/Annotation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaInterface("java.lang.annotation.Annotation")
public struct Annotation {
@JavaMethod
Expand All @@ -16,3 +17,4 @@ public struct Annotation {
@JavaMethod
public func annotationType() -> JavaClass<Annotation>!
}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import SwiftJava
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.lang.reflect.Constructor")
open class Constructor<T: AnyJavaObject>: Executable {
@JavaMethod
Expand Down Expand Up @@ -77,3 +78,4 @@ extension JavaClass {
@JavaStaticField(isFinal: true)
public var DECLARED: Int32
}
#endif
2 changes: 2 additions & 0 deletions Sources/JavaStdlib/JavaLangReflect/generated/Executable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import SwiftJava
import JavaUtil
import CSwiftJavaJNI

#if SwiftJavaMacrosSupport
@JavaClass("java.lang.reflect.Executable", implements: GenericDeclaration.self)
open class Executable: AccessibleObject {
@JavaMethod
Expand Down Expand Up @@ -75,3 +76,4 @@ extension JavaClass<Executable> {
@JavaStaticField(isFinal: true)
public var DECLARED: Int32
}
#endif
Loading
Loading