123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /*
- * This file is part of the SDWebImage package.
- * (c) Olivier Poitrey <rs@dailymotion.com>
- * (c) Jamie Pinkham
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- #import <TargetConditionals.h>
- #ifdef __OBJC_GC__
- #error SDWebImage does not support Objective-C Garbage Collection
- #endif
- // Apple's defines from TargetConditionals.h are a bit weird.
- // Seems like TARGET_OS_MAC is always defined (on all platforms).
- // To determine if we are running on OSX, we can only rely on TARGET_OS_IPHONE=0 and all the other platforms
- #if !TARGET_OS_IPHONE && !TARGET_OS_IOS && !TARGET_OS_TV && !TARGET_OS_WATCH
- #define SD_MAC 1
- #else
- #define SD_MAC 0
- #endif
- // iOS and tvOS are very similar, UIKit exists on both platforms
- // Note: watchOS also has UIKit, but it's very limited
- #if TARGET_OS_IOS || TARGET_OS_TV
- #define SD_UIKIT 1
- #else
- #define SD_UIKIT 0
- #endif
- #if TARGET_OS_IOS
- #define SD_IOS 1
- #else
- #define SD_IOS 0
- #endif
- #if TARGET_OS_TV
- #define SD_TV 1
- #else
- #define SD_TV 0
- #endif
- #if TARGET_OS_WATCH
- #define SD_WATCH 1
- #else
- #define SD_WATCH 0
- #endif
- #if SD_MAC
- #import <AppKit/AppKit.h>
- #ifndef UIImage
- #define UIImage NSImage
- #endif
- #ifndef UIImageView
- #define UIImageView NSImageView
- #endif
- #ifndef UIView
- #define UIView NSView
- #endif
- #else
- #if __IPHONE_OS_VERSION_MIN_REQUIRED != 20000 && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0
- #error SDWebImage doesn't support Deployment Target version < 5.0
- #endif
- #if SD_UIKIT
- #import <UIKit/UIKit.h>
- #endif
- #if SD_WATCH
- #import <WatchKit/WatchKit.h>
- #ifndef UIView
- #define UIView WKInterfaceObject
- #endif
- #ifndef UIImageView
- #define UIImageView WKInterfaceImage
- #endif
- #endif
- #endif
- #ifndef NS_ENUM
- #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
- #endif
- #ifndef NS_OPTIONS
- #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
- #endif
- FOUNDATION_EXPORT UIImage *SDScaledImageForKey(NSString *key, UIImage *image);
- typedef void(^SDWebImageNoParamsBlock)(void);
- FOUNDATION_EXPORT NSString *const SDWebImageErrorDomain;
- #ifndef dispatch_queue_async_safe
- #define dispatch_queue_async_safe(queue, block)\
- if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(queue)) {\
- block();\
- } else {\
- dispatch_async(queue, block);\
- }
- #endif
- #ifndef dispatch_main_async_safe
- #define dispatch_main_async_safe(block) dispatch_queue_async_safe(dispatch_get_main_queue(), block)
- #endif
|