xamarin-macios/src
TJ Lambert ac3f2ac642
[scenekit] Add nullability to (generated and manual) bindings (#14879)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2022-05-05 10:42:02 -05:00
..
ARKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
AVFoundation [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
AVKit [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
Accelerate [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
Accessibility [Accessibility] Update bindings for Xcode 13.0 beta 1 (#11998) 2021-07-07 17:25:31 -04:00
Accounts [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
AdSupport [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
AddressBook [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
AddressBookUI [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
AppKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
AssetsLibrary [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
AudioToolbox [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
AudioUnit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
AuthenticationServices [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
BackgroundTasks Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
BusinessChat [businesschat] Add nullability to (generated and manual) bindings (#14263) 2022-03-01 06:33:48 -06:00
CFNetwork [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CallKit [callkit] Add nullability to (generated and manual) bindings (#14275) 2022-03-02 18:54:10 -06:00
CarPlay [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
Chip [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
ClassKit [classkit] Add nullability to (generated and manual) bindings (#14280) 2022-03-10 06:44:04 -06:00
ClockKit [clockkit] Add nullability to (generated and manual) bindings (#14284) 2022-03-02 15:50:05 -06:00
CloudKit [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
Compression [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
Contacts [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreAnimation [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
CoreBluetooth [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
CoreData [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
CoreFoundation [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreGraphics [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreHaptics [CoreHaptics] Add support for Xcode13 beta1. (#11963) 2021-06-17 15:15:07 -04:00
CoreImage [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreLocation [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreML [coreml] Add nullability to (generated and manual) bindings (#14412) 2022-04-11 09:16:54 -05:00
CoreMedia [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreMidi [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
CoreMotion [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
CoreServices [runtime] Don't call 'retain' and 'autorelease' selectors on returned NativeObjects. (#14690) 2022-04-20 14:09:09 +02:00
CoreSpotlight [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreTelephony [CoreTelephony] Fix multiple issues. Fixes #13931. (#14242) 2022-02-24 23:41:52 +01:00
CoreText [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreVideo [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
CoreWlan [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
Darwin [darwin] Add nullability to (generated and manual) bindings (#14419) 2022-03-24 08:35:20 -05:00
EventKit [eventkit] Add nullability to (generated and manual) bindings (#14422) 2022-03-24 08:36:07 -05:00
EventKitUI [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
ExternalAccessory Bump the minimum iOS version to 7.0. Fixes #6213. (#6878) 2019-08-30 01:07:30 -07:00
FileProvider [fileprovider] Add nullability to (generated and manual) bindings (#14602) 2022-04-01 15:48:08 -04:00
FinderSync [findersync] Add nullability to (generated and manual) bindings (#14451) 2022-03-24 08:37:27 -05:00
Foundation [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
GLKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
GameController [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
GameKit [gamekit] Add nullability to (generated and manual) bindings (#14611) 2022-04-05 11:19:22 -05:00
GameplayKit [gameplaykit] Add nullability to (generated and manual) bindings (#14615) 2022-04-28 11:26:18 -05:00
HealthKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
HomeKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
IOSurface [iosurface] Add nullability to (generated and manual) bindings (#14617) 2022-04-04 10:51:28 -05:00
ImageCaptureCore [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
ImageIO [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
ImageKit [imagekit] Add nullability to (generated and manual) bindings (#14637) 2022-04-05 11:22:33 -05:00
InputMethodKit [inputmethodkit] Add nullability to (generated and manual) bindings (#14638) 2022-04-05 11:23:06 -05:00
Intents [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
JavaScriptCore [javascriptcore] Add nullability to (generated and manual) bindings (#14658) 2022-04-06 11:55:28 -05:00
LocalAuthentication [LocalAuthentication] Adjust code for .NET and fix availability of LAContext.MaxBiometryFailures (#13425) 2021-11-24 15:37:56 +01:00
MLCompute [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MapKit [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MediaAccessibility [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MediaLibrary [d16-7] [src] Remove Classic code from the JavaScriptCore, MapKit, MediaLibrary, MediaToolbox, Metal, MetalKit, MetalPerformanceShaders, MobileCoreServices, ModelIO, MultipeerConnectivity, NetworkExtension and NotificationCenter frameworks. (#8806) 2020-06-10 09:29:53 +02:00
MediaPlayer [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MediaToolbox [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MessageUI [messageui] Add nullability to (generated and manual) bindings (#14676) 2022-04-08 09:03:05 -05:00
Metal [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
MetalKit [metalkit] Add nullability to (generated and manual) bindings (#14695) 2022-04-08 08:57:10 -05:00
MetalPerformanceShaders [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
MetricKit [metrickit] Add nullability to (generated and manual) bindings (#14678) 2022-04-08 09:04:18 -05:00
MobileCoreServices [mobilecoreservices] Add nullability to (generated and manual) bindings (#14677) 2022-04-08 09:03:44 -05:00
ModelIO [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
MultipeerConnectivity [multipeerconnectivity] Add nullability to (generated and manual) bindings (#14680) 2022-04-07 18:16:40 -05:00
NativeTypes [nativetypes] Add nullability to (generated and manual) bindings (#14694) 2022-04-07 18:17:58 -05:00
NaturalLanguage [naturallanguage] Add nullability to (generated and manual) bindings (#14741) 2022-04-26 09:50:51 -05:00
NearbyInteraction [nearbyinteraction] Add nullability to (generated and manual) bindings (#14735) 2022-04-21 11:31:44 -05:00
Network [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
NetworkExtension [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
NewsstandKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
NotificationCenter Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
ObjCRuntime [ObjCRuntime] Specify the string comparison to use when comparing strings in Runtime.IsARM64CallingConvention. (#14840) 2022-04-29 09:18:27 +02:00
OpenGL [runtime] Don't call 'retain' and 'autorelease' selectors on returned NativeObjects. (#14690) 2022-04-20 14:09:09 +02:00
OpenGLES [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
PassKit [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
PdfKit [pdfkit] Add nullability to (generated and manual) bindings (#14789) 2022-04-22 15:55:23 -05:00
Photos [photos] Add nullability to (generated and manual) bindings (#14861) 2022-05-03 10:50:14 -05:00
PhotosUI [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
PrintCore [printcore] Add nullability to (generated and manual) bindings (#14856) 2022-05-03 10:48:34 -05:00
QTKit [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
QuickLook [quicklook] Add nullability to (generated and manual) bindings (#14865) 2022-05-05 10:30:15 -05:00
QuickLookUI [quicklookui] Add nullability to (generated and manual) bindings (#14862) 2022-05-03 10:50:57 -05:00
ReplayKit [replaykit] Add nullability to (generated and manual) bindings (#14863) 2022-05-03 10:51:35 -05:00
SafariServices [SafariServices] Adopt XAMCORE_4_0 changes in .NET. (#13801) 2022-01-20 10:33:42 +01:00
SceneKit [scenekit] Add nullability to (generated and manual) bindings (#14879) 2022-05-05 10:42:02 -05:00
ScreenCaptureKit [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
ScriptingBridge [ScriptingBridge] Improve API and add nullability. (#13787) 2022-01-19 20:52:18 +01:00
SearchKit [searchkit] Add nullability to (generated and manual) bindings (#14878) 2022-05-05 10:41:28 -05:00
Security [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
SensorKit [sensorkit] Add nullability to (generated and manual) bindings (#14881) 2022-05-04 11:43:54 -05:00
Simd [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
Social [social] Add nullability to (generated and manual) bindings (#14882) 2022-05-04 11:49:52 -05:00
SpriteKit [spritekit] Add nullability to (generated and manual) bindings (#14883) 2022-05-04 11:50:29 -05:00
StoreKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
System.ComponentModel [systemcomponentmodel] Add nullability to (generated and manual) bindings (#14886) 2022-05-04 11:51:14 -05:00
System.Drawing Remove the type forwarders for System.Drawing types in .NET. (#13916) 2022-01-28 09:59:17 +01:00
System.Net.Http [CFNetwork] Move the CFHost and CFHTTP* types to the CFNetwork namespace in .NET. (#13761) 2022-01-19 08:07:06 +01:00
SystemConfiguration [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
TVMLKit [ObjCRuntime] Add a non-deprecated internal system-version checking API and use it everywhere. (#13231) 2021-11-04 11:13:23 +01:00
TVServices [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
Twitter Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
UIKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
UserNotifications Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
VideoSubscriberAccount [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
VideoToolbox [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
Vision [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
WKWebKit [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
WatchConnectivity Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
WatchKit [WatchKit] Remove the WatchKit framework from iOS in .NET. (#13299) 2021-11-08 16:17:26 +01:00
WebKit [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
XKit [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
bgen [main] Update dependencies from dotnet/installer (#12935) 2021-10-08 14:12:23 +02:00
generate-frameworks-constants [src] Generate a .NET-specific version of Constants.<platform>.generated.cs. (#13298) 2021-11-08 16:17:13 +01:00
iAd [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
iTunesLibrary [iTunesLibrary] Adopt XAMCORE_4_0 changes in .NET. (#13982) 2022-01-31 18:21:16 +01:00
xlf [bgen] Remove trailing newlines from warning/error messages. (#10701) 2021-02-25 15:04:00 +01:00
.gitignore [build] Use arcade dependency management tooling (#10890) 2021-04-02 00:02:27 -04:00
AssemblyInfo.cs.in [dotnet] Use only the first two parts of our product version as the assembly version. (#14846) 2022-05-03 10:07:11 +02:00
Constants.iOS.cs.in [Constants] Adopt XAMCORE_4_0 changes in .NET. (#13895) 2022-01-27 10:36:50 +01:00
Constants.mac.cs.in Rename any *OSX_SDK_VERSION variables to *MACOS_SDK_VERSION. (#13411) 2021-11-22 18:48:05 +01:00
Constants.maccatalyst.cs.in [CoreGraphics] Add support for xcode13 beta 5. (#12589) 2021-09-01 11:24:10 -04:00
Constants.tvos.cs.in [Constants] Adopt XAMCORE_4_0 changes in .NET. (#13895) 2022-01-27 10:36:50 +01:00
Constants.watch.cs.in [Constants] Adopt XAMCORE_4_0 changes in .NET. (#13895) 2022-01-27 10:36:50 +01:00
DotNetGlobals.cs [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
ILLink.Descriptors.xml Workaround FirstChanceExceptionEventArgs being trimmed (#14803) 2022-04-25 08:07:24 +02:00
ILLink.LinkAttributes.tvos.xml [src] Fix internal RemoveAttributesInstance directive for the linker. (#14667) 2022-04-06 19:31:51 +02:00
ILLink.LinkAttributes.xml.in [src] Fix internal RemoveAttributesInstance directive for the linker. (#14667) 2022-04-06 19:31:51 +02:00
ILLink.Substitutions.MacCatalyst.xml [.NET] Rename our product assemblies. Fixes #13748. (#13847) 2022-02-16 21:30:32 +01:00
ILLink.Substitutions.ios.xml [.NET] Rename our product assemblies. Fixes #13748. (#13847) 2022-02-16 21:30:32 +01:00
ILLink.Substitutions.macOS.xml [.NET] Rename our product assemblies. Fixes #13748. (#13847) 2022-02-16 21:30:32 +01:00
ILLink.Substitutions.tvos.xml [.NET] Rename our product assemblies. Fixes #13748. (#13847) 2022-02-16 21:30:32 +01:00
Makefile Workaround FirstChanceExceptionEventArgs being trimmed (#14803) 2022-04-25 08:07:24 +02:00
Makefile.generator [dotnet] Rename the DOTNET6 make variable to DOTNET. (#14441) 2022-03-21 15:56:57 +01:00
MinimumVersions.cs.in [src] Fix the TargetPlatform attribute for Mac Catalyst. (#13917) 2022-01-28 10:01:32 +01:00
MonoNativeFunctionWrapperAttribute.cs [d16-7] [src] Remove the remaining Classic code. (#8820) 2020-06-11 19:25:18 +02:00
MonoPInvokeCallbackAttribute.cs [d16-7] [src] Remove the remaining Classic code. (#8820) 2020-06-11 19:25:18 +02:00
MonoTouch.NUnitLite.maccatalyst.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.tvos.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
MonoTouch.NUnitLite.watchos.templ.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
OpenTK.dll.sources Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
README.md [runtime] Remove ObjCRuntime.nfloat in favor of System.Runtime.InteropServices.NFloat. (#14197) 2022-02-24 16:51:12 +01:00
Resources.Designer.cs [msbuild/generator] Pass .NET's C# compiler to bgen to use. Fixes #12922. (#14192) 2022-02-23 09:36:43 +01:00
Resources.resx [msbuild/generator] Pass .NET's C# compiler to bgen to use. Fixes #12922. (#14192) 2022-02-23 09:36:43 +01:00
Version.in
accelerate.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
accessibility.cs [Accessibility] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:33 -04:00
accounts.cs Remove unnecessary conditional defines from accounts.cs (#14448) 2022-04-01 15:55:43 -05:00
addressbook.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
addressbookui.cs [src] Add a global namespace using for a couple of namespaces. (#14356) 2022-03-10 08:07:54 +01:00
adservices.cs [introspection] Add/fix/remove availability attributes for Mac Catalyst to make introspection's Introduced test pass. (#10587) 2021-04-13 15:48:20 -04:00
adsupport.cs [catalyst][adsupport] Update xtro - framework is not available (#11625) 2021-05-20 09:30:55 -04:00
appclip.cs [AppClip] Add this framework to Mac Catalyst. (#14378) 2022-03-31 13:52:52 +02:00
appkit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
apptrackingtransparency.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
arkit.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
assetslibrary.cs [src] Change all usages of old-style availability attributes to new-style availability attributes. (#13332) 2021-11-10 18:12:12 +01:00
audiotoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
audiounit.cs [AudioUnit ]Remove unnecessary conditional defines from audiounit.cs (#14453) 2022-03-31 12:26:48 -04:00
authenticationservices.cs [AuthenticationServices] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:33 -04:00
automaticassessmentconfiguration.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
avfoundation.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
avkit.cs [AVKit] Remove unnecessary conditional defines from avkit.cs (#14447) 2022-03-31 13:11:11 -04:00
backgroundtasks.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
bmac.ikvm [xcode11] Stop building/shipping 32-bit Xamarin.Mac bits. Partial fix for #6300. (#6393) 2019-07-15 10:19:24 -07:00
btouch-native Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
btouch-native.in
btouch.cs [tools] Make the TargetFramework.DotNet* variables version-agnostic. (#14669) 2022-04-06 21:33:46 +02:00
btv Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
businesschat.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
bwatch Use relative paths in scripts. (#7545) 2019-12-10 12:47:30 +01:00
bwatch.in
callkit.cs [Callkit] Remove unnecessary conditional defines from callkit.cs (#14456) 2022-03-31 12:28:39 -04:00
carplay.cs [CarPlay] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:33 -04:00
cfnetwork.cs [CFNetwork] Move the CFHost and CFHTTP* types to the CFNetwork namespace in .NET. (#13761) 2022-01-19 08:07:06 +01:00
chip.cs [CHIP] Remove CHIP framework from dotnet (#14309) 2022-03-04 11:59:49 -05:00
classkit.cs [classkit] Add nullability to (generated and manual) bindings (#14280) 2022-03-10 06:44:04 -06:00
clockkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
cloudkit.cs [CloudKit] Remove API that no longer exists in the headers from .NET. (#14228) 2022-02-24 08:20:26 +01:00
compression.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
contacts.cs [Contacts] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
contactsui.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
coreanimation.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
coreaudiokit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
corebluetooth.cs [CoreBluetooth] Remove unnecessary conditional defines from corebluetooth.cs (#14461) 2022-03-31 12:48:23 -04:00
coredata.cs Remove unnecessary conditional defines from coredata.cs (#14464) 2022-04-01 10:14:14 -05:00
corefoundation.cs [generator] Use new CFArray.ArrayFromHandle instead of the existing NSArray API (#12415) 2021-08-12 14:19:25 -04:00
coregraphics.cs [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
corehaptics.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coreimage.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
corelocation.cs Remove unnecessary conditional defines from corelocation.cs (#14467) 2022-04-01 10:13:55 -05:00
corelocationui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
coremedia.cs [xcode12.2][intro] check for duplicate or inconsistent availability attributes (#9825) (#9856) 2020-10-14 13:57:14 -04:00
coremidi.cs [CoreMidi] Adopt XAMCORE_4_0 changes in .NET. (#13936) 2022-01-28 18:23:40 +01:00
coreml.cs [CoreML] Remove unnecessary conditional defines from coreml.cs (#14468) 2022-03-31 12:39:10 -04:00
coremotion.cs [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
corenfc.cs [src] Fix optional/required protocol members in .NET. (#13764) 2022-01-19 09:03:35 +01:00
coreservices.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
corespotlight.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
coretelephony.cs [CoreTelephony] Fix multiple issues. Fixes #13931. (#14242) 2022-02-24 23:41:52 +01:00
coretext.cs [CoreText] Move numerous CoreText fields to generated code for .NET. (#14132) 2022-02-15 08:24:34 +01:00
corevideo.cs [CoreVideo] Remove unnecessary conditional defines from corevideo.cs (#14470) 2022-03-31 12:40:09 -04:00
corewlan.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
custom-make.sh
devicecheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
dotnet.tmpl.csproj [src] Add .NET project files. (#13018) 2021-10-19 08:12:32 +02:00
error.cs [Localization] Add generator error messages (#7531) 2020-01-08 16:07:46 -05:00
eventkit.cs Remove unnecessary conditional defines from eventkit.cs (#14471) 2022-03-31 11:34:35 -05:00
eventkitui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
executionpolicy.cs [executionpolicy] Update for Xcode 11 beta 1 (#6774) 2019-08-14 22:07:55 -04:00
externalaccessory.cs [src/introspection] Adjust tests and availability attributes to work run on iOS/tvOS 12.4. Fixes #13957. (#14133) 2022-02-15 08:20:16 +01:00
fileprovider.cs [FileProvider] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
fileproviderui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
findersync.cs [d16-7] [src] Remove Classic code from the FinderSync, FileProvider[UI], ExternalAccessory, EventKit[UI], DeviceCheck, CoreWlan and CoreVideo frameworks. (#8803) 2020-06-10 09:28:29 +02:00
foundation.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
frameworks.sources [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
gamecontroller.cs [GameController] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
gamekit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
gameplaykit.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
generate-defines.csharp [src] Generate a define for each framework for every platform. (#10171) 2020-12-01 11:14:32 +01:00
generate-errors.csharp [build] generate Errors.Designer.cs for runtime assemblies (#8921) 2020-06-23 09:01:05 +02:00
generate-frameworks.csharp [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
generator-attribute-manager.cs [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
generator-attributes.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
generator-diff.mk
generator-enums.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
generator-filters.cs [generator] Add support for C#'s nint/nuint types 2021-12-03 08:02:49 +01:00
generator-typemanager.cs [runtime] Remove ObjCRuntime.nfloat in favor of System.Runtime.InteropServices.NFloat. (#14197) 2022-02-24 16:51:12 +01:00
generator.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
generator.csproj Replace IKVM.Reflection with MetadataLoadContext (#9864) 2021-05-21 15:15:59 +02:00
generator.sln [tests] Port the makefile-based generator tests to NUnit. (#3019) 2017-11-20 14:55:16 +01:00
glkit.cs Remove unnecessary conditional defines from glkit.cs (#14509) 2022-03-31 11:29:40 -05:00
global.css
healthkit.cs [healthkit] Add nullability to (generated and manual) bindings (#14730) 2022-04-28 11:54:23 -05:00
healthkitui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
homekit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
iad.cs [iAd] Remove this framework from .NET. (#13269) 2021-11-05 08:07:18 +01:00
identitylookup.cs [IdentityLookup] Adopt XAMCORE_4_0 changes in .NET. (#13989) 2022-01-31 21:46:17 +01:00
identitylookupui.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
imagecapturecore.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
imageio.cs Remove unnecessary conditional defines from imageio.cs (#14511) 2022-03-31 11:30:45 -05:00
imagekit.cs [ImageKit] Adopt XAMCORE_4_0 changes in .NET. (#14019) 2022-02-03 08:27:12 +01:00
inputmethodkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
intents.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
intentsui.cs [src] Fix optional/required protocol members in .NET. (#13764) 2022-01-19 09:03:35 +01:00
iosurface.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
ituneslibrary.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
javascriptcore.cs [JavaScriptCore] Bind JSValue.ToArray as NSArray in .NET. Fixes #12549. (#14090) 2022-02-08 10:39:14 +01:00
linkpresentation.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
localauthentication.cs [LocalAuthentication] Adjust code for .NET and fix availability of LAContext.MaxBiometryFailures (#13425) 2021-11-24 15:37:56 +01:00
localauthenticationembeddedui.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mailkit.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mapkit.cs Fix multiple API mistakes made in define removal (#14641) 2022-04-05 09:50:14 -04:00
mediaaccessibility.cs [MediaAccessibility] Adopt XAMCORE_4_0 changes in .NET. (#13984) 2022-02-01 11:31:45 +01:00
medialibrary.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mediaplayer.cs Remove unnecessary conditional defines from mediaplayer.cs (#14529) 2022-03-31 11:32:27 -05:00
mediasetup.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
mediatoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
messages.cs [Message[s|UI]] Add to Mac Catalyst. #13935. (#14268) 2022-02-28 22:37:14 +01:00
messageui.cs [xtro] Fix nullability checks on parameters (#10279) 2020-12-15 08:24:10 -05:00
metal.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
metalkit.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
metalperformanceshaders.cs [metalperformanceshaders] Add one troublesome missing method (#14557) 2022-04-04 11:08:55 -05:00
metrickit.cs Remove unnecessary conditional defines from metrickit.cs (#14512) 2022-04-01 10:13:29 -05:00
mlcompute.cs [MLCompute] Adopt XAMCORE_4_0 changes in .NET. (#13848) 2022-01-26 18:21:33 +01:00
mobilecoreservices.cs Remove unnecessary conditional defines from mobilecoreservices.cs (#14530) 2022-03-31 11:32:45 -05:00
modelio.cs [ModelIO] Remove MDLVoxxelArray API in iOS that don't exist in iOS for .NET. (#14239) 2022-02-24 22:59:27 +01:00
multipeerconnectivity.cs [MultiPeerConnectivity] Remove unnecessary conditional defines from multipeerconnectivity.cs (#14538) 2022-03-31 13:00:01 -04:00
naturallanguage.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
nearbyinteraction.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
network.cs [Network] Implement all bindings up to Xcode 13.1 (#13135) 2021-11-08 11:37:47 -05:00
networkextension.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
newsstandkit.cs [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
notificationcenter.cs [NotificationCenter] Remove unnecessary conditional defines from notificationcenter.cs (#14537) 2022-03-31 12:59:16 -04:00
opengl.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
opengles.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
opentk.csproj Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
oslog.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
packages.config [Localization] Add generator error messages (#7531) 2020-01-08 16:07:46 -05:00
passkit.cs [Passkit] Remove unnecessary conditional defines from passkit.cs (#14493) 2022-03-31 12:52:28 -04:00
pdfkit.cs [pdfkit] Remove unnecessary conditional defines from pdfkit.cs (#14494) 2022-03-31 12:55:16 -04:00
pencilkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
phase.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
photos.cs [NET Attribute Conversion] Add missing attributes in code-behind by re-running conversion (#14660) 2022-04-07 10:46:15 -05:00
photosui.cs [PhotosUI] Adopt XAMCORE_4_0 change in .NET. (#13825) 2022-01-25 12:17:59 +01:00
printcore.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
pushkit.cs [src] Fix optional/required protocol members in .NET. (#13764) 2022-01-19 09:03:35 +01:00
qtkit.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
quartzcomposer.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
quicklook.cs Fix multiple API mistakes made in define removal (#14641) 2022-04-05 09:50:14 -04:00
quicklookUI.cs Fix multiple API mistakes made in define removal (#14641) 2022-04-05 09:50:14 -04:00
quicklookthumbnailing.cs [QuickLookThumbnailing] Adopt XAMCORE_4_0 changes in .NET. (#13822) 2022-01-21 18:55:54 +01:00
replaykit.cs [ReplayKit] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
rosetta.pl
safariservices.cs [SafariServices] Remove unnecessary conditional defines from safariservices.cs (#14474) 2022-03-31 12:45:07 -04:00
scenekit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
screencapturekit.cs [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
screentime.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
scriptingbridge.cs [ScriptingBridge] Improve API and add nullability. (#13787) 2022-01-19 20:52:18 +01:00
searchkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
security.cs [Security] Remove unnecessary conditional defines from Security (#14460) 2022-03-31 12:43:44 -04:00
sensorkit.cs [SensorKit] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
shazamkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
social.cs [Social] Remove unnecessary conditional defines from social.cs (#14462) 2022-03-31 12:44:27 -04:00
soundanalysis.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
speech.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
spritekit.cs Remove unnecessary conditional defines from spritekit.cs (#14482) 2022-04-01 15:55:56 -05:00
storekit.cs [StoreKit] Remove unnecessary conditional defines from storekit.cs (#14479) 2022-03-31 12:45:44 -04:00
systemconfiguration.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
threadnetwork.cs [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
touch-unit.sources [master] Bump mono to pickup needed nunitlite changes. (#7812) 2020-02-07 09:56:41 -05:00
tvmlkit.cs [TVMLKit] Adopt XAMCORE_4_0 changes in .NET. (#13780) 2022-01-19 08:25:13 +01:00
tvservices.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
tvuikit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
twitter.cs [src] Update the constructors in the api definitions to return NativeHandle instead of IntPtr 2021-11-26 14:25:19 +01:00
uikit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
uniformtypeidentifiers.cs initial changes for Xcode13 UniformTypeIdentifiers Beta1 (#12008) 2021-06-23 16:27:51 -05:00
usernotifications.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
usernotificationsui.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
videosubscriberaccount.cs [VideoSubscriberAccount] Adopt XAMCORE_4_0 changes in .NET. (#13778) 2022-01-19 18:51:26 +01:00
videotoolbox.cs [VideoToolbox] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
vision.cs [C] Clear OpenTK namespace (#13767) 2022-02-14 18:50:23 +01:00
visionkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
watchconnectivity.cs [src] Fix optional/required protocol members in .NET. (#13764) 2022-01-19 09:03:35 +01:00
watchkit.cs [src] Remove the ModelAttribute.AutoGeneratedName property in .NET. (#13619) 2021-12-22 21:28:19 +01:00
webkit.cs [WebKit] Unseal a few members in XAMCORE_3_0+ that don't need to be sealed anymore. (#14054) 2022-02-04 07:55:54 +01:00
wkwebkit.cs [wkwebkit] Remove unnecessary conditional defines from wkwebkit.cs (#14506) 2022-03-31 12:58:03 -04:00
xamios.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xammac.pc.in
xammac.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xammaccatalyst.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xamtvos.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xamwatch.tmpl.csproj Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xkit.cs [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05: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, tvos, watchos, mac-unified, mac-full), each configured to execute the generator with the options for the corresponding profile.

Generator diff

Two special make targets can be used to compare the generated code (.g.cs files) changes between two branches.
This is required when making changes to the generator.

  1. Checkout the clean base branch (e.g main's HEAD) the feature (target) branch is based on.
  2. Do make generator-reference in xamarin-macios/src.
  3. Checkout the feature branch that requires the diff.
  4. Do make generator-diff.

Tip: do git diff | pbcopy in xamarin-ios/src/generator-reference and paste that anywhere (gist for instance).

Conditional compilation

These are the symbols defined for each platform assembly:

Assembly Symbols
Xamarin.iOS.dll IPHONE MONOTOUCH IOS
Xamarin.Mac.dll MONOMAC
Xamarin.WatchOS.dll IPHONE MONOTOUCH WATCH XAMCORE_3_0
Xamarin.TVOS.dll IPHONE MONOTOUCH TVOS XAMCORE_3_0

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

Core Assemblies

Currently 2 variations of the core Xamarin.iOS assembly and 4 variations of the core Xamarin.Mac assembly are produced:

### Xamarin.iOS ###

  • 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 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)

Classic Assemblies

The 32-bit Classic assemblies for iOS and Mac are no longer built and are now copied from the macios-binaries module.

The Classic assembly are copied in, tested, and shipped 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 (System.Runtime.InteropServices.NFloat in .NET).

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.

Native Enum Definition

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

Managed Enum Definition

[Native]
public enum NSTableViewDropOperation : nuint {
	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);
	}
}

#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
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

Source Localization

Coming soon!

See Localization Wiki for more details on our localization process

or the OneLocBuild Wiki for information on OneLocBuild.