[K/N][KT-39120] Build platform libraries with -fmodules

Merge-request: KT-MR-8175
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
Vladimir Sukharev
2023-01-13 07:33:42 +00:00
committed by Space Team
parent d85b23ebb9
commit 45de88abae
35 changed files with 302 additions and 58 deletions
@@ -0,0 +1,15 @@
#ifndef _IOKIT_IOHIDLIB_H
#define _IOKIT_IOHIDLIB_H
typedef struct IOGPoint {
int x;
} IOGPoint;
typedef enum {
NX_OneButton,
} NXMouseButton;
extern int IOHIDPostEvent( IOGPoint location );
extern int IOHIDGetButtonEventNum( NXMouseButton button );
#endif /* ! _IOKIT_IOHIDLIB_H */
@@ -0,0 +1,8 @@
framework module explicitpod1 {
export *
explicit module explicitSubmodule {
header "explicitSubmodule.h"
export *
}
}
@@ -0,0 +1,8 @@
#import <forwardEnum/forwardEnum.h>
typedef NS_ENUM (long long, ForwardEnum) {
A,
B
};
ForwardEnum forwardEnumVar;
@@ -0,0 +1,5 @@
#include <Foundation/NSObjCRuntime.h>
typedef NS_ENUM (long long, ForwardEnum);
typedef NS_ENUM (long long, EnumWithoutConstant);
EnumWithoutConstant enumWithoutConstantVar;
@@ -0,0 +1,6 @@
framework module forwardEnum {
umbrella header "forwardEnum-umbrella.h"
export *
module * { export * }
}
@@ -0,0 +1,32 @@
package pod1 {
@CStruct(spelling = "struct { int x; }") class IOGPoint constructor(rawPtr: NativePtr /* = NativePtr */) : CStructVar {
var x: Int
@CStruct.MemberAt(offset = 0.toLong()) get
@CStruct.MemberAt(offset = 0.toLong()) set
@CStruct.VarType(align = 4, size = 4.toLong()) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(imports = {})) companion object : CStructVar.Type
}
enum class NXMouseButton private constructor(value: UInt) : Enum<NXMouseButton>, CEnum {
@ConstantValue.UInt(value = 0.toUInt()) enum entry NX_OneButton
override val value: UInt
class Var constructor(rawPtr: NativePtr /* = NativePtr */) : CEnumVar {
var value: NXMouseButton
@CEnumVarTypeSize(size = 4) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(imports = {})) companion object : CPrimitiveVar.Type
}
companion object {
@Deprecated(level = DeprecationLevel.WARNING, message = "Will be removed.", replaceWith = ReplaceWith(imports = {})) fun byValue(value: UInt): NXMouseButton
}
}
}
package pod1 {
@CCall(id = "knifunptr_pod11_IOHIDGetButtonEventNum") external fun IOHIDGetButtonEventNum(button: NXMouseButton): Int
@CCall(id = "knifunptr_pod10_IOHIDPostEvent") external fun IOHIDPostEvent(location: CValue<IOGPoint>): Int
}
@@ -0,0 +1,2 @@
language = Objective-C
modules = explicitpod1
@@ -0,0 +1,44 @@
package pod1 {
enum class EnumWithoutConstant private constructor(value: Long) : Enum<EnumWithoutConstant>, CEnum {
override val value: Long
class Var constructor(rawPtr: NativePtr /* = NativePtr */) : CEnumVar {
var value: EnumWithoutConstant
@CEnumVarTypeSize(size = 8) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(imports = {})) companion object : CPrimitiveVar.Type
}
companion object {
@Deprecated(level = DeprecationLevel.WARNING, message = "Will be removed.", replaceWith = ReplaceWith(imports = {})) fun byValue(value: Long): EnumWithoutConstant
}
}
enum class ForwardEnum private constructor(value: Long) : Enum<ForwardEnum>, CEnum {
@ConstantValue.Long(value = 0.toLong()) enum entry A
@ConstantValue.Long(value = 1.toLong()) enum entry B
override val value: Long
class Var constructor(rawPtr: NativePtr /* = NativePtr */) : CEnumVar {
var value: ForwardEnum
@CEnumVarTypeSize(size = 8) @Deprecated(level = DeprecationLevel.WARNING, message = "Use sizeOf<T>() or alignOf<T>() instead.", replaceWith = ReplaceWith(imports = {})) companion object : CPrimitiveVar.Type
}
companion object {
@Deprecated(level = DeprecationLevel.WARNING, message = "Will be removed.", replaceWith = ReplaceWith(imports = {})) fun byValue(value: Long): ForwardEnum
}
}
}
package pod1 {
var enumWithoutConstantVar: EnumWithoutConstant
@CCall(id = "knifunptr_pod10_enumWithoutConstantVar_getter") get
@CCall(id = "knifunptr_pod11_enumWithoutConstantVar_setter") set
var forwardEnumVar: ForwardEnum
@CCall(id = "knifunptr_pod12_forwardEnumVar_getter") get
@CCall(id = "knifunptr_pod13_forwardEnumVar_setter") set
}
@@ -0,0 +1,2 @@
language = Objective-C
modules = forwardEnum