xamarin-macios/src
Sebastien Pouliot d1d4446060
[CoreGraphics] Fix issue with the MakeMutable in CGPath where ref count was leaking. (#3228) (#3231)
2018-01-16 08:40:40 -05:00
..
ARKit [arkit] Fix 'Vertices', 'TextureCoordinates' and 'TriangleIndices' in 'ARFaceGeometry' (#3090) 2017-12-12 12:33:48 -05:00
AVFoundation [AVKit] Update to Xcode 9.2 Beta 2 (#2995) 2017-11-13 10:45:04 -06:00
AVKit merge xcode8.2 into master 2016-12-12 21:26:23 -05:00
Accelerate [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
Accounts Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
AddressBook Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as the trampoline. (#2822) 2017-10-03 18:59:10 +02:00
AddressBookUI Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
AppKit Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
AssetsLibrary Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
AudioToolbox [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
AudioUnit [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CFNetwork Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
CallKit [Callkit] Update CallKit bindings to Xcode 8 Beta 3 (#422) 2016-07-19 08:04:15 -04:00
Carbon Build the platform assemblies. 2016-04-24 14:47:26 -04:00
ClockKit [clockkit][watchos] Update for beta 1-3 (#459) 2016-07-22 17:13:49 -04:00
CloudKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Contacts Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
CoreAnimation [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreBluetooth [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreData [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreFoundation Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as the trampoline. (#2822) 2017-10-03 18:59:10 +02:00
CoreGraphics [CoreGraphics] Fix issue with the MakeMutable in CGPath where ref count was leaking. (#3228) (#3231) 2018-01-16 08:40:40 -05:00
CoreImage [coreimage] Fix the pointer used in CIVector(nfloat[]) until the native call completes (#3038) 2017-11-24 09:55:11 -05:00
CoreLocation [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreML Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
CoreMedia [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreMidi [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreMotion Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
CoreServices [XM] Remove TODO from LaunchServices.cs because LSOpenFromURLSpec is deprecated (#930) 2016-09-30 17:13:33 -04:00
CoreSpotlight Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
CoreTelephony [coretelephony] Add deprecations, in favour of CallKit, for iOS 10 beta 1 (#279) 2016-06-27 19:55:12 -04:00
CoreText [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
CoreVideo [CoreVideo] Adds API bindings from Xcode 9 Beta 1 to stable (#2902) 2017-10-19 14:27:32 -05:00
CoreWlan Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Darwin [Darwin] Fix kqueue/kevent bindings to actually work. (#1871) 2017-03-15 07:50:05 +01:00
EventKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
EventKitUI Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
ExternalAccessory Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
FinderSync [Mac] Add support for os x extensions (#83) 2016-05-25 17:20:33 -04:00
Foundation Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
GLKit [glkit] Small update for iOS 10 beta 1 (#351) 2016-07-06 11:19:21 -04:00
GameController [tests] Fix introspection tests running on an iOS 9.3 device (#380) 2016-07-12 09:46:41 -04:00
GameKit [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
GameplayKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
HealthKit [HealthKit] Bind Xcode 9 APIs (#2817) 2017-10-05 07:48:53 +02:00
HomeKit [homekit] Expose weakly-typed API since the constants are extensible. Fixed #60303 (#3025) 2017-11-21 20:50:33 -05:00
IOSurface Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
ImageIO [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
ImageKit Build the platform assemblies. 2016-04-24 14:47:26 -04:00
InputMethodKit Build the platform assemblies. 2016-04-24 14:47:26 -04:00
Intents Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
JavaScriptCore Build the platform assemblies. 2016-04-24 14:47:26 -04:00
LocalAuthentication Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
MapKit [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
MediaAccessibility Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
MediaLibrary Build the platform assemblies. 2016-04-24 14:47:26 -04:00
MediaPlayer [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
MediaToolbox [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
MessageUI [messageui] Update for iOS 10 beta 1 & 3 (#431) 2016-07-20 08:12:46 -04:00
Metal Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as the trampoline. (#2822) 2017-10-03 18:59:10 +02:00
MetalKit [metalkit] Add new API from both beta 1 and beta 2 (#383) 2016-07-12 23:10:55 -04:00
MetalPerformanceShaders [MetalPerformanceShaders] Xcode 9 bindings (#3005) 2017-11-28 14:29:05 -06:00
MobileCoreServices Fix inverted null check in MobileCoreServices (#1455) 2017-01-09 12:55:57 -06:00
ModelIO [ModelIO] Adds Xcode 9 Beta 1 to Stable API bindings (#2832) 2017-10-05 20:32:25 +02:00
MultipeerConnectivity [tvos][multipeerconnectivity] Decorate API with [TV (10,0)] (#473) 2016-07-25 08:15:41 -04:00
NativeTypes Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
NetworkExtension [NetworkExtension] Update binding from Xcode 9 Beta 1 to Stable (#2877) 2017-10-13 01:08:17 -05:00
NewsstandKit Build the platform assemblies. 2016-04-24 14:47:26 -04:00
NotificationCenter [notificationcenter] Update for iOS 10 beta 1 (#323) 2016-07-04 19:17:28 -04:00
ObjCRuntime Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
OpenGL [macos] Allow passing null to CGLContext.CurrentContext. Fixes #53273 2017-03-16 11:34:53 -08:00
OpenGLES [src] Fix directory dependence for build/tvos/reference/OpenTK-1.0.dll.config. Fixes #59432. (#2787) 2017-09-27 18:44:42 +02:00
PassKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
PdfKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Photos [macos][photos] Fix breaking change wrt PHLivePhotoFrameProcessingBlock (#3112) 2017-12-18 13:31:17 -05:00
PhotosUI Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
PrintCore Add missing PrintCore API PMGetAdjustedPaperRect (#1163) 2016-11-10 14:07:59 -06:00
QTKit Build the platform assemblies. 2016-04-24 14:47:26 -04:00
QuickLook Build the platform assemblies. 2016-04-24 14:47:26 -04:00
QuickLookUI Build the platform assemblies. 2016-04-24 14:47:26 -04:00
ReplayKit [ReplayKit] Update up to Xcode 9.2 Beta 2 (#2984) 2017-11-08 20:29:47 -06:00
SafariServices Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
SceneKit [SceneKit] Workaround SCNAnimationEvent breaking change introduced in iOS 11 (#3160) (#3165) 2018-01-05 11:00:23 -06:00
ScriptingBridge Build the platform assemblies. 2016-04-24 14:47:26 -04:00
SearchKit Fix FetchString change from PR335, other (wrong) cases and reduce code duplication (#389) 2016-07-19 08:44:59 -04:00
Security Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
Simd Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Social Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
SpriteKit [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
StoreKit [storekit] Update for Xcode 9.2 final 2017-12-04 17:13:27 -05:00
System.ComponentModel Build the platform assemblies. 2016-04-24 14:47:26 -04:00
SystemConfiguration [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
TVMLKit Add some missing *Async version for existing API (#1527) 2017-03-07 13:55:37 -05:00
TVServices Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Twitter Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
UIKit Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
UserNotifications [UserNotifications] Fix xtro test results and bug in UNNotificationResponse (#455) 2016-07-22 08:11:28 -04:00
VideoSubscriberAccount merge xcode8.2 into master 2016-12-12 21:26:23 -05:00
VideoToolbox Merge branch 'xcode9.1' into master-merge-xcode91-take2 2017-11-03 10:30:07 -04:00
Vision Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
WKWebKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
WatchConnectivity Build the platform assemblies. 2016-04-24 14:47:26 -04:00
WatchKit Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
WebKit Bind new mac-only APIs from xcode 8.3 (#1602) 2017-03-28 09:22:20 -05:00
iAd [iAd] Update to iOS 10.3 beta 1 2017-03-28 09:12:58 -05:00
.gitignore [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
AssemblyInfo.cs.in [ObjCRuntime] Only use a 'BundleFinder' class when we don't have another internal type we can use. Fixes #56255. (#2099) 2017-05-16 20:50:10 +02:00
Compat.iOS.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
Compat.mac.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
Constants.iOS.cs.in Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Constants.mac.cs.in [MetalPerformanceShaders] Xcode 9 bindings (#3005) 2017-11-28 14:29:05 -06:00
Constants.tvos.cs.in Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Constants.watch.cs.in Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Makefile [Debugger] Allow to step into Xamarin code. (#1663) 2017-12-05 14:13:59 +01:00
Makefile.generator [tests] Port the makefile-based generator tests to NUnit. (#3019) 2017-11-20 14:55:16 +01:00
MonoNativeFunctionWrapperAttribute.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
MonoPInvokeCallbackAttribute.cs [tests][intro] Add validation for methods decorated with [MonoPInvokeCallback] (#1751) 2017-03-04 19:40:35 -05:00
MonoTouch.Dialog-1.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.Dialog-1.tvos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.tvos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.watchos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
Obsoletes.cs [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
OpenTK.dll.sources Build the platform assemblies. 2016-04-24 14:47:26 -04:00
README.md [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
Version.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
accelerate.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
accounts.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
addressbook.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
addressbookui.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
adsupport.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
appkit.cs [macos] NSView.LocationInView should accept null (#3103) 2017-12-14 15:57:07 -05:00
arkit.cs [arkit] Fix 'Vertices', 'TextureCoordinates' and 'TriangleIndices' in 'ARFaceGeometry' (#3090) 2017-12-12 12:33:48 -05:00
assetslibrary.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
audiotoolbox.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
audiounit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
avfoundation.cs Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
avkit.cs [AVKit] Update to Xcode 9.2 Beta 2 (#2995) 2017-11-13 10:45:04 -06:00
bmac [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
bmac.csproj Merge Quote methods into a single class instead of multiple versions (#2153) 2017-06-06 12:32:25 -08:00
bmac.ikvm [generator] Build an IKVM-based generator (bgen.exe). 2017-03-09 12:47:57 +01:00
btouch-native.in [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
btouch.cs [mtouch/mmp/bgen] Add support for response files. (#2808) 2017-11-16 16:02:34 +01:00
btouch.csproj Build the platform assemblies. 2016-04-24 14:47:26 -04:00
btouch.in [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
bwatch.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
callkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
cfnetwork.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
clockkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
cloudkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
contacts.cs [contacts] CNContactFormatter now conforms to NSSecureCoding 2017-11-07 12:03:42 -05:00
contactsui.cs [ContactsUI] Unify ContactsUI.Mac into ContactsUI. (#1409) 2017-01-02 09:01:13 +01:00
coreanimation.cs Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
coreaudiokit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
corebluetooth.cs [corebluetooth] Update up to Xcode 9.2 beta 2 (#2990) 2017-11-10 15:47:13 -05:00
coredata.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
corefoundation.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
coregraphics.cs [CoreGraphics] Implement CoreGraphics bindings for Xcode 9. (#2812) 2017-10-02 12:02:41 +02:00
coreimage.cs [coreimage] Fix the pointer used in CIVector(nfloat[]) until the native call completes (#3038) 2017-11-24 09:55:11 -05:00
corelocation.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
coremedia.cs [CoreMedia] Adds API bindings from Xcode 9 Beta 1 to stable (#2886) 2017-10-16 10:11:27 +02:00
coremidi.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
coreml.cs [CoreML] Update up to Xcode 9.2 Beta 2 (#2979) 2017-11-09 15:27:21 -06:00
coremotion.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
corenfc.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
coreservices.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
corespotlight.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
coretelephony.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
coretext.cs [CoreText] Adds API bindings from Xcode 9 Beta 1 to stable (#2899) 2017-10-17 11:35:38 -05:00
corevideo.cs [CoreVideo] Adds API bindings from Xcode 9 Beta 1 to stable (#2902) 2017-10-19 14:27:32 -05:00
corewlan.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
custom-make.sh Build the platform assemblies. 2016-04-24 14:47:26 -04:00
devicecheck.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
error.cs [generator] Fix bug 52573 - Add nowarn and warnaserror to btouch/bmac (#1882) 2017-03-22 07:52:24 -05:00
eventkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
eventkitui.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
externalaccessory.cs Fix a number of introspection test failures on 10.13 (#2815) (#2833) (#2874) 2017-10-10 13:55:24 -05:00
fileprovider.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
fileproviderui.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
findersync.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
foundation.cs [Foundation] Expose initWithDictionary:copyItems: in NS[Mutable]Array, Fixes bug 60541 (#3008) 2017-11-15 10:41:40 -06:00
frameworks.sources [arkit] Fix 'Vertices', 'TextureCoordinates' and 'TriangleIndices' in 'ARFaceGeometry' (#3090) 2017-12-12 12:33:48 -05:00
gamecontroller.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
gamekit.cs [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
gameplaykit.cs [gameplaykit] Add bindings from Xcode 9.0 (#2798) 2017-09-28 15:41:29 -04:00
generate-frameworks.csharp [generator] Generate the list of frameworks in each platform based on the information in the makefiles. (#1687) 2017-02-13 18:01:16 +01:00
generator-attribute-manager.cs [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
generator-attributes.cs [generator] Persist BindAs attribute information in generated code. 2017-09-26 15:45:13 +02:00
generator-diff.mk [generator] Exclude pdb files from the diff. (#2287) 2017-07-04 07:29:17 +02:00
generator-enums.cs [src] Revert accidental whitespace change. 2017-09-26 16:14:43 +02:00
generator-filters.cs Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
generator-ikvm.csproj.in [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
generator-typemanager.cs [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
generator.cs [generator] Disallow the use of [Async] when the signature contains ref/out parameters, fixes bug 58792. (#3059) 2017-12-18 09:21:23 -05:00
generator.sln [tests] Port the makefile-based generator tests to NUnit. (#3019) 2017-11-20 14:55:16 +01:00
glkit.cs [tvos] Add missing attributes to get introspection to works on tvOS 9.0, 9.1, 9.2 and 10.0 (#798) 2016-09-07 15:18:20 -04:00
global.css Build the platform assemblies. 2016-04-24 14:47:26 -04:00
healthkit.cs [HealthKit] Fix availability metadata on HKWorkoutRoute in order to fix intro in i 2017-11-27 16:46:20 -06:00
healthkitui.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
homekit.cs [homekit] Expose weakly-typed API since the constants are extensible. Fixed #60303 (#3025) 2017-11-21 20:50:33 -05:00
iad.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
identitylookup.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
imageio.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
imagekit.cs [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018) 2017-11-22 20:52:10 -05:00
inputmethodkit.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
intents.cs [Intents] Update up to Xcode 9.2 Beta 2 (#2982) 2017-11-09 08:45:25 -06:00
intentsui.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
iosurface.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
javascriptcore.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
localauthentication.cs [localauthentication] Update up to Xcode 9.2 beta 2 (#2989) 2017-11-09 15:39:33 -05:00
mapkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
mediaaccessibility.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
medialibrary.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
mediaplayer.cs [mediaplayer] Update up to Xcode 9.2 beta 2 (#2994) 2017-11-13 09:17:35 -05:00
mediatoolbox.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
messages.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
messageui.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
metal.cs [Metal] MTLBuffer.CreateTexture shouldn't be abstract on macOS - d15-5 (#2951) 2017-11-02 09:02:54 -04:00
metalkit.cs Add some missing *Async version for existing API (#1527) 2017-03-07 13:55:37 -05:00
metalperformanceshaders.cs [MetalPerformanceShaders] Xcode 9 bindings (#3005) 2017-11-28 14:29:05 -06:00
mobilecoreservices.cs [tvos] Add missing attributes to get introspection to works on tvOS 9.0, 9.1, 9.2 and 10.0 (#798) 2016-09-07 15:18:20 -04:00
modelio.cs [ModelIO] Adds Xcode 9 Beta 1 to Stable API bindings (#2832) 2017-10-05 20:32:25 +02:00
monotouch-dialog.sources Build the platform assemblies. 2016-04-24 14:47:26 -04:00
multipeerconnectivity.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
networkextension.cs Remove annoying warnings CS0105, CS0109 and CS0618 from our builds (#2890) 2017-10-16 10:12:50 +02:00
newsstandkit.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
notificationcenter.cs [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018) 2017-11-22 20:52:10 -05:00
opengl.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
opengles.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
opentk.csproj Build the platform assemblies. 2016-04-24 14:47:26 -04:00
passkit.cs [passkit] Update up to Xcode 9.2 beta 2 (#2972) 2017-11-08 14:42:38 -05:00
pdfkit.cs [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018) 2017-11-22 20:52:10 -05:00
photos.cs [photos] Fix incorrect SDPHLivePhotoFrameProcessingBlock. Fixes #58227 (#3011) 2017-11-22 14:42:20 -05:00
photosui.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
pmcs.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
printcore.cs [PrintCore] Add first pass of bindings (#1067) 2016-11-02 13:52:47 -05:00
pushkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
qtkit.cs [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
quartzcomposer.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
quicklook.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
quicklookUI.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
replaykit.cs [ReplayKit] Update up to Xcode 9.2 Beta 2 (#2984) 2017-11-08 20:29:47 -06:00
rosetta.pl Build the platform assemblies. 2016-04-24 14:47:26 -04:00
safariservices.cs Fix a number of introspection test failures on 10.13 (#2815) (#2833) (#2874) 2017-10-10 13:55:24 -05:00
scenekit.cs [SceneKit] Workaround SCNAnimationEvent breaking change introduced in iOS 11 (#3160) (#3165) 2018-01-05 11:00:23 -06:00
scriptingbridge.cs [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018) 2017-11-22 20:52:10 -05:00
searchkit.cs Remove unnecessary public from binding definition files 2016-09-20 09:20:06 -05:00
security.cs Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
social.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
speech.cs [audit] Add comments on two correct, but uncommon, binding patterns (#761) 2016-09-04 12:40:45 -04:00
spritekit.cs Fix a number of introspection test failures on 10.13 (#2815) (#2833) (#2874) 2017-10-10 13:55:24 -05:00
storekit.cs [storekit] Update for Xcode 9.2 final 2017-12-04 17:13:27 -05:00
system-drawing.sources Build the platform assemblies. 2016-04-24 14:47:26 -04:00
systemconfiguration.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
touch-unit.sources [src] Bump Touch.Unit dependency to get HttpTextWriter addition. (#88) 2016-05-26 15:34:47 +02:00
tvmlkit.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
tvservices.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
twitter.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
uikit.cs Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
usernotifications.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
usernotificationsui.cs [UserNotifications] Fix xtro test results and bug in UNNotificationResponse (#455) 2016-07-22 08:11:28 -04:00
videosubscriberaccount.cs Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
videotoolbox.cs [VideoToolbox] Adds bindings from Xcode 9 Beta 1 to Stable (#2859) 2017-10-09 13:43:17 -05:00
vision.cs [Vision] Removes incorrect [Abstract] from VNDetectBarcodesRequest (#3155) (#3158) 2018-01-04 16:11:21 -05:00
watchconnectivity.cs [WatchConnectivity] Update to Xcode 8.3 Beta 5 (#1854) 2017-03-28 10:12:09 -05:00
watchkit.cs [watchos][watchkit] Update up to Xcode 9.2 beta 2 (#2988) 2017-11-09 15:50:28 -05:00
webkit.cs [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018) 2017-11-22 20:52:10 -05:00
wkwebkit.cs Fix a number of introspection test failures on 10.13 (#2815) (#2833) (#2874) 2017-10-10 13:55:24 -05:00
xamios.tmpl.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
xammac.pc.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
xammac.tmpl.csproj Fixes missing Mono.Security dependency 2017-03-14 11:47:06 +01:00
xamtvos.tmpl.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
xamwatch.tmpl.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00

README.md

Platform assemblies

This directory contains the source code and build logic to build the platform assemblies.

Generator

The generator takes API definition files (most *.cs files in src/) as input, and generates the required binding code.

There is one generator executable, based on IKVM, that's used to generate the binding code for all platforms.

The generator relies heavily on binding attributes; all the binding attributes (that are not in the platform assembly) are compiled into a separate attribute assembly (Xamarin.[iOS|TVOS|WatchOS|Mac].BindingAttributes.dll).

Since the platform assemblies (and thus all the binding attributes assemblies as well) reference each platform's BCL, those assemblies can't be loaded directly into the generator at runtime. In order to not make the generator code too complicated, all the attributes are also compiled into the generator executable, and then instantiated as mock-objects of the real attributes.

The solution generator.sln can be used to debug the generator. There are multiple run configurations (ios-classic, ios-unified, tvos, watchos, mac-classic, mac-unified, mac-full), each configured to execute the generator with the options for the corresponding profile.

Conditional compilation

These are the symbols defined for each platform assembly:

Assembly Symbols
monotouch.dll IPHONE MONOTOUCH IOS
Xamarin.iOS.dll IPHONE MONOTOUCH IOS XAMCORE_2_0
XamMac.dll MONOMAC XAMARIN_MAC
Xamarin.Mac.dll MONOMAC XAMARIN_MAC XAMCORE_2_0
Xamarin.WatchOS.dll IPHONE MONOTOUCH WATCH XAMCORE_2_0 XAMCORE_3_0
Xamarin.TVOS.dll IPHONE MONOTOUCH TVOS XAMCORE_2_0 XAMCORE_3_0

To build core for only one platform, use the platform unique variables IOS, MONOMAC, WATCH or TVOS.

Core Assemblies

Currently 3 variations of the core Xamarin.iOS assembly and 5 variations of the core Xamarin.Mac assembly are produced:

### Xamarin.iOS ###

  • A 32-bit Classic assembly (uses System.Int32 in place of NSInteger, etc.)
  • A 32-bit Unified assembly (uses System.nint in place of NSInteger, etc.)
  • A 64-bit Unified assembly (same as 32-bit Unified)

### Xamarin.Mac ###

  • A 32-bit Classic assembly (uses System.Int32 in place of NSInteger, etc.)
  • A 32-bit Unified assembly (uses System.nint in place of NSInteger, etc.)
  • A 64-bit Unified assembly (same as 32-bit Unified)
  • A 32-bit Full assembly (uses System.nint in place of NSInteger, and references the v4.5 BCL)
  • A 64-bit Full assembly (same as 32-bit Full)

The Classic assembly will exist in order to not break customer code. Customers can choose to continue using this assembly, but we will encourage customers to move to our Unified assemblies.

The Unified assemblies provides many improvements and support for 64-bit iOS and OS X APIs.

Native Types

Most native APIs use NSInteger (and related) typedefs. On 32-bit systems, these are 32-bit underlying types; on 64-bit systems, these are 64-bit underlying types.

Historically Xamarin.iOS and Xamarin.Mac have bound these explicitly as 32-bit (System.Int32, etc). With the move to 64-bit that has been ongoing in OS X for a few versions (10.6/Snow Leopard) and more recently with the anouncement of 64-bit support in iOS, we needed a solution to support both worlds.

We have introduced 6 new types to make this possible:

Native Type Legacy (32-bit) CIL Type New (32/64-bit) CIL Type
NSInteger System.Int32 System.nint
NSUInteger System.UInt32 System.nuint
CGFloat System.Single System.nfloat
CGSize System.Drawing.SizeF CoreGraphics.CGSize
CGPoint System.Drawing.PointF CoreGraphics.CGPoint
CGRect System.Drawing.RectangleF CoreGraphics.CGRect

In the Classic assembly, the System.Drawing types are backed by the 32-bit System.Single type. In the Unified assemblies, the CoreGraphics types are backed by 32/64-bit System.nfloat type.

When binding APIs, it is important to use the new types (nint, CGRect, etc), even though they do not exist in the Classic assembly.

Before compilation, all source code is preprocessed by pmcs, an internal tool for performing C#-aware preprocessing.

For the Classic assembly, instances of the new types are translated to the legacy types. For the Unified assemblies, these types are not translated, and the native types are included in the build.

Enums

Enums are handled specially. Most native enums are backed by NSInteger or NSUInteger. Unfortunately in C#, the backing type of an enum may only be one of the primitive integral C# types. Thus, an enum cannot be backed by System.nint or System.nuint.

The convention is to make all enums that are backed natively by NSInteger or NSUInteger backed by a 64-bit primitive integral C# type (long or ulong) and then annotated with the [Native] attribute. This ensures that API is identical between the 32/64-bit assemblies but also hints to the code generator that Objective-C runtime calls should first cast the enum to a System.nint or System.nuint.

However, this also presents a problem of keeping the enum 32-bit on the Classic assemblies. Therefore, enums should actually be backed in source code nuint_compat_int. This will be preprocessed to int on the Classic assembly and ulong on the 32/64-bit assemblies.

Native Enum Definition

typedef NS_ENUM(NSUInteger, NSTableViewDropOperation) {
	NSTableViewDropOn,
	NSTableViewDropAbove
};

Managed Enum Definition

[Native]
public enum NSTableViewDropOperation : nuint_compat_int {
	DropOn,
	DropAbove
}

When dealing with enums in P/Invokes, one must never pass such an enum directly. The P/Invoke signature should take a System.nint or System.nuint and a wrapper API must cast the enum manually (as mentioned above, this is handled automatically for Objective-C APIs by the generator).

Objective-C Binding

interface Fooable {
	[Export ("foo:")]
	void Foo (NSTableViewDropOperation dropOp);
}

C Binding

public partial class Fooable {
	[DllImport ("foo")]
	static extern void Foo (nuint dropOp);

	public static void Foo (NSTableViewDropOperation dropOp)
	{
		Foo ((nuint)(ulong)dropOp);
	}
}

pmcs

pmcs is a wrapper around a regular mcs invocation. In addition to any regular arguments passed to mcs, pmcs accepts instructions on how to translate some tokens from one value to another. This is used to translate instances of native types in source code to legacy types for the 32-bit Classic assembly.

pmcs lives in the xamarin-macios repository and is used for both Xamarin.Mac and Xamarin.iOS. Explore pmcs documentation.

#define

There are a few preprocessor variables that can be used within sources for conditional compilation:

Variable Description
MONOMAC defined for Xamarin.Mac builds; not defined for Xamarin.iOS
ARCH_32 defined when the target architecture is 32-bit; this will be defined for Classic and the Unified 32-bit assemblies
ARCH_64 defined when the target architecture is 64-bit; this will be defined only for the Unified 64-bit assembly
XAMCORE_2_0 defined for the Unified assemblies; this should be used for most conditions dealing with API differences between Unified and Classic assemblies
COREBUILD defined when building the intermediate core.dll assembly against which the code generator will produce bindings

For example, to build an API for all of iOS but only 64-bit OS X (Xamarin.Mac):

#if !MONOMAC || (MONOMAC && ARCH_64)
...
#endif