CocoaAll.pas 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. {$mode delphi}
  2. {$modeswitch objectivec1}
  3. {$modeswitch cvar}
  4. {$packrecords c}
  5. {$ifndef COCOAALL}
  6. {$error "You must compile with -dCOCOAALL to use COCOAALL."}
  7. {$endif}
  8. {$macro on}
  9. {$define instancetype := id}
  10. {$ifndef LOADED_AVAILABILITY_MACROS}
  11. {$define LOADED_AVAILABILITY_MACROS}
  12. // System Versions MacOSX SDK
  13. {$define MAC_OS_X_VERSION_10_0 := 1000}
  14. {$define MAC_OS_X_VERSION_10_1 := 1010}
  15. {$define MAC_OS_X_VERSION_10_2 := 1020}
  16. {$define MAC_OS_X_VERSION_10_3 := 1030}
  17. {$define MAC_OS_X_VERSION_10_4 := 1040}
  18. {$define MAC_OS_X_VERSION_10_5 := 1050}
  19. {$define MAC_OS_X_VERSION_10_6 := 1060}
  20. {$define MAC_OS_X_VERSION_10_7 := 1070}
  21. {$define MAC_OS_X_VERSION_10_8 := 1080}
  22. {$define MAC_OS_X_VERSION_10_9 := 1090}
  23. {$define MAC_OS_X_VERSION_10_10 := 101000}
  24. {$define MAC_OS_X_VERSION_LATEST := MAC_OS_X_VERSION_10_10}
  25. // System Versions iPhoneOS SDK
  26. {$define __MAC_10_0 := 1000}
  27. {$define __MAC_10_1 := 1010}
  28. {$define __MAC_10_2 := 1020}
  29. {$define __MAC_10_3 := 1030}
  30. {$define __MAC_10_4 := 1040}
  31. {$define __MAC_10_5 := 1050}
  32. {$define __MAC_10_6 := 1060}
  33. {$define __MAC_10_7 := 1070}
  34. {$define __MAC_10_8 := 1080}
  35. {$define __MAC_10_9 := 1090}
  36. {$define __MAC_10_10 := 1100}
  37. {$define __MAC_NA := 9999}
  38. {$define __IPHONE_2_0 := 20000}
  39. {$define __IPHONE_2_1 := 20100}
  40. {$define __IPHONE_2_2 := 20200}
  41. {$define __IPHONE_3_0 := 30000}
  42. {$define __IPHONE_3_1 := 30100}
  43. {$define __IPHONE_3_2 := 30200}
  44. {$define __IPHONE_4_0 := 40000}
  45. {$define __IPHONE_4_1 := 40100}
  46. {$define __IPHONE_4_2 := 40200}
  47. {$define __IPHONE_4_3 := 40300}
  48. {$define __IPHONE_5_0 := 50000}
  49. {$define __IPHONE_6_0 := 60000}
  50. {$define __IPHONE_7_0 := 70000}
  51. {$define __IPHONE_8_0 := 80000}
  52. {$define __IPHONE_NA := 99999}
  53. {$define __IPHONE_LATEST := __IPHONE_8_0}
  54. // Target Conditionals
  55. {$if defined(CPUPOWERPC32)}
  56. {$define TARGET_CPU_PPC}
  57. {$undef TARGET_CPU_PPC64}
  58. {$undef TARGET_CPU_X86}
  59. {$undef TARGET_CPU_X86_64}
  60. {$undef TARGET_CPU_ARM}
  61. {$define TARGET_OS_MAC}
  62. {$undef TARGET_OS_IPHONE}
  63. {$undef TARGET_IPHONE_SIMULATOR}
  64. {$undef TARGET_RT_64_BIT}
  65. {$elseif defined(CPUPOWERPC64)}
  66. {$undef TARGET_CPU_PPC}
  67. {$define TARGET_CPU_PPC64}
  68. {$undef TARGET_CPU_X86}
  69. {$undef TARGET_CPU_X86_64}
  70. {$undef TARGET_CPU_ARM}
  71. {$define TARGET_OS_MAC}
  72. {$undef TARGET_OS_IPHONE}
  73. {$undef TARGET_IPHONE_SIMULATOR}
  74. {$define TARGET_RT_64_BIT}
  75. {$elseif defined(CPUI386)}
  76. {$undef TARGET_CPU_PPC}
  77. {$undef TARGET_CPU_PPC64}
  78. {$define TARGET_CPU_X86}
  79. {$undef TARGET_CPU_X86_64}
  80. {$undef TARGET_CPU_ARM}
  81. {$undef TARGET_RT_64_BIT}
  82. {$if defined(IPHONESIM)}
  83. {$undef TARGET_OS_MAC}
  84. {$define TARGET_OS_IPHONE}
  85. {$define TARGET_IPHONE_SIMULATOR}
  86. {$else}
  87. {$define TARGET_OS_MAC}
  88. {$undef TARGET_OS_IPHONE}
  89. {$undef TARGET_IPHONE_SIMULATOR}
  90. {$endif}
  91. {$elseif defined(CPUX86_64)}
  92. {$undef TARGET_CPU_PPC}
  93. {$undef TARGET_CPU_PPC64}
  94. {$undef TARGET_CPU_X86}
  95. {$define TARGET_CPU_X86_64}
  96. {$undef TARGET_CPU_ARM}
  97. {$define TARGET_OS_MAC}
  98. {$undef TARGET_OS_IPHONE}
  99. {$undef TARGET_IPHONE_SIMULATOR}
  100. {$define TARGET_RT_64_BIT}
  101. {$elseif defined(CPUARM)}
  102. {$undef TARGET_CPU_PPC}
  103. {$undef TARGET_CPU_PPC64}
  104. {$undef TARGET_CPU_X86}
  105. {$undef TARGET_CPU_X86_64}
  106. {$define TARGET_CPU_ARM}
  107. {$undef TARGET_OS_MAC}
  108. {$define TARGET_OS_IPHONE}
  109. {$undef TARGET_IPHONE_SIMULATOR}
  110. {$undef TARGET_RT_64_BIT}
  111. {$endif}
  112. {$ifdef CPU64}
  113. {$define TARGET_CPU_64}
  114. {$define TARGET_RT_64_BIT}
  115. {$else}
  116. {$undef TARGET_CPU_64}
  117. {$undef TARGET_RT_64_BIT}
  118. {$endif}
  119. {$if defined(FPC_BIG_ENDIAN)}
  120. {$define TARGET_RT_BIG_ENDIAN}
  121. {$undef TARGET_RT_LITTLE_ENDIAN}
  122. {$elseif defined(FPC_LITTLE_ENDIAN)}
  123. {$define TARGET_RT_LITTLE_ENDIAN}
  124. {$undef TARGET_RT_BIG_ENDIAN}
  125. {$endif}
  126. {$undef DEPLOYMENT_TARGET_EMBEDDED}
  127. {$undef DEPLOYMENT_TARGET_WINDOWS}
  128. {$define TARGET_API_MAC_CARBON}
  129. {$undef TARGET_API_MAC_OS8}
  130. {$define TARGET_API_MAC_OSX}
  131. {$define TARGET_CARBON}
  132. {$undef TARGET_CPU_68K}
  133. {$undef TARGET_CPU_MIPS}
  134. {$undef TARGET_CPU_SPARC}
  135. {$undef TARGET_CPU_ALPHA}
  136. {$undef TARGET_OS_UNIX}
  137. {$undef TARGET_OS_WIN32}
  138. {$undef TARGET_OS_EMBEDDED}
  139. {$undef TARGET_RT_MAC_68881}
  140. {$undef TARGET_RT_MAC_CFM}
  141. {$define TARGET_RT_MAC_MACHO}
  142. {$undef __OBJC2__}
  143. {$undef __BLOCKS__}
  144. {$undef NS_BLOCKS_AVAILABLE}
  145. {$undef NS_BUILD_32_LIKE_64}
  146. {$undef NS_NONATOMIC_IOSONLY}
  147. {$define ACCESSOR_CALLS_ARE_FUNCTIONS}
  148. {$undef CALL_NOT_IN_CARBON}
  149. {$undef OLDROUTINENAMES}
  150. {$define OPAQUE_TOOLBOX_STRUCTS}
  151. {$define OPAQUE_UPP_TYPES}
  152. {$define OTCARBONAPPLICATION}
  153. {$undef OTKERNEL}
  154. {$define PM_USE_SESSION_APIS}
  155. {$define TYPED_FUNCTION_POINTERS}
  156. {$undef TYPE_BOOL}
  157. {$undef TYPE_EXTENDED}
  158. {$define TYPE_LONGLONG}
  159. {$ifdef CPU64}
  160. {$define __LP64__}
  161. {$else}
  162. {$undef __LP64__}
  163. {$endif}
  164. // Mac OS X Version Requirements
  165. {$if defined(TARGET_CPU_PPC64) or defined(TARGET_CPU_X86) or defined(TARGET_CPU_X86_64)}
  166. {$define MAC_OS_X_VERSION_MIN_REQUIRED := MAC_OS_X_VERSION_10_4}
  167. {$elseif defined(TARGET_CPU_ARM)}
  168. {$define MAC_OS_X_VERSION_MIN_REQUIRED := MAC_OS_X_VERSION_10_5}
  169. {$else}
  170. {$define MAC_OS_X_VERSION_MIN_REQUIRED := MAC_OS_X_VERSION_10_1}
  171. {$endif}
  172. {$define MAC_OS_X_VERSION_MAX_ALLOWED := MAC_OS_X_VERSION_LATEST}
  173. // iOS Version Requirements
  174. {$define __IPHONE_OS_VERSION_MAX_ALLOWED := __IPHONE_LATEST}
  175. {$define __IPHONE_OS_VERSION_MIN_REQUIRED := __IPHONE_2_0}
  176. // Mac OS X compiled for iOS
  177. {$define __MAC_OS_X_VERSION_MIN_REQUIRED := MAC_OS_X_VERSION_MIN_REQUIRED}
  178. {$define __MAC_OS_X_VERSION_MAX_ALLOWED := MAC_OS_X_VERSION_LATEST}
  179. {$endif}
  180. {$IFNDEF FPC_DOTTEDUNITS}
  181. unit CocoaAll;
  182. {$ENDIF FPC_DOTTEDUNITS}
  183. interface
  184. {$linkframework Cocoa}
  185. {$linkframework Foundation}
  186. // The functionality of CoreImage is in the QuartzCore framework on older (Mac) OS X versions,
  187. // and it doesn't exist there, so don't link by default.
  188. {linkframework CoreImage}
  189. {$linkframework QuartzCore}
  190. {$linkframework CoreData}
  191. {$linkframework AppKit}
  192. {$IFDEF FPC_DOTTEDUNITS}
  193. uses
  194. {$ifdef MACOSALL}
  195. Api.Cocoa.DefinedClassesFoundation, Api.Cocoa.DefinedClassesCoreImage, Api.Cocoa.DefinedClassesQuartzCore, Api.Cocoa.DefinedClassesCoreData, Api.Cocoa.DefinedClassesAppKit, System.CTypes, MacOsApi.MacOSAll;
  196. {$else}
  197. Api.Cocoa.DefinedClassesFoundation, Api.Cocoa.DefinedClassesCoreImage, Api.Cocoa.DefinedClassesQuartzCore, Api.Cocoa.DefinedClassesCoreData, Api.Cocoa.DefinedClassesAppKit, System.CTypes, MacOsApi.MacTypes,
  198. MacOsApi.MacOSXPosix, MacOsApi.AEDataModel, MacOsApi.IconsCore, MacOsApi.IOSurfaceAPI, MacOsApi.SecBase, MacOsApi.SecTrust, MacOsApi.Macgl, MacOsApi.CGLTypes, MacOsApi.CFBase, MacOsApi.CFArray, MacOsApi.CFBag,
  199. MacOsApi.CFCharacterSet, MacOsApi.CFData, MacOsApi.CFDate, MacOsApi.CFDictionary, MacOsApi.CFNumber, MacOsApi.CFPropertyList, MacOsApi.CFSet, MacOsApi.CFString, MacOsApi.CFStringEncodingExt,
  200. MacOsApi.CFTimeZone, MacOsApi.CFTree, MacOsApi.CFURL, MacOsApi.CFXMLNode, MacOsApi.CFXMLParser, MacOsApi.CFMachPort, MacOsApi.CFMessagePort, MacOsApi.CFRunLoop, MacOsApi.CFSocket,
  201. MacOsApi.CFBinaryHeap, MacOsApi.CFBitVector, MacOsApi.CFBundle, MacOsApi.CFByteOrders, MacOsApi.CFPlugIn, MacOsApi.CFPreferences, MacOsApi.CFURLAccess, MacOsApi.CFUUID, MacOsApi.CFLocale,
  202. MacOsApi.CFStream, MacOsApi.CFDateFormatter, MacOsApi.CFNumberFormatter, MacOsApi.CFCalendar, MacOsApi.CFUserNotification, MacOsApi.CFNotificationCenter, MacOsApi.CFAttributedString,
  203. MacOsApi.CFNetworkErrorss, MacOsApi.CGBase, MacOsApi.CGAffineTransforms, MacOsApi.CGBitmapContext, MacOsApi.CGColor, MacOsApi.CGColorSpace, MacOsApi.CGContext, MacOsApi.CGDataConsumer,
  204. MacOsApi.CGDataProvider, MacOsApi.CGDirectDisplay, MacOsApi.CGDirectPalette, MacOsApi.CGDisplayConfiguration, MacOsApi.CGDisplayFades, MacOsApi.CGErrors, MacOsApi.CGEvent,
  205. MacOsApi.CGEventSource, MacOsApi.CGEventTypes, MacOsApi.CGFont, MacOsApi.CGFunction, MacOsApi.CGGLContext, MacOsApi.CGGeometry, MacOsApi.CGImage, MacOsApi.CGLayer, MacOsApi.CGPDFArray,
  206. MacOsApi.CGPDFContentStream, MacOsApi.CGPDFContext, MacOsApi.CGPDFDictionary, MacOsApi.CGPDFDocument, MacOsApi.CGPDFObject, MacOsApi.CGPDFOperatorTable, MacOsApi.CGPDFPage,
  207. MacOsApi.CGPDFScanner, MacOsApi.CGPDFStream, MacOsApi.CGPDFString, MacOsApi.CGPSConverter, MacOsApi.CGPath, MacOsApi.CGPattern, MacOsApi.CGRemoteOperation, MacOsApi.CGSession,
  208. MacOsApi.CGShading, MacOsApi.CGWindowLevels, MacOsApi.CVBase, MacOsApi.CVImageBuffer, MacOsApi.CVPixelBuffer;
  209. {$endif}
  210. {$ELSE FPC_DOTTEDUNITS}
  211. uses
  212. {$ifdef MACOSALL}
  213. DefinedClassesFoundation, DefinedClassesCoreImage, DefinedClassesQuartzCore, DefinedClassesCoreData, DefinedClassesAppKit, CTypes, MacOSAll;
  214. {$else}
  215. DefinedClassesFoundation, DefinedClassesCoreImage, DefinedClassesQuartzCore, DefinedClassesCoreData, DefinedClassesAppKit, CTypes, MacTypes, MacOSXPosix, AEDataModel, IconsCore, IOSurfaceAPI, SecBase, SecTrust, MacGL, CGLTypes, CFBase, CFArray, CFBag, CFCharacterSet, CFData, CFDate, CFDictionary, CFNumber, CFPropertyList, CFSet, CFString, CFStringEncodingExt, CFTimeZone, CFTree, CFURL, CFXMLNode, CFXMLParser, CFMachPort, CFMessagePort, CFRunLoop, CFSocket, CFBinaryHeap, CFBitVector, CFBundle, CFByteOrders, CFPlugIn, CFPreferences, CFURLAccess, CFUUID, CFLocale, CFStream, CFDateFormatter, CFNumberFormatter, CFCalendar, CFUserNotification, CFNotificationCenter, CFAttributedString, CFNetworkErrorss, CGBase, CGAffineTransforms, CGBitmapContext, CGColor, CGColorSpace, CGContext, CGDataConsumer, CGDataProvider, CGDirectDisplay, CGDirectPalette, CGDisplayConfiguration, CGDisplayFades, CGErrors, CGEvent, CGEventSource, CGEventTypes, CGFont, CGFunction, CGGLContext, CGGeometry, CGImage, CGLayer, CGPDFArray, CGPDFContentStream, CGPDFContext, CGPDFDictionary, CGPDFDocument, CGPDFObject, CGPDFOperatorTable, CGPDFPage, CGPDFScanner, CGPDFStream, CGPDFString, CGPSConverter, CGPath, CGPattern, CGRemoteOperation, CGSession, CGShading, CGWindowLevels, CVBase, CVImageBuffer, CVPixelBuffer;
  216. {$endif}
  217. {$ENDIF FPC_DOTTEDUNITS}
  218. {$define INTERFACE}
  219. {$define CGFLOAT_DEFINED}
  220. {$define NSINTEGER_DEFINED}
  221. type
  222. OpaqueRecord = record end;
  223. OpaqueCBlock = pointer;
  224. OpaqueType = ^SInt32;
  225. objc_protocol = protocol;
  226. idPtr = ^id;
  227. SELPtr = ^SEL;
  228. va_list_rec = OpaqueRecord;
  229. va_list = ^va_list_rec;
  230. {$define FRAMEWORK_LOADED_FOUNDATION}
  231. {$define FRAMEWORK_LOADED_COREIMAGE}
  232. {$define FRAMEWORK_LOADED_QUARTZCORE}
  233. {$define FRAMEWORK_LOADED_COREDATA}
  234. {$define FRAMEWORK_LOADED_APPKIT}
  235. {$include UndefinedTypes.inc}
  236. {$include foundation/UndefinedTypes.inc}
  237. {$include coreimage/UndefinedTypes.inc}
  238. {$include quartzcore/UndefinedTypes.inc}
  239. {$include coredata/UndefinedTypes.inc}
  240. {$include appkit/UndefinedTypes.inc}
  241. {$define TYPES}
  242. {$include foundation/Sources.inc}
  243. {$include coreimage/Sources.inc}
  244. {$include quartzcore/Sources.inc}
  245. {$include coredata/Sources.inc}
  246. {$include appkit/Sources.inc}
  247. {$undef TYPES}
  248. {$define RECORDS}
  249. {$include foundation/Sources.inc}
  250. {$include coreimage/Sources.inc}
  251. {$include quartzcore/Sources.inc}
  252. {$include coredata/Sources.inc}
  253. {$include appkit/Sources.inc}
  254. {$undef RECORDS}
  255. {$define PROTOCOLS}
  256. {$include foundation/Sources.inc}
  257. {$include coreimage/Sources.inc}
  258. {$include quartzcore/Sources.inc}
  259. {$include coredata/Sources.inc}
  260. {$include appkit/Sources.inc}
  261. {$undef PROTOCOLS}
  262. {$define CLASSES}
  263. {$include foundation/Sources.inc}
  264. {$include coreimage/Sources.inc}
  265. {$include quartzcore/Sources.inc}
  266. {$include coredata/Sources.inc}
  267. {$include appkit/Sources.inc}
  268. {$undef CLASSES}
  269. {$define FUNCTIONS}
  270. {$include foundation/Sources.inc}
  271. {$include coreimage/Sources.inc}
  272. {$include quartzcore/Sources.inc}
  273. {$include coredata/Sources.inc}
  274. {$include appkit/Sources.inc}
  275. {$undef FUNCTIONS}
  276. {$define EXTERNAL_SYMBOLS}
  277. {$include foundation/Sources.inc}
  278. {$include coreimage/Sources.inc}
  279. {$include quartzcore/Sources.inc}
  280. {$include coredata/Sources.inc}
  281. {$include appkit/Sources.inc}
  282. {$undef EXTERNAL_SYMBOLS}
  283. {$include foundation/InlineFunctions.inc}
  284. {$include coreimage/InlineFunctions.inc}
  285. {$include quartzcore/InlineFunctions.inc}
  286. {$include coredata/InlineFunctions.inc}
  287. {$include appkit/InlineFunctions.inc}
  288. {$undef INTERFACE}
  289. implementation
  290. {$define IMPLEMENTATION}
  291. {$include foundation/InlineFunctions.inc}
  292. {$include coreimage/InlineFunctions.inc}
  293. {$include quartzcore/InlineFunctions.inc}
  294. {$include coredata/InlineFunctions.inc}
  295. {$include appkit/InlineFunctions.inc}
  296. {$undef IMPLEMENTATION}
  297. end.