Skip to content

Commit a765442

Browse files
Swift5 (#16)
* Update for Swift5 * Comment out johnno hack (fixes crash at runtime) * Remove unneeded soname * set CMAKE_Swift_MODULE_DIRECTORY Co-authored-by: Geordie J <[email protected]>
1 parent 1a4cf54 commit a765442

11 files changed

+133
-104
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
project(SwiftJNI LANGUAGES C Swift)
2+
3+
add_subdirectory(Sources/JNI)

Sources/JNI/CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)
2+
3+
add_library(JNI SHARED
4+
Array+JavaParameterConvertible.swift
5+
JavaParameterConvertible+Objects.swift
6+
JavaParameterConvertible+Primitives.swift
7+
JavaParameterConvertible.swift
8+
JNI.swift
9+
JNIClassManipulation.swift
10+
JNIExceptions.swift
11+
JNIFields.swift
12+
JNIMethods.swift
13+
JNIObjects.swift
14+
JNIRefs.swift
15+
JNIStrings.swift
16+
SwiftJNI.swift
17+
)
18+
19+
set_target_properties(JNI PROPERTIES
20+
INTERFACE_LINK_DIRECTORIES $<TARGET_LINKER_FILE_DIR:JNI>
21+
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
22+
23+
target_compile_options(JNI PUBLIC
24+
SHELL: -I ${SwiftJNI_SOURCE_DIR}/Sources/CJNI)
25+
26+
# TODO Add ${SwiftJNI_SOURCE_DIR}/Sources/CJNI to interface include dirs?

Sources/JNI/JNI.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,32 @@ public class JNI {
3535
}
3636

3737
public extension JNI {
38-
public func GetVersion() -> JavaInt {
38+
func GetVersion() -> JavaInt {
3939
let env = self._env
4040
return env.pointee.pointee.GetVersion(env)
4141
}
4242

43-
public func GetJavaVM(vm: UnsafeMutablePointer<UnsafeMutablePointer<JavaVM>>) -> JavaInt {
43+
func GetJavaVM(vm: UnsafeMutablePointer<UnsafeMutablePointer<JavaVM>>) -> JavaInt {
4444
let env = self._env
4545
return env.pointee.pointee.GetJavaVM(env, vm)
4646
}
4747

48-
public func RegisterNatives(targetClass: JavaClass, _ methods: UnsafePointer<JNINativeMethod>, _ nMethods: JavaInt) -> JavaInt {
48+
func RegisterNatives(targetClass: JavaClass, _ methods: UnsafePointer<JNINativeMethod>, _ nMethods: JavaInt) -> JavaInt {
4949
let env = self._env
5050
return env.pointee.pointee.RegisterNatives(env, targetClass, methods, nMethods)
5151
}
5252

53-
public func UnregisterNatives(targetClass: JavaClass) -> JavaInt {
53+
func UnregisterNatives(targetClass: JavaClass) -> JavaInt {
5454
let env = self._env
5555
return env.pointee.pointee.UnregisterNatives(env, targetClass)
5656
}
5757

58-
public func MonitorEnter(obj: JavaObject) -> JavaInt {
58+
func MonitorEnter(obj: JavaObject) -> JavaInt {
5959
let env = self._env
6060
return env.pointee.pointee.MonitorEnter(env, obj)
6161
}
6262

63-
public func MonitorExit(obj: JavaObject) -> JavaInt {
63+
func MonitorExit(obj: JavaObject) -> JavaInt {
6464
let env = self._env
6565
return env.pointee.pointee.MonitorExit(env, obj)
6666
}

Sources/JNI/JNIClassManipulation.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,44 @@
11
import CJNI
22

33
public extension JNI {
4-
// public func DefineClass(name: String, _ loader: JavaObject, _ buffer: UnsafePointer<JavaByte>, _ bufferLength: jsize) -> JavaClass {
4+
// func DefineClass(name: String, _ loader: JavaObject, _ buffer: UnsafePointer<JavaByte>, _ bufferLength: jsize) -> JavaClass {
55
// let env = self._env
66
// return env.pointee.pointee.DefineClass(env, name, loader, buffer, bufferLength)!
77
// }
88

9-
public func FindClass(name: String) throws -> JavaClass {
9+
func FindClass(name: String) throws -> JavaClass {
1010
let env = self._env
1111
let result = env.pointee.pointee.FindClass(env, name.replacingFullstopsWithSlashes())
1212
try checkAndThrowOnJNIError()
1313
return result!
1414
}
1515

16-
public func FromReflectedMethod(method: JavaObject) -> JavaMethodID {
16+
func FromReflectedMethod(method: JavaObject) -> JavaMethodID {
1717
let env = self._env
1818
return env.pointee.pointee.FromReflectedMethod(env, method)!
1919
}
2020

21-
public func FromReflectedField(field: JavaObject) -> JavaFieldID {
21+
func FromReflectedField(field: JavaObject) -> JavaFieldID {
2222
let env = self._env
2323
return env.pointee.pointee.FromReflectedField(env, field)!
2424
}
2525

26-
public func ToReflectedMethod(targetClass: JavaClass, _ methodID: JavaMethodID, _ isStatic: JavaBoolean) -> JavaObject {
26+
func ToReflectedMethod(targetClass: JavaClass, _ methodID: JavaMethodID, _ isStatic: JavaBoolean) -> JavaObject {
2727
let env = self._env
2828
return env.pointee.pointee.ToReflectedMethod(env, targetClass, methodID, isStatic)!
2929
}
3030

31-
public func GetSuperclass(targetClass: JavaClass) -> JavaClass {
31+
func GetSuperclass(targetClass: JavaClass) -> JavaClass {
3232
let env = self._env
3333
return env.pointee.pointee.GetSuperclass(env, targetClass)!
3434
}
3535

36-
public func IsAssignableFrom(classA: JavaClass, _ classB: JavaClass) -> JavaBoolean {
36+
func IsAssignableFrom(classA: JavaClass, _ classB: JavaClass) -> JavaBoolean {
3737
let env = self._env
3838
return env.pointee.pointee.IsAssignableFrom(env, classA, classB)
3939
}
4040

41-
public func ToReflectedField(targetClass: JavaClass, _ fieldID: JavaFieldID, _ isStatic: JavaBoolean) -> JavaObject {
41+
func ToReflectedField(targetClass: JavaClass, _ fieldID: JavaFieldID, _ isStatic: JavaBoolean) -> JavaObject {
4242
let env = self._env
4343
return env.pointee.pointee.ToReflectedField(env, targetClass, fieldID, isStatic)!
4444
}

Sources/JNI/JNIExceptions.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
import CJNI
22

33
public extension JNI {
4-
public func ExceptionCheck() -> Bool {
4+
func ExceptionCheck() -> Bool {
55
let env = self._env
66
return env.pointee.pointee.ExceptionCheck(env) == true
77
}
88

9-
public func ExceptionDescribe() {
9+
func ExceptionDescribe() {
1010
let env = self._env
1111
env.pointee.pointee.ExceptionDescribe(env)
1212
}
1313

14-
public func ExceptionClear() {
14+
func ExceptionClear() {
1515
let env = self._env
1616
env.pointee.pointee.ExceptionClear(env)
1717
}
1818

19-
public func ExceptionOccurred() -> JavaThrowable {
19+
func ExceptionOccurred() -> JavaThrowable {
2020
let env = self._env
2121
return env.pointee.pointee.ExceptionOccurred(env)!
2222
}
2323

24-
public func Throw(obj: JavaThrowable) -> JavaInt {
24+
func Throw(obj: JavaThrowable) -> JavaInt {
2525
let env = self._env
2626
return env.pointee.pointee.Throw(env, obj)
2727
}
2828

29-
public func ThrowNew(targetClass: JavaClass, _ message: String) -> JavaInt {
29+
func ThrowNew(targetClass: JavaClass, _ message: String) -> JavaInt {
3030
let env = self._env
3131
return env.pointee.pointee.ThrowNew(env, targetClass, message)
3232
}
3333

34-
public func FatalError(msg: String) {
34+
func FatalError(msg: String) {
3535
let env = self._env
3636
env.pointee.pointee.FatalError(env, msg)
3737
}

Sources/JNI/JNIFields.swift

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
import CJNI
99

1010
public extension JNI {
11-
public func GetStaticField<T: JavaInitializableFromField & JavaParameterConvertible>(_ fieldName: String, on javaClass: JavaClass) throws -> T {
11+
func GetStaticField<T: JavaInitializableFromField & JavaParameterConvertible>(_ fieldName: String, on javaClass: JavaClass) throws -> T {
1212
let env = self._env
1313
let fieldID = env.pointee.pointee.GetStaticFieldID(env, javaClass, fieldName, T.asJNIParameterString)
1414
try checkAndThrowOnJNIError()
1515
return try T.fromStaticField(fieldID!, of: javaClass)
1616
}
1717

18-
public func GetField<T: JavaInitializableFromField & JavaParameterConvertible>(_ fieldName: String, from javaObject: JavaObject) throws -> T {
18+
func GetField<T: JavaInitializableFromField & JavaParameterConvertible>(_ fieldName: String, from javaObject: JavaObject) throws -> T {
1919
let env = self._env
2020
let javaClass = try GetObjectClass(obj: javaObject)
2121
let fieldID = env.pointee.pointee.GetFieldID(env, javaClass, fieldName, T.asJNIParameterString)
@@ -28,42 +28,42 @@ public extension JNI {
2828
public extension JNI {
2929
// MARK: Fields
3030

31-
public func GetBooleanField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaBoolean {
31+
func GetBooleanField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaBoolean {
3232
let _env = self._env
3333
let result = _env.pointee.pointee.GetBooleanField(_env, javaObject, id)
3434
try checkAndThrowOnJNIError()
3535
return result
3636
}
3737

38-
public func GetIntField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaInt {
38+
func GetIntField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaInt {
3939
let _env = self._env
4040
let result = _env.pointee.pointee.GetIntField(_env, javaObject, id)
4141
try checkAndThrowOnJNIError()
4242
return result
4343
}
4444

45-
public func GetFloatField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaFloat {
45+
func GetFloatField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaFloat {
4646
let _env = self._env
4747
let result = _env.pointee.pointee.GetFloatField(_env, javaObject, id)
4848
try checkAndThrowOnJNIError()
4949
return result
5050
}
5151

52-
public func GetLongField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaLong {
52+
func GetLongField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaLong {
5353
let _env = self._env
5454
let result = _env.pointee.pointee.GetLongField(_env, javaObject, id)
5555
try checkAndThrowOnJNIError()
5656
return result
5757
}
5858

59-
public func GetDoubleField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaDouble {
59+
func GetDoubleField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaDouble {
6060
let _env = self._env
6161
let result = _env.pointee.pointee.GetDoubleField(_env, javaObject, id)
6262
try checkAndThrowOnJNIError()
6363
return result
6464
}
6565

66-
public func GetObjectField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaObject {
66+
func GetObjectField(of javaObject: JavaObject, id: JavaFieldID) throws -> JavaObject {
6767
let _env = self._env
6868
let result = _env.pointee.pointee.GetObjectField(_env, javaObject, id)
6969
try checkAndThrowOnJNIError()
@@ -72,42 +72,42 @@ public extension JNI {
7272

7373
// MARK: Static Fields
7474

75-
public func GetStaticBooleanField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaBoolean {
75+
func GetStaticBooleanField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaBoolean {
7676
let _env = self._env
7777
let result = _env.pointee.pointee.GetStaticBooleanField(_env, javaClass, id)
7878
try checkAndThrowOnJNIError()
7979
return result
8080
}
8181

82-
public func GetStaticIntField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaInt {
82+
func GetStaticIntField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaInt {
8383
let _env = self._env
8484
let result = _env.pointee.pointee.GetStaticIntField(_env, javaClass, id)
8585
try checkAndThrowOnJNIError()
8686
return result
8787
}
8888

89-
public func GetStaticFloatField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaFloat {
89+
func GetStaticFloatField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaFloat {
9090
let _env = self._env
9191
let result = _env.pointee.pointee.GetStaticFloatField(_env, javaClass, id)
9292
try checkAndThrowOnJNIError()
9393
return result
9494
}
9595

96-
public func GetStaticLongField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaLong {
96+
func GetStaticLongField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaLong {
9797
let _env = self._env
9898
let result = _env.pointee.pointee.GetStaticLongField(_env, javaClass, id)
9999
try checkAndThrowOnJNIError()
100100
return result
101101
}
102102

103-
public func GetStaticDoubleField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaDouble {
103+
func GetStaticDoubleField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaDouble {
104104
let _env = self._env
105105
let result = _env.pointee.pointee.GetStaticDoubleField(_env, javaClass, id)
106106
try checkAndThrowOnJNIError()
107107
return result
108108
}
109109

110-
public func GetStaticObjectField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaObject {
110+
func GetStaticObjectField(of javaClass: JavaClass, id: JavaFieldID) throws -> JavaObject {
111111
let _env = self._env
112112
guard let result = _env.pointee.pointee.GetStaticObjectField(_env, javaClass, id) else { throw JNIError() }
113113
try checkAndThrowOnJNIError()

0 commit comments

Comments
 (0)