diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks new file mode 120000 index 000000000..dc3d02e21 --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks @@ -0,0 +1 @@ +Versions/A/Frameworks \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Headers b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Headers new file mode 120000 index 000000000..d5ab97c5c --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Headers @@ -0,0 +1 @@ +Versions/A/Headers \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/Headers b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/Headers new file mode 120000 index 000000000..ffb18a286 --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/Headers @@ -0,0 +1 @@ +../../../../../../../../../../../../../../../../src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/Current b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/Current new file mode 120000 index 000000000..8c7e5a667 --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Headers b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Headers new file mode 120000 index 000000000..d5ab97c5c --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Headers @@ -0,0 +1 @@ +Versions/A/Headers \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/Headers b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/Headers new file mode 120000 index 000000000..917219067 --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/Headers @@ -0,0 +1 @@ +../../../../../../../../../../../../../../../../src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport \ No newline at end of file diff --git a/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/Current b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/Current new file mode 120000 index 000000000..8c7e5a667 --- /dev/null +++ b/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/framework-include/JavaNativeFoundation b/framework-include/JavaNativeFoundation new file mode 120000 index 000000000..d45719cf5 --- /dev/null +++ b/framework-include/JavaNativeFoundation @@ -0,0 +1 @@ +../Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaNativeFoundation.framework/Headers \ No newline at end of file diff --git a/framework-include/JavaRuntimeSupport b/framework-include/JavaRuntimeSupport new file mode 120000 index 000000000..8c365b7f4 --- /dev/null +++ b/framework-include/JavaRuntimeSupport @@ -0,0 +1 @@ +../Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Headers \ No newline at end of file diff --git a/src/frameworks/CMakeLists.txt b/src/frameworks/CMakeLists.txt index 48a70cf03..e4acdc05b 100644 --- a/src/frameworks/CMakeLists.txt +++ b/src/frameworks/CMakeLists.txt @@ -29,6 +29,8 @@ add_subdirectory(GameController) add_subdirectory(ImageIO) add_subdirectory(IOBluetooth) add_subdirectory(IOSurface) +add_subdirectory(JavaNativeFoundation) +add_subdirectory(JavaRuntimeSupport) add_subdirectory(JavaVM) add_subdirectory(LocalAuthentication) add_subdirectory(MapKit) diff --git a/src/frameworks/JavaNativeFoundation/CMakeLists.txt b/src/frameworks/JavaNativeFoundation/CMakeLists.txt new file mode 100644 index 000000000..226905a71 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/CMakeLists.txt @@ -0,0 +1,34 @@ +project(JavaNativeFoundation) + +set(DYLIB_COMPAT_VERSION "1.0.0") +set(DYLIB_CURRENT_VERSION "1.0.0") + +add_framework(JavaNativeFoundation + FAT + CURRENT_VERSION + PARENT "JavaVM" + VERSION "A" + + SOURCES + src/JavaNativeFoundation.m + src/JNFException.m + src/JNFTypeCoercer.m + src/JNFInternalJavaClassToCoersionHolder.m + src/JNFStringCoercion.m + src/JNFNumberCoercion.m + src/JNFDateCoercion.m + src/JNFMapCoercion.m + src/JNFListCoercion.m + src/JNFSetCoercion.m + src/JNFDefaultCoercions.m + src/JNFJObjectWrapper.m + src/JNFWeakJObjectWrapper.m + src/JNFRunLoop.m + src/JNFRunnableWrapper.m + src/JNFRunnable.m + + DEPENDENCIES + system + objc + Foundation +) diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDateCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDateCoercion.h new file mode 100644 index 000000000..5d80f16d9 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDateCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFDateCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDefaultCoercions.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDefaultCoercions.h new file mode 100644 index 000000000..723284619 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFDefaultCoercions.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFDefaultCoercions : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFException.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFException.h new file mode 100644 index 000000000..6f7302fac --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFException.h @@ -0,0 +1,33 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +extern const char* kOutOfMemoryError; +extern const char* kClassNotFoundException; +extern const char* kNullPointerException; +extern const char* kIllegalAccessException; +extern const char* kIllegalArgumentException; +extern const char* kNoSuchFieldException; +extern const char* kNoSuchMethodException; +extern const char* kRuntimeException; + +@interface JNFException : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFInternalJavaClassToCoersionHolder.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFInternalJavaClassToCoersionHolder.h new file mode 100644 index 000000000..398226752 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFInternalJavaClassToCoersionHolder.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFInternalJavaClassToCoersionHolder : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFJObjectWrapper.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFJObjectWrapper.h new file mode 100644 index 000000000..78193add5 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFJObjectWrapper.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFJObjectWrapper : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFListCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFListCoercion.h new file mode 100644 index 000000000..b0aa4119b --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFListCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFListCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFMapCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFMapCoercion.h new file mode 100644 index 000000000..1e9b3e082 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFMapCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFMapCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFNumberCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFNumberCoercion.h new file mode 100644 index 000000000..4188bf5e7 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFNumberCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFNumberCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunLoop.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunLoop.h new file mode 100644 index 000000000..4c39b08d5 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunLoop.h @@ -0,0 +1,26 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +extern NSString* JNFRunLoopDidStartNotification; + +@interface JNFRunLoop : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnable.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnable.h new file mode 100644 index 000000000..6f7609cba --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnable.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFRunnable : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnableWrapper.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnableWrapper.h new file mode 100644 index 000000000..3625f651a --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFRunnableWrapper.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFRunnableWrapper : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFSetCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFSetCoercion.h new file mode 100644 index 000000000..9dba96cfc --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFSetCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFSetCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFStringCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFStringCoercion.h new file mode 100644 index 000000000..6b745db03 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFStringCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFStringCoercion : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercer.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercer.h new file mode 100644 index 000000000..b016f1837 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercer.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFTypeCoercer : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercion.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercion.h new file mode 100644 index 000000000..f588b88ea --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFTypeCoercion.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@protocol JNFTypeCoercion + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFWeakJObjectWrapper.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFWeakJObjectWrapper.h new file mode 100644 index 000000000..6a1ad06d1 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JNFWeakJObjectWrapper.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JNFWeakJObjectWrapper : NSObject + +@end diff --git a/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JavaNativeFoundation.h b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JavaNativeFoundation.h new file mode 100644 index 000000000..0db974b5d --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/include/JavaNativeFoundation/JavaNativeFoundation.h @@ -0,0 +1,148 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + + +#ifndef _JavaNativeFoundation_H_ +#define _JavaNativeFoundation_H_ + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +void* JNFAssertionFailure(void); +void* JNFAssertionFailureBreak(void); +void* JNFCFToJavaBoolean(void); +void* JNFCallBooleanMethod(void); +void* JNFCallByteMethod(void); +void* JNFCallCharMethod(void); +void* JNFCallDoubleMethod(void); +void* JNFCallFloatMethod(void); +void* JNFCallIntMethod(void); +void* JNFCallLongMethod(void); +void* JNFCallObjectMethod(void); +void* JNFCallShortMethod(void); +void* JNFCallStaticBooleanMethod(void); +void* JNFCallStaticByteMethod(void); +void* JNFCallStaticCharMethod(void); +void* JNFCallStaticDoubleMethod(void); +void* JNFCallStaticFloatMethod(void); +void* JNFCallStaticIntMethod(void); +void* JNFCallStaticLongMethod(void); +void* JNFCallStaticObjectMethod(void); +void* JNFCallStaticShortMethod(void); +void* JNFCallStaticVoidMethod(void); +void* JNFCallVoidMethod(void); +void* JNFDebugWarning(void); +void* JNFDebugWarningBreak(void); +void* JNFDeleteGlobalRef(void); +void* JNFDeleteWeakGlobalRef(void); +void* JNFDumpJavaObject(void); +void* JNFDumpJavaStack(void); +void* JNFGetBooleanField(void); +void* JNFGetByteField(void); +void* JNFGetCharField(void); +void* JNFGetDoubleField(void); +void* JNFGetFloatField(void); +void* JNFGetIntField(void); +void* JNFGetLongField(void); +void* JNFGetObjectField(void); +void* JNFGetShortField(void); +void* JNFGetStackTraceAsNSString(void); +void* JNFGetStaticBooleanField(void); +void* JNFGetStaticByteField(void); +void* JNFGetStaticCharField(void); +void* JNFGetStaticDoubleField(void); +void* JNFGetStaticFloatField(void); +void* JNFGetStaticIntField(void); +void* JNFGetStaticLongField(void); +void* JNFGetStaticObjectField(void); +void* JNFGetStaticShortField(void); +void* JNFGetStringUTF16UniChars(void); +void* JNFGetStringUTF8Chars(void); +void* JNFIsInstanceOf(void); +void* JNFJavaMillisToNSTimeInterval(void); +void* JNFJavaStackTrace(void); +void* JNFJavaToCFBoolean(void); +void* JNFJavaToNSDate(void); +void* JNFJavaToNSNumber(void); +void* JNFJavaToNSString(void); +void* JNFNSTimeIntervalToJavaMillis(void); +void* JNFNSToJavaCalendar(void); +void* JNFNSToJavaNumber(void); +void* JNFNSToJavaString(void); +void* JNFNativeMethodEnter(void); +void* JNFNativeMethodExit(void); +void* JNFNewBooleanArray(void); +void* JNFNewByteArray(void); +void* JNFNewCharArray(void); +void* JNFNewDoubleArray(void); +void* JNFNewFloatArray(void); +void* JNFNewGlobalRef(void); +void* JNFNewIntArray(void); +void* JNFNewLongArray(void); +void* JNFNewObject(void); +void* JNFNewObjectArray(void); +void* JNFNewShortArray(void); +void* JNFNewWeakGlobalRef(void); +void* JNFNormalizedJavaStringForPath(void); +void* JNFNormalizedNSStringForPath(void); +void* JNFObjectClassName(void); +void* JNFObjectEquals(void); +void* JNFObjectToString(void); +void* JNFObtainEnv(void); +void* JNFPerformEnvBlock(void); +void* JNFReleaseEnv(void); +void* JNFReleaseStringUTF16UniChars(void); +void* JNFReleaseStringUTF8Chars(void); +void* JNFSetBooleanField(void); +void* JNFSetByteField(void); +void* JNFSetCharField(void); +void* JNFSetDoubleField(void); +void* JNFSetFloatField(void); +void* JNFSetIntField(void); +void* JNFSetLongField(void); +void* JNFSetObjectField(void); +void* JNFSetShortField(void); +void* JNFSetStaticBooleanField(void); +void* JNFSetStaticByteField(void); +void* JNFSetStaticCharField(void); +void* JNFSetStaticDoubleField(void); +void* JNFSetStaticFloatField(void); +void* JNFSetStaticIntField(void); +void* JNFSetStaticLongField(void); +void* JNFSetStaticObjectField(void); +void* JNFSetStaticShortField(void); +void* JNFSetTracePS(void); + +#endif diff --git a/src/frameworks/JavaNativeFoundation/src/JNFDateCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFDateCoercion.m new file mode 100644 index 000000000..c3e0eba50 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFDateCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFDateCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFDefaultCoercions.m b/src/frameworks/JavaNativeFoundation/src/JNFDefaultCoercions.m new file mode 100644 index 000000000..3473be4b1 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFDefaultCoercions.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFDefaultCoercions + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFException.m b/src/frameworks/JavaNativeFoundation/src/JNFException.m new file mode 100644 index 000000000..5cb166ae6 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFException.m @@ -0,0 +1,44 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +// guessed values +const char* kOutOfMemoryError = "kOutOfMemoryError"; +const char* kClassNotFoundException = "kClassNotFoundException"; +const char* kNullPointerException = "kNullPointerException"; +const char* kIllegalAccessException = "kIllegalAccessException"; +const char* kIllegalArgumentException = "kIllegalArgumentException"; +const char* kNoSuchFieldException = "kNoSuchFieldException"; +const char* kNoSuchMethodException = "kNoSuchMethodException"; +const char* kRuntimeException = "kRuntimeException"; + +@implementation JNFException + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFInternalJavaClassToCoersionHolder.m b/src/frameworks/JavaNativeFoundation/src/JNFInternalJavaClassToCoersionHolder.m new file mode 100644 index 000000000..41501d6de --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFInternalJavaClassToCoersionHolder.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFInternalJavaClassToCoersionHolder + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFJObjectWrapper.m b/src/frameworks/JavaNativeFoundation/src/JNFJObjectWrapper.m new file mode 100644 index 000000000..5fafd604e --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFJObjectWrapper.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFJObjectWrapper + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFListCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFListCoercion.m new file mode 100644 index 000000000..60e556ae0 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFListCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFListCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFMapCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFMapCoercion.m new file mode 100644 index 000000000..5f4244bcd --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFMapCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFMapCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFNumberCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFNumberCoercion.m new file mode 100644 index 000000000..329f00887 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFNumberCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFNumberCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFRunLoop.m b/src/frameworks/JavaNativeFoundation/src/JNFRunLoop.m new file mode 100644 index 000000000..e7f412af9 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFRunLoop.m @@ -0,0 +1,37 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +// guessed value +NSString* JNFRunLoopDidStartNotification = @"JNFRunLoopDidStartNotification"; + +@implementation JNFRunLoop + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFRunnable.m b/src/frameworks/JavaNativeFoundation/src/JNFRunnable.m new file mode 100644 index 000000000..90bc7eeee --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFRunnable.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFRunnable + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFRunnableWrapper.m b/src/frameworks/JavaNativeFoundation/src/JNFRunnableWrapper.m new file mode 100644 index 000000000..799158004 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFRunnableWrapper.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFRunnableWrapper + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFSetCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFSetCoercion.m new file mode 100644 index 000000000..7f6f2a64c --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFSetCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFSetCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFStringCoercion.m b/src/frameworks/JavaNativeFoundation/src/JNFStringCoercion.m new file mode 100644 index 000000000..ff30aa801 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFStringCoercion.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFStringCoercion + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFTypeCoercer.m b/src/frameworks/JavaNativeFoundation/src/JNFTypeCoercer.m new file mode 100644 index 000000000..dccd51aa2 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFTypeCoercer.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFTypeCoercer + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JNFWeakJObjectWrapper.m b/src/frameworks/JavaNativeFoundation/src/JNFWeakJObjectWrapper.m new file mode 100644 index 000000000..b9456c243 --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JNFWeakJObjectWrapper.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JNFWeakJObjectWrapper + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaNativeFoundation/src/JavaNativeFoundation.m b/src/frameworks/JavaNativeFoundation/src/JavaNativeFoundation.m new file mode 100644 index 000000000..5eea451ed --- /dev/null +++ b/src/frameworks/JavaNativeFoundation/src/JavaNativeFoundation.m @@ -0,0 +1,654 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + + +#include +#include +#include + +static int verbose = 0; + +__attribute__((constructor)) +static void initme(void) { + verbose = getenv("STUB_VERBOSE") != NULL; +} + +void* JNFAssertionFailure(void) +{ + if (verbose) puts("STUB: JNFAssertionFailure called"); + return NULL; +} + +void* JNFAssertionFailureBreak(void) +{ + if (verbose) puts("STUB: JNFAssertionFailureBreak called"); + return NULL; +} + +void* JNFCFToJavaBoolean(void) +{ + if (verbose) puts("STUB: JNFCFToJavaBoolean called"); + return NULL; +} + +void* JNFCallBooleanMethod(void) +{ + if (verbose) puts("STUB: JNFCallBooleanMethod called"); + return NULL; +} + +void* JNFCallByteMethod(void) +{ + if (verbose) puts("STUB: JNFCallByteMethod called"); + return NULL; +} + +void* JNFCallCharMethod(void) +{ + if (verbose) puts("STUB: JNFCallCharMethod called"); + return NULL; +} + +void* JNFCallDoubleMethod(void) +{ + if (verbose) puts("STUB: JNFCallDoubleMethod called"); + return NULL; +} + +void* JNFCallFloatMethod(void) +{ + if (verbose) puts("STUB: JNFCallFloatMethod called"); + return NULL; +} + +void* JNFCallIntMethod(void) +{ + if (verbose) puts("STUB: JNFCallIntMethod called"); + return NULL; +} + +void* JNFCallLongMethod(void) +{ + if (verbose) puts("STUB: JNFCallLongMethod called"); + return NULL; +} + +void* JNFCallObjectMethod(void) +{ + if (verbose) puts("STUB: JNFCallObjectMethod called"); + return NULL; +} + +void* JNFCallShortMethod(void) +{ + if (verbose) puts("STUB: JNFCallShortMethod called"); + return NULL; +} + +void* JNFCallStaticBooleanMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticBooleanMethod called"); + return NULL; +} + +void* JNFCallStaticByteMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticByteMethod called"); + return NULL; +} + +void* JNFCallStaticCharMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticCharMethod called"); + return NULL; +} + +void* JNFCallStaticDoubleMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticDoubleMethod called"); + return NULL; +} + +void* JNFCallStaticFloatMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticFloatMethod called"); + return NULL; +} + +void* JNFCallStaticIntMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticIntMethod called"); + return NULL; +} + +void* JNFCallStaticLongMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticLongMethod called"); + return NULL; +} + +void* JNFCallStaticObjectMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticObjectMethod called"); + return NULL; +} + +void* JNFCallStaticShortMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticShortMethod called"); + return NULL; +} + +void* JNFCallStaticVoidMethod(void) +{ + if (verbose) puts("STUB: JNFCallStaticVoidMethod called"); + return NULL; +} + +void* JNFCallVoidMethod(void) +{ + if (verbose) puts("STUB: JNFCallVoidMethod called"); + return NULL; +} + +void* JNFDebugWarning(void) +{ + if (verbose) puts("STUB: JNFDebugWarning called"); + return NULL; +} + +void* JNFDebugWarningBreak(void) +{ + if (verbose) puts("STUB: JNFDebugWarningBreak called"); + return NULL; +} + +void* JNFDeleteGlobalRef(void) +{ + if (verbose) puts("STUB: JNFDeleteGlobalRef called"); + return NULL; +} + +void* JNFDeleteWeakGlobalRef(void) +{ + if (verbose) puts("STUB: JNFDeleteWeakGlobalRef called"); + return NULL; +} + +void* JNFDumpJavaObject(void) +{ + if (verbose) puts("STUB: JNFDumpJavaObject called"); + return NULL; +} + +void* JNFDumpJavaStack(void) +{ + if (verbose) puts("STUB: JNFDumpJavaStack called"); + return NULL; +} + +void* JNFGetBooleanField(void) +{ + if (verbose) puts("STUB: JNFGetBooleanField called"); + return NULL; +} + +void* JNFGetByteField(void) +{ + if (verbose) puts("STUB: JNFGetByteField called"); + return NULL; +} + +void* JNFGetCharField(void) +{ + if (verbose) puts("STUB: JNFGetCharField called"); + return NULL; +} + +void* JNFGetDoubleField(void) +{ + if (verbose) puts("STUB: JNFGetDoubleField called"); + return NULL; +} + +void* JNFGetFloatField(void) +{ + if (verbose) puts("STUB: JNFGetFloatField called"); + return NULL; +} + +void* JNFGetIntField(void) +{ + if (verbose) puts("STUB: JNFGetIntField called"); + return NULL; +} + +void* JNFGetLongField(void) +{ + if (verbose) puts("STUB: JNFGetLongField called"); + return NULL; +} + +void* JNFGetObjectField(void) +{ + if (verbose) puts("STUB: JNFGetObjectField called"); + return NULL; +} + +void* JNFGetShortField(void) +{ + if (verbose) puts("STUB: JNFGetShortField called"); + return NULL; +} + +void* JNFGetStackTraceAsNSString(void) +{ + if (verbose) puts("STUB: JNFGetStackTraceAsNSString called"); + return NULL; +} + +void* JNFGetStaticBooleanField(void) +{ + if (verbose) puts("STUB: JNFGetStaticBooleanField called"); + return NULL; +} + +void* JNFGetStaticByteField(void) +{ + if (verbose) puts("STUB: JNFGetStaticByteField called"); + return NULL; +} + +void* JNFGetStaticCharField(void) +{ + if (verbose) puts("STUB: JNFGetStaticCharField called"); + return NULL; +} + +void* JNFGetStaticDoubleField(void) +{ + if (verbose) puts("STUB: JNFGetStaticDoubleField called"); + return NULL; +} + +void* JNFGetStaticFloatField(void) +{ + if (verbose) puts("STUB: JNFGetStaticFloatField called"); + return NULL; +} + +void* JNFGetStaticIntField(void) +{ + if (verbose) puts("STUB: JNFGetStaticIntField called"); + return NULL; +} + +void* JNFGetStaticLongField(void) +{ + if (verbose) puts("STUB: JNFGetStaticLongField called"); + return NULL; +} + +void* JNFGetStaticObjectField(void) +{ + if (verbose) puts("STUB: JNFGetStaticObjectField called"); + return NULL; +} + +void* JNFGetStaticShortField(void) +{ + if (verbose) puts("STUB: JNFGetStaticShortField called"); + return NULL; +} + +void* JNFGetStringUTF16UniChars(void) +{ + if (verbose) puts("STUB: JNFGetStringUTF16UniChars called"); + return NULL; +} + +void* JNFGetStringUTF8Chars(void) +{ + if (verbose) puts("STUB: JNFGetStringUTF8Chars called"); + return NULL; +} + +void* JNFIsInstanceOf(void) +{ + if (verbose) puts("STUB: JNFIsInstanceOf called"); + return NULL; +} + +void* JNFJavaMillisToNSTimeInterval(void) +{ + if (verbose) puts("STUB: JNFJavaMillisToNSTimeInterval called"); + return NULL; +} + +void* JNFJavaStackTrace(void) +{ + if (verbose) puts("STUB: JNFJavaStackTrace called"); + return NULL; +} + +void* JNFJavaToCFBoolean(void) +{ + if (verbose) puts("STUB: JNFJavaToCFBoolean called"); + return NULL; +} + +void* JNFJavaToNSDate(void) +{ + if (verbose) puts("STUB: JNFJavaToNSDate called"); + return NULL; +} + +void* JNFJavaToNSNumber(void) +{ + if (verbose) puts("STUB: JNFJavaToNSNumber called"); + return NULL; +} + +void* JNFJavaToNSString(void) +{ + if (verbose) puts("STUB: JNFJavaToNSString called"); + return NULL; +} + +void* JNFNSTimeIntervalToJavaMillis(void) +{ + if (verbose) puts("STUB: JNFNSTimeIntervalToJavaMillis called"); + return NULL; +} + +void* JNFNSToJavaCalendar(void) +{ + if (verbose) puts("STUB: JNFNSToJavaCalendar called"); + return NULL; +} + +void* JNFNSToJavaNumber(void) +{ + if (verbose) puts("STUB: JNFNSToJavaNumber called"); + return NULL; +} + +void* JNFNSToJavaString(void) +{ + if (verbose) puts("STUB: JNFNSToJavaString called"); + return NULL; +} + +void* JNFNativeMethodEnter(void) +{ + if (verbose) puts("STUB: JNFNativeMethodEnter called"); + return NULL; +} + +void* JNFNativeMethodExit(void) +{ + if (verbose) puts("STUB: JNFNativeMethodExit called"); + return NULL; +} + +void* JNFNewBooleanArray(void) +{ + if (verbose) puts("STUB: JNFNewBooleanArray called"); + return NULL; +} + +void* JNFNewByteArray(void) +{ + if (verbose) puts("STUB: JNFNewByteArray called"); + return NULL; +} + +void* JNFNewCharArray(void) +{ + if (verbose) puts("STUB: JNFNewCharArray called"); + return NULL; +} + +void* JNFNewDoubleArray(void) +{ + if (verbose) puts("STUB: JNFNewDoubleArray called"); + return NULL; +} + +void* JNFNewFloatArray(void) +{ + if (verbose) puts("STUB: JNFNewFloatArray called"); + return NULL; +} + +void* JNFNewGlobalRef(void) +{ + if (verbose) puts("STUB: JNFNewGlobalRef called"); + return NULL; +} + +void* JNFNewIntArray(void) +{ + if (verbose) puts("STUB: JNFNewIntArray called"); + return NULL; +} + +void* JNFNewLongArray(void) +{ + if (verbose) puts("STUB: JNFNewLongArray called"); + return NULL; +} + +void* JNFNewObject(void) +{ + if (verbose) puts("STUB: JNFNewObject called"); + return NULL; +} + +void* JNFNewObjectArray(void) +{ + if (verbose) puts("STUB: JNFNewObjectArray called"); + return NULL; +} + +void* JNFNewShortArray(void) +{ + if (verbose) puts("STUB: JNFNewShortArray called"); + return NULL; +} + +void* JNFNewWeakGlobalRef(void) +{ + if (verbose) puts("STUB: JNFNewWeakGlobalRef called"); + return NULL; +} + +void* JNFNormalizedJavaStringForPath(void) +{ + if (verbose) puts("STUB: JNFNormalizedJavaStringForPath called"); + return NULL; +} + +void* JNFNormalizedNSStringForPath(void) +{ + if (verbose) puts("STUB: JNFNormalizedNSStringForPath called"); + return NULL; +} + +void* JNFObjectClassName(void) +{ + if (verbose) puts("STUB: JNFObjectClassName called"); + return NULL; +} + +void* JNFObjectEquals(void) +{ + if (verbose) puts("STUB: JNFObjectEquals called"); + return NULL; +} + +void* JNFObjectToString(void) +{ + if (verbose) puts("STUB: JNFObjectToString called"); + return NULL; +} + +void* JNFObtainEnv(void) +{ + if (verbose) puts("STUB: JNFObtainEnv called"); + return NULL; +} + +void* JNFPerformEnvBlock(void) +{ + if (verbose) puts("STUB: JNFPerformEnvBlock called"); + return NULL; +} + +void* JNFReleaseEnv(void) +{ + if (verbose) puts("STUB: JNFReleaseEnv called"); + return NULL; +} + +void* JNFReleaseStringUTF16UniChars(void) +{ + if (verbose) puts("STUB: JNFReleaseStringUTF16UniChars called"); + return NULL; +} + +void* JNFReleaseStringUTF8Chars(void) +{ + if (verbose) puts("STUB: JNFReleaseStringUTF8Chars called"); + return NULL; +} + +void* JNFSetBooleanField(void) +{ + if (verbose) puts("STUB: JNFSetBooleanField called"); + return NULL; +} + +void* JNFSetByteField(void) +{ + if (verbose) puts("STUB: JNFSetByteField called"); + return NULL; +} + +void* JNFSetCharField(void) +{ + if (verbose) puts("STUB: JNFSetCharField called"); + return NULL; +} + +void* JNFSetDoubleField(void) +{ + if (verbose) puts("STUB: JNFSetDoubleField called"); + return NULL; +} + +void* JNFSetFloatField(void) +{ + if (verbose) puts("STUB: JNFSetFloatField called"); + return NULL; +} + +void* JNFSetIntField(void) +{ + if (verbose) puts("STUB: JNFSetIntField called"); + return NULL; +} + +void* JNFSetLongField(void) +{ + if (verbose) puts("STUB: JNFSetLongField called"); + return NULL; +} + +void* JNFSetObjectField(void) +{ + if (verbose) puts("STUB: JNFSetObjectField called"); + return NULL; +} + +void* JNFSetShortField(void) +{ + if (verbose) puts("STUB: JNFSetShortField called"); + return NULL; +} + +void* JNFSetStaticBooleanField(void) +{ + if (verbose) puts("STUB: JNFSetStaticBooleanField called"); + return NULL; +} + +void* JNFSetStaticByteField(void) +{ + if (verbose) puts("STUB: JNFSetStaticByteField called"); + return NULL; +} + +void* JNFSetStaticCharField(void) +{ + if (verbose) puts("STUB: JNFSetStaticCharField called"); + return NULL; +} + +void* JNFSetStaticDoubleField(void) +{ + if (verbose) puts("STUB: JNFSetStaticDoubleField called"); + return NULL; +} + +void* JNFSetStaticFloatField(void) +{ + if (verbose) puts("STUB: JNFSetStaticFloatField called"); + return NULL; +} + +void* JNFSetStaticIntField(void) +{ + if (verbose) puts("STUB: JNFSetStaticIntField called"); + return NULL; +} + +void* JNFSetStaticLongField(void) +{ + if (verbose) puts("STUB: JNFSetStaticLongField called"); + return NULL; +} + +void* JNFSetStaticObjectField(void) +{ + if (verbose) puts("STUB: JNFSetStaticObjectField called"); + return NULL; +} + +void* JNFSetStaticShortField(void) +{ + if (verbose) puts("STUB: JNFSetStaticShortField called"); + return NULL; +} + +void* JNFSetTracePS(void) +{ + if (verbose) puts("STUB: JNFSetTracePS called"); + return NULL; +} diff --git a/src/frameworks/JavaRuntimeSupport/CMakeLists.txt b/src/frameworks/JavaRuntimeSupport/CMakeLists.txt new file mode 100644 index 000000000..73cdda7ac --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/CMakeLists.txt @@ -0,0 +1,29 @@ +project(JavaRuntimeSupport) + +set(DYLIB_COMPAT_VERSION "1.0.0") +set(DYLIB_CURRENT_VERSION "1.0.0") + +add_framework(JavaRuntimeSupport + FAT + CURRENT_VERSION + PARENT "JavaVM" + VERSION "A" + + SOURCES + src/JavaRuntimeSupport.m + src/JRSDrag.m + src/JRSAppKitAWT.m + src/JRSMenu.m + src/_JRSUIRenderer.m + src/JRSInputMethodController.m + src/MIGThread.m + src/JRSRenderServer.m + src/JRSSymbolicator.m + src/JRSSymbolicatorImpl.m + src/JRSSecurity.m + + DEPENDENCIES + system + objc + Foundation +) diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSAppKitAWT.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSAppKitAWT.h new file mode 100644 index 000000000..4ecc17c87 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSAppKitAWT.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSAppKitAWT : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSDrag.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSDrag.h new file mode 100644 index 000000000..82cb91789 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSDrag.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSDrag : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSInputMethodController.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSInputMethodController.h new file mode 100644 index 000000000..6a39e779b --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSInputMethodController.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSInputMethodController : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSMenu.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSMenu.h new file mode 100644 index 000000000..f98286a1a --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSMenu.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSMenu : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSRenderServer.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSRenderServer.h new file mode 100644 index 000000000..112f65535 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSRenderServer.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSRenderServer : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSecurity.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSecurity.h new file mode 100644 index 000000000..ec6c6dae7 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSecurity.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSSecurity : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicator.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicator.h new file mode 100644 index 000000000..6ea887070 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicator.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSSymbolicator : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicatorImpl.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicatorImpl.h new file mode 100644 index 000000000..16f58a55a --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JRSSymbolicatorImpl.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface JRSSymbolicatorImpl : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JavaRuntimeSupport.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JavaRuntimeSupport.h new file mode 100644 index 000000000..32dd65cd0 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/JavaRuntimeSupport.h @@ -0,0 +1,89 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + + +#ifndef _JavaRuntimeSupport_H_ +#define _JavaRuntimeSupport_H_ + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +void* CopyCFStringToFilesystemRepresentation(void); +void* CopyCFStringToUTF8(void); +void* GetHitPart(void); +void* GetScrollBarHitPart(void); +void* JRSAccessibilityUnregisterUniqueIdForUIElement(void); +void* JRSCopyCanonicalLanguageForPrimaryLanguage(void); +void* JRSCopyOSJavaSupportVersion(void); +void* JRSCopyOSName(void); +void* JRSCopyOSVersion(void); +void* JRSCopyPrimaryLanguage(void); +void* JRSFontAlignStyleForFractionalMeasurement(void); +void* JRSFontAlignStyleForIntegerMeasurement(void); +void* JRSFontCreateFallbackFontForCharacters(void); +void* JRSFontGetAdvancesForGlyphsAndStyle(void); +void* JRSFontGetBoundingBoxesForGlyphsAndStyle(void); +void* JRSFontGetRenderingStyleForContext(void); +void* JRSFontGetRenderingStyleForHints(void); +void* JRSFontSetRenderingStyleOnContext(void); +void* JRSFontStyleIsAntialiased(void); +void* JRSFontStyleUsesFractionalMetrics(void); +void* JRSSetDefaultLocalization(void); +void* JRSUIControlCreate(void); +void* JRSUIControlDraw(void); +void* JRSUIControlGetHitPart(void); +void* JRSUIControlGetScrollBarOffsetFor(void); +void* JRSUIControlGetScrollBarPartBounds(void); +void* JRSUIControlRelease(void); +void* JRSUIControlSetAlignmentHorizontal(void); +void* JRSUIControlSetAlignmentVertical(void); +void* JRSUIControlSetAnimating(void); +void* JRSUIControlSetDirection(void); +void* JRSUIControlSetOrientation(void); +void* JRSUIControlSetPresentationState(void); +void* JRSUIControlSetScrollBarPart(void); +void* JRSUIControlSetSegmentPosition(void); +void* JRSUIControlSetShowArrows(void); +void* JRSUIControlSetSize(void); +void* JRSUIControlSetState(void); +void* JRSUIControlSetUserInterfaceLayoutDirection(void); +void* JRSUIControlSetValueByKey(void); +void* JRSUIControlSetVariant(void); +void* JRSUIControlSetWidget(void); +void* JRSUIControlSetWindowType(void); +void* JRSUIControlShouldScrollToClick(void); +void* JRSUIGetKey(void); +void* JRSUIRendererCreate(void); +void* JRSUIRendererRelease(void); +void* do_transfer_port_send_right(void); +void* port_send_right_transfer_server(void); +void* port_send_right_transfer_server_routine(void); +void* transfer_port_send_right(void); + +#endif diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/MIGThread.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/MIGThread.h new file mode 100644 index 000000000..2f71a47e2 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/MIGThread.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface MIGThread : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/_JRSUIRenderer.h b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/_JRSUIRenderer.h new file mode 100644 index 000000000..8cf5da4d9 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/include/JavaRuntimeSupport/_JRSUIRenderer.h @@ -0,0 +1,24 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#include + +@interface _JRSUIRenderer : NSObject + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSAppKitAWT.m b/src/frameworks/JavaRuntimeSupport/src/JRSAppKitAWT.m new file mode 100644 index 000000000..bba1280be --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSAppKitAWT.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSAppKitAWT + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSDrag.m b/src/frameworks/JavaRuntimeSupport/src/JRSDrag.m new file mode 100644 index 000000000..bcc5eecc4 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSDrag.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSDrag + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSInputMethodController.m b/src/frameworks/JavaRuntimeSupport/src/JRSInputMethodController.m new file mode 100644 index 000000000..2bafac0e9 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSInputMethodController.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSInputMethodController + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSMenu.m b/src/frameworks/JavaRuntimeSupport/src/JRSMenu.m new file mode 100644 index 000000000..d0902e0e1 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSMenu.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSMenu + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSRenderServer.m b/src/frameworks/JavaRuntimeSupport/src/JRSRenderServer.m new file mode 100644 index 000000000..67752c5d8 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSRenderServer.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSRenderServer + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSSecurity.m b/src/frameworks/JavaRuntimeSupport/src/JRSSecurity.m new file mode 100644 index 000000000..deb160ff6 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSSecurity.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSSecurity + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicator.m b/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicator.m new file mode 100644 index 000000000..19e9a5ea6 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicator.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSSymbolicator + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicatorImpl.m b/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicatorImpl.m new file mode 100644 index 000000000..af3547d86 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JRSSymbolicatorImpl.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation JRSSymbolicatorImpl + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/JavaRuntimeSupport.m b/src/frameworks/JavaRuntimeSupport/src/JavaRuntimeSupport.m new file mode 100644 index 000000000..02a2ef2d0 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/JavaRuntimeSupport.m @@ -0,0 +1,336 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + + +#include +#include +#include + +static int verbose = 0; + +__attribute__((constructor)) +static void initme(void) { + verbose = getenv("STUB_VERBOSE") != NULL; +} + +void* CopyCFStringToFilesystemRepresentation(void) +{ + if (verbose) puts("STUB: CopyCFStringToFilesystemRepresentation called"); + return NULL; +} + +void* CopyCFStringToUTF8(void) +{ + if (verbose) puts("STUB: CopyCFStringToUTF8 called"); + return NULL; +} + +void* GetHitPart(void) +{ + if (verbose) puts("STUB: GetHitPart called"); + return NULL; +} + +void* GetScrollBarHitPart(void) +{ + if (verbose) puts("STUB: GetScrollBarHitPart called"); + return NULL; +} + +void* JRSAccessibilityUnregisterUniqueIdForUIElement(void) +{ + if (verbose) puts("STUB: JRSAccessibilityUnregisterUniqueIdForUIElement called"); + return NULL; +} + +void* JRSCopyCanonicalLanguageForPrimaryLanguage(void) +{ + if (verbose) puts("STUB: JRSCopyCanonicalLanguageForPrimaryLanguage called"); + return NULL; +} + +void* JRSCopyOSJavaSupportVersion(void) +{ + if (verbose) puts("STUB: JRSCopyOSJavaSupportVersion called"); + return NULL; +} + +void* JRSCopyOSName(void) +{ + if (verbose) puts("STUB: JRSCopyOSName called"); + return NULL; +} + +void* JRSCopyOSVersion(void) +{ + if (verbose) puts("STUB: JRSCopyOSVersion called"); + return NULL; +} + +void* JRSCopyPrimaryLanguage(void) +{ + if (verbose) puts("STUB: JRSCopyPrimaryLanguage called"); + return NULL; +} + +void* JRSFontAlignStyleForFractionalMeasurement(void) +{ + if (verbose) puts("STUB: JRSFontAlignStyleForFractionalMeasurement called"); + return NULL; +} + +void* JRSFontAlignStyleForIntegerMeasurement(void) +{ + if (verbose) puts("STUB: JRSFontAlignStyleForIntegerMeasurement called"); + return NULL; +} + +void* JRSFontCreateFallbackFontForCharacters(void) +{ + if (verbose) puts("STUB: JRSFontCreateFallbackFontForCharacters called"); + return NULL; +} + +void* JRSFontGetAdvancesForGlyphsAndStyle(void) +{ + if (verbose) puts("STUB: JRSFontGetAdvancesForGlyphsAndStyle called"); + return NULL; +} + +void* JRSFontGetBoundingBoxesForGlyphsAndStyle(void) +{ + if (verbose) puts("STUB: JRSFontGetBoundingBoxesForGlyphsAndStyle called"); + return NULL; +} + +void* JRSFontGetRenderingStyleForContext(void) +{ + if (verbose) puts("STUB: JRSFontGetRenderingStyleForContext called"); + return NULL; +} + +void* JRSFontGetRenderingStyleForHints(void) +{ + if (verbose) puts("STUB: JRSFontGetRenderingStyleForHints called"); + return NULL; +} + +void* JRSFontSetRenderingStyleOnContext(void) +{ + if (verbose) puts("STUB: JRSFontSetRenderingStyleOnContext called"); + return NULL; +} + +void* JRSFontStyleIsAntialiased(void) +{ + if (verbose) puts("STUB: JRSFontStyleIsAntialiased called"); + return NULL; +} + +void* JRSFontStyleUsesFractionalMetrics(void) +{ + if (verbose) puts("STUB: JRSFontStyleUsesFractionalMetrics called"); + return NULL; +} + +void* JRSSetDefaultLocalization(void) +{ + if (verbose) puts("STUB: JRSSetDefaultLocalization called"); + return NULL; +} + +void* JRSUIControlCreate(void) +{ + if (verbose) puts("STUB: JRSUIControlCreate called"); + return NULL; +} + +void* JRSUIControlDraw(void) +{ + if (verbose) puts("STUB: JRSUIControlDraw called"); + return NULL; +} + +void* JRSUIControlGetHitPart(void) +{ + if (verbose) puts("STUB: JRSUIControlGetHitPart called"); + return NULL; +} + +void* JRSUIControlGetScrollBarOffsetFor(void) +{ + if (verbose) puts("STUB: JRSUIControlGetScrollBarOffsetFor called"); + return NULL; +} + +void* JRSUIControlGetScrollBarPartBounds(void) +{ + if (verbose) puts("STUB: JRSUIControlGetScrollBarPartBounds called"); + return NULL; +} + +void* JRSUIControlRelease(void) +{ + if (verbose) puts("STUB: JRSUIControlRelease called"); + return NULL; +} + +void* JRSUIControlSetAlignmentHorizontal(void) +{ + if (verbose) puts("STUB: JRSUIControlSetAlignmentHorizontal called"); + return NULL; +} + +void* JRSUIControlSetAlignmentVertical(void) +{ + if (verbose) puts("STUB: JRSUIControlSetAlignmentVertical called"); + return NULL; +} + +void* JRSUIControlSetAnimating(void) +{ + if (verbose) puts("STUB: JRSUIControlSetAnimating called"); + return NULL; +} + +void* JRSUIControlSetDirection(void) +{ + if (verbose) puts("STUB: JRSUIControlSetDirection called"); + return NULL; +} + +void* JRSUIControlSetOrientation(void) +{ + if (verbose) puts("STUB: JRSUIControlSetOrientation called"); + return NULL; +} + +void* JRSUIControlSetPresentationState(void) +{ + if (verbose) puts("STUB: JRSUIControlSetPresentationState called"); + return NULL; +} + +void* JRSUIControlSetScrollBarPart(void) +{ + if (verbose) puts("STUB: JRSUIControlSetScrollBarPart called"); + return NULL; +} + +void* JRSUIControlSetSegmentPosition(void) +{ + if (verbose) puts("STUB: JRSUIControlSetSegmentPosition called"); + return NULL; +} + +void* JRSUIControlSetShowArrows(void) +{ + if (verbose) puts("STUB: JRSUIControlSetShowArrows called"); + return NULL; +} + +void* JRSUIControlSetSize(void) +{ + if (verbose) puts("STUB: JRSUIControlSetSize called"); + return NULL; +} + +void* JRSUIControlSetState(void) +{ + if (verbose) puts("STUB: JRSUIControlSetState called"); + return NULL; +} + +void* JRSUIControlSetUserInterfaceLayoutDirection(void) +{ + if (verbose) puts("STUB: JRSUIControlSetUserInterfaceLayoutDirection called"); + return NULL; +} + +void* JRSUIControlSetValueByKey(void) +{ + if (verbose) puts("STUB: JRSUIControlSetValueByKey called"); + return NULL; +} + +void* JRSUIControlSetVariant(void) +{ + if (verbose) puts("STUB: JRSUIControlSetVariant called"); + return NULL; +} + +void* JRSUIControlSetWidget(void) +{ + if (verbose) puts("STUB: JRSUIControlSetWidget called"); + return NULL; +} + +void* JRSUIControlSetWindowType(void) +{ + if (verbose) puts("STUB: JRSUIControlSetWindowType called"); + return NULL; +} + +void* JRSUIControlShouldScrollToClick(void) +{ + if (verbose) puts("STUB: JRSUIControlShouldScrollToClick called"); + return NULL; +} + +void* JRSUIGetKey(void) +{ + if (verbose) puts("STUB: JRSUIGetKey called"); + return NULL; +} + +void* JRSUIRendererCreate(void) +{ + if (verbose) puts("STUB: JRSUIRendererCreate called"); + return NULL; +} + +void* JRSUIRendererRelease(void) +{ + if (verbose) puts("STUB: JRSUIRendererRelease called"); + return NULL; +} + +void* do_transfer_port_send_right(void) +{ + if (verbose) puts("STUB: do_transfer_port_send_right called"); + return NULL; +} + +void* port_send_right_transfer_server(void) +{ + if (verbose) puts("STUB: port_send_right_transfer_server called"); + return NULL; +} + +void* port_send_right_transfer_server_routine(void) +{ + if (verbose) puts("STUB: port_send_right_transfer_server_routine called"); + return NULL; +} + +void* transfer_port_send_right(void) +{ + if (verbose) puts("STUB: transfer_port_send_right called"); + return NULL; +} diff --git a/src/frameworks/JavaRuntimeSupport/src/MIGThread.m b/src/frameworks/JavaRuntimeSupport/src/MIGThread.m new file mode 100644 index 000000000..b4cd48903 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/MIGThread.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation MIGThread + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end diff --git a/src/frameworks/JavaRuntimeSupport/src/_JRSUIRenderer.m b/src/frameworks/JavaRuntimeSupport/src/_JRSUIRenderer.m new file mode 100644 index 000000000..5f482c979 --- /dev/null +++ b/src/frameworks/JavaRuntimeSupport/src/_JRSUIRenderer.m @@ -0,0 +1,34 @@ +/* + This file is part of Darling. + + Copyright (C) 2021 Lubos Dolezel + + Darling is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Darling is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Darling. If not, see . +*/ + +#import + +@implementation _JRSUIRenderer + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [NSMethodSignature signatureWithObjCTypes: "v@:"]; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]); +} + +@end