From f305ca82e894d93aafba1f42316a913a6adcd028 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Wed, 11 Sep 2019 13:50:22 +0700 Subject: [PATCH] [watchOS] Add platform libraries for watchOS --- .../src/platform/watchos/AVFoundation.def | 7 ++ .../src/platform/watchos/Accelerate.def | 7 ++ .../src/platform/watchos/ClockKit.def | 9 ++ .../src/platform/watchos/CloudKit.def | 7 ++ .../src/platform/watchos/Contacts.def | 7 ++ .../src/platform/watchos/CoreAudio.def | 7 ++ .../src/platform/watchos/CoreBluetooth.def | 7 ++ .../src/platform/watchos/CoreData.def | 7 ++ .../src/platform/watchos/CoreFoundation.def | 7 ++ .../src/platform/watchos/CoreGraphics.def | 7 ++ .../src/platform/watchos/CoreLocation.def | 7 ++ platformLibs/src/platform/watchos/CoreML.def | 7 ++ .../src/platform/watchos/CoreMotion.def | 7 ++ .../src/platform/watchos/CoreServices.def | 7 ++ .../src/platform/watchos/CoreText.def | 7 ++ .../src/platform/watchos/CoreVideo.def | 7 ++ .../src/platform/watchos/EventKit.def | 7 ++ .../src/platform/watchos/Foundation.def | 7 ++ platformLibs/src/platform/watchos/GameKit.def | 7 ++ .../src/platform/watchos/HealthKit.def | 7 ++ platformLibs/src/platform/watchos/HomeKit.def | 7 ++ platformLibs/src/platform/watchos/ImageIO.def | 7 ++ platformLibs/src/platform/watchos/MapKit.def | 7 ++ .../src/platform/watchos/MediaPlayer.def | 7 ++ .../platform/watchos/MobileCoreServices.def | 7 ++ .../src/platform/watchos/NaturalLanguage.def | 7 ++ platformLibs/src/platform/watchos/PassKit.def | 7 ++ .../src/platform/watchos/SceneKit.def | 7 ++ .../src/platform/watchos/Security.def | 7 ++ .../src/platform/watchos/SpriteKit.def | 7 ++ platformLibs/src/platform/watchos/UIKit.def | 7 ++ .../platform/watchos/UserNotifications.def | 9 ++ .../platform/watchos/WatchConnectivity.def | 7 ++ .../src/platform/watchos/WatchKit.def | 7 ++ platformLibs/src/platform/watchos/builtin.def | 98 +++++++++++++++++++ platformLibs/src/platform/watchos/darwin.def | 39 ++++++++ platformLibs/src/platform/watchos/iconv.def | 5 + platformLibs/src/platform/watchos/objc.def | 13 +++ platformLibs/src/platform/watchos/posix.def | 43 ++++++++ .../src/platform/watchos/set_depends.sh | 9 ++ platformLibs/src/platform/watchos/zlib.def | 34 +++++++ 41 files changed, 483 insertions(+) create mode 100644 platformLibs/src/platform/watchos/AVFoundation.def create mode 100644 platformLibs/src/platform/watchos/Accelerate.def create mode 100644 platformLibs/src/platform/watchos/ClockKit.def create mode 100644 platformLibs/src/platform/watchos/CloudKit.def create mode 100644 platformLibs/src/platform/watchos/Contacts.def create mode 100644 platformLibs/src/platform/watchos/CoreAudio.def create mode 100644 platformLibs/src/platform/watchos/CoreBluetooth.def create mode 100644 platformLibs/src/platform/watchos/CoreData.def create mode 100644 platformLibs/src/platform/watchos/CoreFoundation.def create mode 100644 platformLibs/src/platform/watchos/CoreGraphics.def create mode 100644 platformLibs/src/platform/watchos/CoreLocation.def create mode 100644 platformLibs/src/platform/watchos/CoreML.def create mode 100644 platformLibs/src/platform/watchos/CoreMotion.def create mode 100644 platformLibs/src/platform/watchos/CoreServices.def create mode 100644 platformLibs/src/platform/watchos/CoreText.def create mode 100644 platformLibs/src/platform/watchos/CoreVideo.def create mode 100644 platformLibs/src/platform/watchos/EventKit.def create mode 100644 platformLibs/src/platform/watchos/Foundation.def create mode 100644 platformLibs/src/platform/watchos/GameKit.def create mode 100644 platformLibs/src/platform/watchos/HealthKit.def create mode 100644 platformLibs/src/platform/watchos/HomeKit.def create mode 100644 platformLibs/src/platform/watchos/ImageIO.def create mode 100644 platformLibs/src/platform/watchos/MapKit.def create mode 100644 platformLibs/src/platform/watchos/MediaPlayer.def create mode 100644 platformLibs/src/platform/watchos/MobileCoreServices.def create mode 100644 platformLibs/src/platform/watchos/NaturalLanguage.def create mode 100644 platformLibs/src/platform/watchos/PassKit.def create mode 100644 platformLibs/src/platform/watchos/SceneKit.def create mode 100644 platformLibs/src/platform/watchos/Security.def create mode 100644 platformLibs/src/platform/watchos/SpriteKit.def create mode 100644 platformLibs/src/platform/watchos/UIKit.def create mode 100644 platformLibs/src/platform/watchos/UserNotifications.def create mode 100644 platformLibs/src/platform/watchos/WatchConnectivity.def create mode 100644 platformLibs/src/platform/watchos/WatchKit.def create mode 100644 platformLibs/src/platform/watchos/builtin.def create mode 100644 platformLibs/src/platform/watchos/darwin.def create mode 100644 platformLibs/src/platform/watchos/iconv.def create mode 100644 platformLibs/src/platform/watchos/objc.def create mode 100644 platformLibs/src/platform/watchos/posix.def create mode 100755 platformLibs/src/platform/watchos/set_depends.sh create mode 100644 platformLibs/src/platform/watchos/zlib.def diff --git a/platformLibs/src/platform/watchos/AVFoundation.def b/platformLibs/src/platform/watchos/AVFoundation.def new file mode 100644 index 00000000000..5e85074b5f9 --- /dev/null +++ b/platformLibs/src/platform/watchos/AVFoundation.def @@ -0,0 +1,7 @@ +depends = CoreAudio CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.AVFoundation +modules = AVFoundation + +compilerOpts = -framework AVFoundation +linkerOpts = -framework AVFoundation diff --git a/platformLibs/src/platform/watchos/Accelerate.def b/platformLibs/src/platform/watchos/Accelerate.def new file mode 100644 index 00000000000..7a03bd31d63 --- /dev/null +++ b/platformLibs/src/platform/watchos/Accelerate.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreVideo darwin posix +language = Objective-C +package = platform.Accelerate +modules = Accelerate + +compilerOpts = -framework Accelerate +linkerOpts = -framework Accelerate diff --git a/platformLibs/src/platform/watchos/ClockKit.def b/platformLibs/src/platform/watchos/ClockKit.def new file mode 100644 index 00000000000..7a28d1d92c9 --- /dev/null +++ b/platformLibs/src/platform/watchos/ClockKit.def @@ -0,0 +1,9 @@ +depends = CoreFoundation CoreGraphics CoreText Foundation Security UIKit darwin posix +language = Objective-C +package = platform.ClockKit +headers = ClockKit/ClockKit.h + +headerFilter = ClockKit/** + +compilerOpts = -framework ClockKit +linkerOpts = -framework ClockKit diff --git a/platformLibs/src/platform/watchos/CloudKit.def b/platformLibs/src/platform/watchos/CloudKit.def new file mode 100644 index 00000000000..05638e6cc1c --- /dev/null +++ b/platformLibs/src/platform/watchos/CloudKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreLocation Foundation Security darwin posix +language = Objective-C +package = platform.CloudKit +modules = CloudKit + +compilerOpts = -framework CloudKit +linkerOpts = -framework CloudKit diff --git a/platformLibs/src/platform/watchos/Contacts.def b/platformLibs/src/platform/watchos/Contacts.def new file mode 100644 index 00000000000..647b379280f --- /dev/null +++ b/platformLibs/src/platform/watchos/Contacts.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.Contacts +modules = Contacts + +compilerOpts = -framework Contacts +linkerOpts = -framework Contacts diff --git a/platformLibs/src/platform/watchos/CoreAudio.def b/platformLibs/src/platform/watchos/CoreAudio.def new file mode 100644 index 00000000000..809dcee939f --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreAudio.def @@ -0,0 +1,7 @@ +depends = CoreFoundation darwin posix +language = Objective-C +package = platform.CoreAudio +modules = CoreAudio + +compilerOpts = -framework CoreAudio +linkerOpts = -framework CoreAudio diff --git a/platformLibs/src/platform/watchos/CoreBluetooth.def b/platformLibs/src/platform/watchos/CoreBluetooth.def new file mode 100644 index 00000000000..7be0b09dd12 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreBluetooth.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.CoreBluetooth +modules = CoreBluetooth + +compilerOpts = -framework CoreBluetooth +linkerOpts = -framework CoreBluetooth diff --git a/platformLibs/src/platform/watchos/CoreData.def b/platformLibs/src/platform/watchos/CoreData.def new file mode 100644 index 00000000000..9d33190e762 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreData.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.CoreData +modules = CoreData + +compilerOpts = -framework CoreData +linkerOpts = -framework CoreData diff --git a/platformLibs/src/platform/watchos/CoreFoundation.def b/platformLibs/src/platform/watchos/CoreFoundation.def new file mode 100644 index 00000000000..17c65eafa38 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreFoundation.def @@ -0,0 +1,7 @@ +depends = darwin posix +language = Objective-C +package = platform.CoreFoundation +modules = CoreFoundation + +compilerOpts = -framework CoreFoundation +linkerOpts = -framework CoreFoundation diff --git a/platformLibs/src/platform/watchos/CoreGraphics.def b/platformLibs/src/platform/watchos/CoreGraphics.def new file mode 100644 index 00000000000..3951d09f2bd --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreGraphics.def @@ -0,0 +1,7 @@ +depends = CoreFoundation darwin posix +language = Objective-C +package = platform.CoreGraphics +modules = CoreGraphics + +compilerOpts = -framework CoreGraphics +linkerOpts = -framework CoreGraphics diff --git a/platformLibs/src/platform/watchos/CoreLocation.def b/platformLibs/src/platform/watchos/CoreLocation.def new file mode 100644 index 00000000000..341957d1e0c --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreLocation.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.CoreLocation +modules = CoreLocation + +compilerOpts = -framework CoreLocation +linkerOpts = -framework CoreLocation diff --git a/platformLibs/src/platform/watchos/CoreML.def b/platformLibs/src/platform/watchos/CoreML.def new file mode 100644 index 00000000000..dd35e9ac12c --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreML.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreVideo Foundation Security darwin posix +language = Objective-C +package = platform.CoreML +modules = CoreML + +compilerOpts = -framework CoreML +linkerOpts = -framework CoreML diff --git a/platformLibs/src/platform/watchos/CoreMotion.def b/platformLibs/src/platform/watchos/CoreMotion.def new file mode 100644 index 00000000000..ed274b417ff --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreMotion.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.CoreMotion +modules = CoreMotion + +compilerOpts = -framework CoreMotion +linkerOpts = -framework CoreMotion diff --git a/platformLibs/src/platform/watchos/CoreServices.def b/platformLibs/src/platform/watchos/CoreServices.def new file mode 100644 index 00000000000..ffd15288ee0 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreServices.def @@ -0,0 +1,7 @@ +depends = CoreFoundation darwin posix +language = Objective-C +package = platform.CoreServices +modules = CoreServices + +compilerOpts = -framework CoreServices +linkerOpts = -framework CoreServices diff --git a/platformLibs/src/platform/watchos/CoreText.def b/platformLibs/src/platform/watchos/CoreText.def new file mode 100644 index 00000000000..3cdfe6f0a47 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreText.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics darwin posix +language = Objective-C +package = platform.CoreText +modules = CoreText + +compilerOpts = -framework CoreText +linkerOpts = -framework CoreText diff --git a/platformLibs/src/platform/watchos/CoreVideo.def b/platformLibs/src/platform/watchos/CoreVideo.def new file mode 100644 index 00000000000..37362b42c94 --- /dev/null +++ b/platformLibs/src/platform/watchos/CoreVideo.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics darwin posix +language = Objective-C +package = platform.CoreVideo +modules = CoreVideo + +compilerOpts = -framework CoreVideo +linkerOpts = -framework CoreVideo diff --git a/platformLibs/src/platform/watchos/EventKit.def b/platformLibs/src/platform/watchos/EventKit.def new file mode 100644 index 00000000000..68f02b0a2af --- /dev/null +++ b/platformLibs/src/platform/watchos/EventKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreLocation Foundation Security darwin posix +language = Objective-C +package = platform.EventKit +modules = EventKit + +compilerOpts = -framework EventKit +linkerOpts = -framework EventKit diff --git a/platformLibs/src/platform/watchos/Foundation.def b/platformLibs/src/platform/watchos/Foundation.def new file mode 100644 index 00000000000..c6c47e5e642 --- /dev/null +++ b/platformLibs/src/platform/watchos/Foundation.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Security darwin posix +language = Objective-C +package = platform.Foundation +modules = Foundation + +compilerOpts = -framework Foundation +linkerOpts = -framework Foundation diff --git a/platformLibs/src/platform/watchos/GameKit.def b/platformLibs/src/platform/watchos/GameKit.def new file mode 100644 index 00000000000..b597e9a245e --- /dev/null +++ b/platformLibs/src/platform/watchos/GameKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreText Foundation SceneKit Security SpriteKit UIKit darwin posix +language = Objective-C +package = platform.GameKit +modules = GameKit + +compilerOpts = -framework GameKit +linkerOpts = -framework GameKit diff --git a/platformLibs/src/platform/watchos/HealthKit.def b/platformLibs/src/platform/watchos/HealthKit.def new file mode 100644 index 00000000000..f45c382b535 --- /dev/null +++ b/platformLibs/src/platform/watchos/HealthKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.HealthKit +modules = HealthKit + +compilerOpts = -framework HealthKit +linkerOpts = -framework HealthKit diff --git a/platformLibs/src/platform/watchos/HomeKit.def b/platformLibs/src/platform/watchos/HomeKit.def new file mode 100644 index 00000000000..c9fee4c399d --- /dev/null +++ b/platformLibs/src/platform/watchos/HomeKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics Foundation Security darwin posix +language = Objective-C +package = platform.HomeKit +modules = HomeKit + +compilerOpts = -framework HomeKit +linkerOpts = -framework HomeKit diff --git a/platformLibs/src/platform/watchos/ImageIO.def b/platformLibs/src/platform/watchos/ImageIO.def new file mode 100644 index 00000000000..635137a80c9 --- /dev/null +++ b/platformLibs/src/platform/watchos/ImageIO.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics darwin posix +language = Objective-C +package = platform.ImageIO +modules = ImageIO + +compilerOpts = -framework ImageIO +linkerOpts = -framework ImageIO diff --git a/platformLibs/src/platform/watchos/MapKit.def b/platformLibs/src/platform/watchos/MapKit.def new file mode 100644 index 00000000000..f299fc52be6 --- /dev/null +++ b/platformLibs/src/platform/watchos/MapKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreLocation CoreText Foundation Security UIKit darwin posix +language = Objective-C +package = platform.MapKit +modules = MapKit + +compilerOpts = -framework MapKit +linkerOpts = -framework MapKit diff --git a/platformLibs/src/platform/watchos/MediaPlayer.def b/platformLibs/src/platform/watchos/MediaPlayer.def new file mode 100644 index 00000000000..5407f12c978 --- /dev/null +++ b/platformLibs/src/platform/watchos/MediaPlayer.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreText Foundation Security UIKit darwin posix +language = Objective-C +package = platform.MediaPlayer +modules = MediaPlayer + +compilerOpts = -framework MediaPlayer +linkerOpts = -framework MediaPlayer diff --git a/platformLibs/src/platform/watchos/MobileCoreServices.def b/platformLibs/src/platform/watchos/MobileCoreServices.def new file mode 100644 index 00000000000..bdd5356cc09 --- /dev/null +++ b/platformLibs/src/platform/watchos/MobileCoreServices.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreServices darwin posix +language = Objective-C +package = platform.MobileCoreServices +modules = MobileCoreServices + +compilerOpts = -framework MobileCoreServices +linkerOpts = -framework MobileCoreServices diff --git a/platformLibs/src/platform/watchos/NaturalLanguage.def b/platformLibs/src/platform/watchos/NaturalLanguage.def new file mode 100644 index 00000000000..0e9d05d389f --- /dev/null +++ b/platformLibs/src/platform/watchos/NaturalLanguage.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreML CoreVideo Foundation Security darwin posix +language = Objective-C +package = platform.NaturalLanguage +modules = NaturalLanguage + +compilerOpts = -framework NaturalLanguage +linkerOpts = -framework NaturalLanguage diff --git a/platformLibs/src/platform/watchos/PassKit.def b/platformLibs/src/platform/watchos/PassKit.def new file mode 100644 index 00000000000..178ca781630 --- /dev/null +++ b/platformLibs/src/platform/watchos/PassKit.def @@ -0,0 +1,7 @@ +depends = Contacts CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.PassKit +modules = PassKit + +compilerOpts = -framework PassKit +linkerOpts = -framework PassKit diff --git a/platformLibs/src/platform/watchos/SceneKit.def b/platformLibs/src/platform/watchos/SceneKit.def new file mode 100644 index 00000000000..8d578fa9b7a --- /dev/null +++ b/platformLibs/src/platform/watchos/SceneKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics Foundation Security darwin posix +language = Objective-C +package = platform.SceneKit +modules = SceneKit + +compilerOpts = -framework SceneKit +linkerOpts = -framework SceneKit diff --git a/platformLibs/src/platform/watchos/Security.def b/platformLibs/src/platform/watchos/Security.def new file mode 100644 index 00000000000..de56b282a23 --- /dev/null +++ b/platformLibs/src/platform/watchos/Security.def @@ -0,0 +1,7 @@ +depends = CoreFoundation darwin posix +language = Objective-C +package = platform.Security +modules = Security + +compilerOpts = -framework Security +linkerOpts = -framework Security diff --git a/platformLibs/src/platform/watchos/SpriteKit.def b/platformLibs/src/platform/watchos/SpriteKit.def new file mode 100644 index 00000000000..766d9c57f5e --- /dev/null +++ b/platformLibs/src/platform/watchos/SpriteKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreText Foundation Security UIKit darwin posix +language = Objective-C +package = platform.SpriteKit +modules = SpriteKit + +compilerOpts = -framework SpriteKit +linkerOpts = -framework SpriteKit diff --git a/platformLibs/src/platform/watchos/UIKit.def b/platformLibs/src/platform/watchos/UIKit.def new file mode 100644 index 00000000000..4a9ff724ddc --- /dev/null +++ b/platformLibs/src/platform/watchos/UIKit.def @@ -0,0 +1,7 @@ +depends = CoreFoundation CoreGraphics CoreText Foundation Security darwin posix +language = Objective-C +package = platform.UIKit +modules = UIKit + +compilerOpts = -framework UIKit +linkerOpts = -framework UIKit diff --git a/platformLibs/src/platform/watchos/UserNotifications.def b/platformLibs/src/platform/watchos/UserNotifications.def new file mode 100644 index 00000000000..6ee347f5edb --- /dev/null +++ b/platformLibs/src/platform/watchos/UserNotifications.def @@ -0,0 +1,9 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.UserNotifications +headers = UserNotifications/UserNotifications.h + +headerFilter = UserNotifications/** + +compilerOpts = -framework UserNotifications +linkerOpts = -framework UserNotifications diff --git a/platformLibs/src/platform/watchos/WatchConnectivity.def b/platformLibs/src/platform/watchos/WatchConnectivity.def new file mode 100644 index 00000000000..70e512b2e42 --- /dev/null +++ b/platformLibs/src/platform/watchos/WatchConnectivity.def @@ -0,0 +1,7 @@ +depends = CoreFoundation Foundation Security darwin posix +language = Objective-C +package = platform.WatchConnectivity +modules = WatchConnectivity + +compilerOpts = -framework WatchConnectivity +linkerOpts = -framework WatchConnectivity diff --git a/platformLibs/src/platform/watchos/WatchKit.def b/platformLibs/src/platform/watchos/WatchKit.def new file mode 100644 index 00000000000..600c73a1503 --- /dev/null +++ b/platformLibs/src/platform/watchos/WatchKit.def @@ -0,0 +1,7 @@ +depends = ClockKit CoreFoundation CoreGraphics CoreLocation CoreText Foundation HomeKit MapKit SceneKit Security UIKit darwin posix +language = Objective-C +package = platform.WatchKit +modules = WatchKit + +compilerOpts = -framework WatchKit +linkerOpts = -framework WatchKit diff --git a/platformLibs/src/platform/watchos/builtin.def b/platformLibs/src/platform/watchos/builtin.def new file mode 100644 index 00000000000..8f0c34815d7 --- /dev/null +++ b/platformLibs/src/platform/watchos/builtin.def @@ -0,0 +1,98 @@ +depends = posix +package = platform.builtin +headerFilter = ** +language = C +--- +// See https://github.com/llvm-mirror/clang/blob/master/include/clang/Basic/Builtins.def +// TODO: autogenerate from machine format. + +// Returns x with the order of the bytes reversed; for example, 0xaabb becomes 0xbbaa. Byte here always means exactly 8 bits. +static inline short builtin_bswap16(short x) { + return __builtin_bswap16(x); +} + +static inline int builtin_bswap32(int x) { + return __builtin_bswap32(x); +} + +static inline long long builtin_bswap64(long long x) { + return __builtin_bswap64(x); +} + +// Returns the number of leading 0-bits in x, starting at the most significant bit position. If x is 0, the result is undefined. +static inline int builtin_clzs(unsigned short x) { + return __builtin_clzs(x); +} + +static inline int builtin_clz(unsigned int x) { + return __builtin_clz(x); +} + +static inline int builtin_clzl(unsigned long x) { + return __builtin_clzl(x); +} + +static inline int builtin_clzll(unsigned long long x) { + return __builtin_clzll(x); +} + +// Returns the number of trailing 0-bits in x, starting at the least significant bit position. If x is 0, the result is undefined. +static inline int builtin_ctzs(unsigned short x) { + return __builtin_ctzs(x); +} + +static inline int builtin_ctz(unsigned int x) { + return __builtin_ctz(x); +} + +static inline int builtin_ctzl(unsigned long x) { + return __builtin_ctzl(x); +} + +static inline int builtin_ctzll(unsigned long long x) { + return __builtin_ctzll(x); +} + +// Returns one plus the index of the least significant 1-bit of x, or if x is zero, returns zero. +static inline int builtin_ffs(int x) { + return __builtin_ffs(x); +} + +static inline int builtin_ffsl(long x) { + return __builtin_ffsl(x); +} + +static inline int builtin_ffsll(long long x) { + return __builtin_ffsll(x); +} + +// Returns the parity of x, i.e. the number of 1-bits in x modulo 2. +static inline int builtin_parity(int x) { + return __builtin_parity(x); +} + +static inline int builtin_parityl(unsigned long x) { + return __builtin_parityl(x); +} + +static inline int builtin_parityll(unsigned long long x) { + return __builtin_parityll(x); +} + +// Returns the number of 1-bits in x. +static inline int builtin_popcount(int x) { + return __builtin_popcount(x); +} + +static inline int builtin_popcountl(long x) { + return __builtin_popcountl(x); +} + +static inline int builtin_popcountll(long long x) { + return __builtin_popcountll(x); +} + +// This function is used to flush the processor's instruction cache for the region of memory between begin inclusive and end exclusive. +static inline void builtin_clear_cache(void* begin, void* end) { + __builtin___clear_cache(begin, end); +} diff --git a/platformLibs/src/platform/watchos/darwin.def b/platformLibs/src/platform/watchos/darwin.def new file mode 100644 index 00000000000..7822de9ad14 --- /dev/null +++ b/platformLibs/src/platform/watchos/darwin.def @@ -0,0 +1,39 @@ +depends = posix +language = Objective-C +package = platform.darwin +headers = AssertMacros.h Availability.h AvailabilityInternal.h \ + AvailabilityMacros.h Block.h ConditionalMacros.h MacTypes.h \ + TargetConditionals.h __cxxabi_config.h _locale.h _types.h _wctype.h \ + aio.h asl.h bitstring.h bzlib.h \ + cache.h cache_callbacks.h checkint.h compression.h copyfile.h \ + cpio.h ctype.h cxxabi.h db.h \ + dns.h dns_sd.h dns_util.h execinfo.h \ + fmtmsg.h fstab.h \ + gethostuuid.h glob.h ifaddrs.h inttypes.h iso646.h \ + langinfo.h \ + libgen.h libunwind.h \ + membership.h monetary.h mpool.h \ + nameser.h ndbm.h nl_types.h \ + notify.h notify_keys.h ntsid.h \ + printf.h \ + readpassphrase.h removefile.h \ + runetype.h sandbox.h standards.h \ + stringlist.h sysdir.h sysexits.h tar.h \ + ttyent.h \ + unwind.h util.h utmpx.h vis.h wordexp.h xattr_flags.h \ + bank/bank_types.h \ + bsm/audit.h \ + os/activity.h os/availability.h os/base.h os/lock.h \ + os/log.h os/object.h os/overflow.h os/trace.h \ + simd/simd.h sys/sysctl.h + +headerFilter = ** + +excludedFunctions = __tg_promote + +compilerOpts = -D_XOPEN_SOURCE -DSYSCTL_DEF_ENABLED +linkerOpts = -ldl -lz + +--- +// AppleTextureEncoder.h is not available for WatchOS simulator +// menu.h is excluded so far due to interop issues. diff --git a/platformLibs/src/platform/watchos/iconv.def b/platformLibs/src/platform/watchos/iconv.def new file mode 100644 index 00000000000..e52d20f4da0 --- /dev/null +++ b/platformLibs/src/platform/watchos/iconv.def @@ -0,0 +1,5 @@ +depends = posix +package = platform.iconv +headers = iconv.h +headerFilter = ** +linkerOpts = -liconv diff --git a/platformLibs/src/platform/watchos/objc.def b/platformLibs/src/platform/watchos/objc.def new file mode 100644 index 00000000000..20d1b81ca04 --- /dev/null +++ b/platformLibs/src/platform/watchos/objc.def @@ -0,0 +1,13 @@ +depends = darwin posix +language = Objective-C +package = platform.objc +headers = objc/NSObjCRuntime.h objc/NSObject.h objc/message.h objc/objc-api.h \ + objc/objc-exception.h objc/objc-sync.h objc/objc.h objc/runtime.h + +headerFilter = objc/** + +compilerOpts = -D_XOPEN_SOURCE +linkerOpts = -lobjc + +--- +// objc-auto.h is excluded so far due to interop issues. diff --git a/platformLibs/src/platform/watchos/posix.def b/platformLibs/src/platform/watchos/posix.def new file mode 100644 index 00000000000..f297df113ba --- /dev/null +++ b/platformLibs/src/platform/watchos/posix.def @@ -0,0 +1,43 @@ +depends = +package = platform.posix +headers = alloca.h assert.h complex.h dirent.h dlfcn.h err.h errno.h fcntl.h \ + fenv.h float.h fnmatch.h fts.h ftw.h getopt.h grp.h inttypes.h libgen.h limits.h \ + locale.h math.h memory.h netdb.h paths.h poll.h \ + pthread.h pwd.h regex.h resolv.h sched.h search.h semaphore.h setjmp.h signal.h \ + stdatomic.h stdint.h stdio.h stdlib.h string.h strings.h syslog.h termios.h \ + time.h ucontext.h unistd.h utime.h wchar.h wctype.h xlocale.h \ + net/ethernet.h net/if.h \ + netinet/icmp6.h netinet/in.h netinet/in_systm.h \ + netinet/ip.h netinet/ip6.h netinet/ip_icmp.h netinet/tcp.h netinet/udp.h \ + sys/acl.h sys/ioctl.h sys/ipc.h sys/mman.h sys/poll.h \ + sys/queue.h sys/select.h sys/shm.h sys/stat.h \ + sys/syslimits.h sys/time.h sys/times.h sys/utsname.h sys/wait.h + +compilerOpts = -D_XOPEN_SOURCE +linkerOpts = -ldl + +--- +// Wrapper to access errno variable. +static int posix_errno() { + return errno; +} + +static void set_posix_errno(int value) { + errno = value; +} + +// Wrapper to access h_errno variable. +static int posix_h_errno() { + return h_errno; +} + +static void set_posix_h_errno(int value) { + h_errno = value; +} + +static int init_sockets() { + return 0; +} + +static void deinit_sockets() { +} diff --git a/platformLibs/src/platform/watchos/set_depends.sh b/platformLibs/src/platform/watchos/set_depends.sh new file mode 100755 index 00000000000..78e459849bd --- /dev/null +++ b/platformLibs/src/platform/watchos/set_depends.sh @@ -0,0 +1,9 @@ +#!/bin/bash +../../../../dist/bin/run_konan defFileDependencies \ + -target watchos_arm32 \ + -target watchos_x86 \ + *.def + +#TODO: Reenable targets +# -target watchos_arm64 \ +# -target watchos_x64 \ diff --git a/platformLibs/src/platform/watchos/zlib.def b/platformLibs/src/platform/watchos/zlib.def new file mode 100644 index 00000000000..8292dd723fa --- /dev/null +++ b/platformLibs/src/platform/watchos/zlib.def @@ -0,0 +1,34 @@ +depends = posix +package = platform.zlib +headers = zconf.h zlib.h +headerFilter = zconf.h zlib.h +compilerOpts = -DByte=uByte -DBytef=uBytef +linkerOpts = -lz + +--- +#undef deflateInit +static inline int deflateInit(z_streamp strm, int level) { + return deflateInit_(strm, level, ZLIB_VERSION, (int)sizeof(z_stream)); +} + +#undef deflateInit2 +static inline int deflateInit2(z_streamp strm, int level, int method, + int windowBits, int memLevel, int strategy) { + return deflateInit2_(strm, level, method, windowBits, memLevel, + strategy, ZLIB_VERSION, (int)sizeof(z_stream)); +} + +#undef inflateInit +static inline int inflateInit(z_streamp strm) { + return inflateInit_(strm, ZLIB_VERSION, (int)sizeof(z_stream)); +} + +#undef inflateInit2 +static inline int inflateInit2(z_streamp strm, int windowBits) { + return inflateInit2_(strm, windowBits, ZLIB_VERSION, (int)sizeof(z_stream)); +} + +#undef inflateBackInit +static inline int inflateBackInit(z_streamp strm, int windowBits, unsigned char *window) { + return inflateBackInit_(strm, windowBits, window, ZLIB_VERSION, (int)sizeof(z_stream)); +}