xamarin-macios/src
Rolf Bjarne Kvinge c049fd33c3
[src] Fix min OS versions for .NET for numerous APIs. (#17871)
We don't need to specify a min OS version for APIs that are available in
the first OS version we support, in which case we just state that we support
said API.

This was done with this script:
https://gist.github.com/rolfbjarne/5374efba6757c724442137e89fa65113
2023-03-22 15:07:29 +01:00
..
ARKit Merge main into net7.0. 2022-10-17 10:21:24 +02:00
AVFoundation [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
AVKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
AVRouting [AVKit and AVRouting] Updates for Xcode14 Beta3 (#15811) 2022-09-08 15:13:15 -05:00
Accelerate [autoformat] Add the Accelerate, Accessibility and Accounts frameworks. (#16340) 2022-10-14 09:15:58 +02:00
Accessibility [autoformat] Add the Accelerate, Accessibility and Accounts frameworks. (#16340) 2022-10-14 09:15:58 +02:00
Accounts [autoformat] Add the Accelerate, Accessibility and Accounts frameworks. (#16340) 2022-10-14 09:15:58 +02:00
AdSupport [autoformat] Add the ARKit, AVFoundation, AVKit, AdSupport, AssetsLibrary and AuthenticationServices frameworks. (#16348) 2022-10-17 08:22:58 +02:00
AddressBook Add support for function pointers to BlockLiteral. (#17672) 2023-03-06 10:26:08 +01:00
AddressBookUI Remove not needed .gitignore. (#17218) 2023-01-13 00:41:56 -05:00
AppKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
AssetsLibrary [autoformat] Add the ARKit, AVFoundation, AVKit, AdSupport, AssetsLibrary and AuthenticationServices frameworks. (#16348) 2022-10-17 08:22:58 +02:00
AudioToolbox [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
AudioUnit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
AuthenticationServices [autoformat] Add the ARKit, AVFoundation, AVKit, AdSupport, AssetsLibrary and AuthenticationServices frameworks. (#16348) 2022-10-17 08:22:58 +02:00
BackgroundAssets [src/tests] Fix consistency between ObsoletedOSPlatform and UnsupportedOSPlatform attributes. (#17104) 2022-12-22 12:40:04 +01:00
BackgroundTasks [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
BusinessChat [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
CFNetwork [CFNetwork] Add nullability to forgotten files. (#17208) 2023-01-13 11:31:23 -05:00
CallKit [callkit] Add nullability to (generated and manual) bindings (#14275) 2022-03-02 18:54:10 -06:00
CarPlay [autoformat] Add the BackgroundTasks, BusinessChat, CFNetwork, CarPlay, Chip, ClockKit, CloudKit and Compression frameworks. (#16459) 2022-10-25 23:56:21 +02:00
Chip [autoformat] Add the BackgroundTasks, BusinessChat, CFNetwork, CarPlay, Chip, ClockKit, CloudKit and Compression frameworks. (#16459) 2022-10-25 23:56:21 +02:00
ClassKit [classkit] Add nullability to (generated and manual) bindings (#14280) 2022-03-10 06:44:04 -06:00
ClockKit Merge remote-tracking branch 'origin/net7.0-xcode14.1' into main-net7.0-xcode14.1 2022-11-03 08:21:55 +01:00
CloudKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
Compression [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
Contacts [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
CoreAnimation [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreBluetooth [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
CoreData [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreFoundation [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreGraphics [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreHaptics [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
CoreImage [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreLocation [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreML [autoformat] Add the CoreHaptics, CoreImage, CoreLocation, CoreML, CoreMedia, CoreMidi and CoreMotion frameworks. (#16689) 2022-11-10 10:29:40 +01:00
CoreMedia [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreMidi [CoreMidi] Add nullability to missing files. (#17214) 2023-01-13 00:41:35 -05:00
CoreMotion [autoformat] Add the CoreHaptics, CoreImage, CoreLocation, CoreML, CoreMedia, CoreMidi and CoreMotion frameworks. (#16689) 2022-11-10 10:29:40 +01:00
CoreServices [src] Create XML documentation when building our platform assemblies for .NET. Fixes #17395. (#17476) 2023-02-09 09:24:08 +01:00
CoreSpotlight [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
CoreTelephony [CoreTelephony] Add nullability to missing file. (#17217) 2023-01-13 00:42:19 -05:00
CoreText [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreVideo [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
CoreWlan [src] Remove unnecessary versions in .NET availability attributes. (#17061) 2022-12-16 08:21:32 +01:00
Darwin [dotnet] final blittable pinvoke (#17723) 2023-03-07 10:16:11 -05:00
EventKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
EventKitUI [src] Fix a few issues in some availability attributes. (#17003) 2022-12-12 10:44:27 +01:00
ExternalAccessory [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
FileProvider [cecil-tests] Fix check for unsupported attribute on API that's present in an assembly. (#17423) 2023-02-02 07:37:56 +01:00
FinderSync [autoformat] Add the CoreWlan, EventKit, EventKitUI, ExternalAccessory, FileProvider, FinderSync and Foundation frameworks. (#16714) 2022-11-11 08:21:20 +01:00
Foundation [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
GLKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
GameController [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
GameKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
GameplayKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
HealthKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
HomeKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
IOSurface [autoformat] Add the IOSurface, ImageCaptureCore, ImageIO, ImageKit, Intents, JavaScriptCore, LocalAuthentication, MLCompute, MapKit, MediaAccessibility, MediaLibrary, MediaPlayer and MediaToolbox frameworks. (#16755) 2022-11-15 17:41:59 +01:00
ImageCaptureCore [ImageCaptureCore] Add managed handlers for request methods (#17376) 2023-01-29 23:28:03 -08:00
ImageIO [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
ImageKit [autoformat] Add the IOSurface, ImageCaptureCore, ImageIO, ImageKit, Intents, JavaScriptCore, LocalAuthentication, MLCompute, MapKit, MediaAccessibility, MediaLibrary, MediaPlayer and MediaToolbox frameworks. (#16755) 2022-11-15 17:41:59 +01:00
InputMethodKit [inputmethodkit] Add nullability to (generated and manual) bindings (#14638) 2022-04-05 11:23:06 -05:00
Intents [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
JavaScriptCore [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
LocalAuthentication [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
MLCompute [autoformat] Add the IOSurface, ImageCaptureCore, ImageIO, ImageKit, Intents, JavaScriptCore, LocalAuthentication, MLCompute, MapKit, MediaAccessibility, MediaLibrary, MediaPlayer and MediaToolbox frameworks. (#16755) 2022-11-15 17:41:59 +01:00
MapKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MediaAccessibility [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MediaLibrary [autoformat] Add the IOSurface, ImageCaptureCore, ImageIO, ImageKit, Intents, JavaScriptCore, LocalAuthentication, MLCompute, MapKit, MediaAccessibility, MediaLibrary, MediaPlayer and MediaToolbox frameworks. (#16755) 2022-11-15 17:41:59 +01:00
MediaPlayer [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MediaToolbox [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MessageUI [autoformat] Add the MetalKit, MetalPerformanceShaders, MobileCoreServices, ModelIO, MultipeerConnectivity, NaturalLanguage and NearbyInteraction frameworks. (#16829) 2022-11-21 20:52:01 +01:00
Metal [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MetalKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MetalPerformanceShaders [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MetalPerformanceShadersGraph [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
MetricKit [MetricKit] Add availability attributes to MXMetaData.DictionaryRepresentation. (#17294) 2023-01-20 07:52:20 +01:00
MobileCoreServices [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
ModelIO [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
MultipeerConnectivity [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
NativeTypes [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
NaturalLanguage [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
NearbyInteraction [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
Network Add support for function pointers to BlockLiteral. (#17672) 2023-03-06 10:26:08 +01:00
NetworkExtension [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
NewsstandKit Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
NotificationCenter [autoformat] Add the Network, NetworkExtension and NotificationCenter frameworks. (#16795) 2022-11-17 17:12:32 -05:00
ObjCRuntime Add support for function pointers to BlockLiteral. (#17672) 2023-03-06 10:26:08 +01:00
OpenGL [src/tests] Fix consistency between ObsoletedOSPlatform and UnsupportedOSPlatform attributes. (#17104) 2022-12-22 12:40:04 +01:00
OpenGLES [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
PassKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
PdfKit [src] Remove unnecessary versions in .NET availability attributes. (#17061) 2022-12-16 08:21:32 +01:00
Photos [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
PhotosUI [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
PrintCore [autoformat] Add the PassKit, PdfKit, Photos, PhotosUI, PrintCore, QTKit, QuickLookUI, ReplayKit, SafariServices, ScreenCaptureKit, ScriptingBridge and SearchKit frameworks. (#16775) 2022-11-18 15:21:16 +01:00
PushToTalk [PushToTalk] Add missing Model attribute to the PTChannelManagerDelegate and PTChannelRestorationDelegate declarations. Fixes #16792. (#17273) 2023-01-19 07:39:45 +01:00
QTKit Remove not needed .gitignore. (#17218) 2023-01-13 00:41:56 -05:00
QuickLook [quicklook] Add nullability to (generated and manual) bindings (#14865) 2022-05-05 10:30:15 -05:00
QuickLookUI [autoformat] Add the PassKit, PdfKit, Photos, PhotosUI, PrintCore, QTKit, QuickLookUI, ReplayKit, SafariServices, ScreenCaptureKit, ScriptingBridge and SearchKit frameworks. (#16775) 2022-11-18 15:21:16 +01:00
ReplayKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
SafariServices [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
SceneKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
ScreenCaptureKit [autoformat] Add the PassKit, PdfKit, Photos, PhotosUI, PrintCore, QTKit, QuickLookUI, ReplayKit, SafariServices, ScreenCaptureKit, ScriptingBridge and SearchKit frameworks. (#16775) 2022-11-18 15:21:16 +01:00
ScriptingBridge [autoformat] Add the PassKit, PdfKit, Photos, PhotosUI, PrintCore, QTKit, QuickLookUI, ReplayKit, SafariServices, ScreenCaptureKit, ScriptingBridge and SearchKit frameworks. (#16775) 2022-11-18 15:21:16 +01:00
SearchKit [autoformat] Add the PassKit, PdfKit, Photos, PhotosUI, PrintCore, QTKit, QuickLookUI, ReplayKit, SafariServices, ScreenCaptureKit, ScriptingBridge and SearchKit frameworks. (#16775) 2022-11-18 15:21:16 +01:00
Security [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
SensorKit [autoformat] Add the Security, SensorKit, Social, SpriteKit, StoreKit, SystemConfiguration, TVServices, VideoToolbox, Vision and WKWebKit frameworks. (#16763) 2022-11-16 07:38:18 +01:00
SharedWithYouCore [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
Simd [autoformat] Update some new code. (#16921) 2022-12-01 08:31:34 +01:00
Social [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
SpriteKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
StoreKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
System.ComponentModel [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
System.Drawing [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
System.Net.Http [autoformat] Add the rest of the subdirectories in src/. (#16854) 2022-11-23 07:48:08 +01:00
SystemConfiguration [cecil-tests] Fix check for unsupported attribute on API that's present in an assembly. (#17423) 2023-02-02 07:37:56 +01:00
TVMLKit [tvmlkit] Add nullability to (generated and manual) bindings (#14912) 2022-05-18 09:04:15 -05:00
TVServices [src/tests] Fix consistency between ObsoletedOSPlatform and UnsupportedOSPlatform attributes. (#17104) 2022-12-22 12:40:04 +01:00
Twitter [twitter] Add nullability to (generated and manual) bindings (#14929) 2022-05-12 12:19:50 -05:00
UIKit [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
UserNotifications [usernotification] Add nullability to (generated and manual) bindings (#14941) 2022-05-12 12:15:13 -05:00
VideoSubscriberAccount [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
VideoToolbox [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
Vision [src] Remove unnecessary versions in .NET availability attributes. (#17061) 2022-12-16 08:21:32 +01:00
WatchConnectivity [autoformat] Add the iAd, iTunesLibrary, WebKit, WatchKit and WatchConnectivity frameworks. (#16831) 2022-11-21 12:06:40 +01:00
WatchKit [src] Remove a lot of redundant availability attributes. (#17024) 2022-12-14 22:36:09 +01:00
WebKit [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
XKit [src/generator/tests] Verify that availability attributes don't include useless version information. Fixes #11029. (#17090) 2022-12-21 07:44:02 +01:00
bgen [generator] Simplify/clarify code a little bit. (#17858) 2023-03-22 07:42:29 +01:00
generate-frameworks-constants [nnyeah] Start testing (#14913) 2022-05-09 09:42:34 -04:00
iAd [autoformat] Add the iAd, iTunesLibrary, WebKit, WatchKit and WatchConnectivity frameworks. (#16831) 2022-11-21 12:06:40 +01:00
iTunesLibrary [autoformat] Add the iAd, iTunesLibrary, WebKit, WatchKit and WatchConnectivity frameworks. (#16831) 2022-11-21 12:06:40 +01:00
rsp [src] Commit some of the response files. (#17718) 2023-03-07 17:32:27 +01:00
xlf
.gitignore Make our local .NET the default .NET for the build. (#15086) 2022-06-07 10:11:02 +02:00
AssemblyInfo.cs.in Fix the prerelease versioning for this branch. 2022-10-24 15:35:42 +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.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 [dotnet][macos] The only runtime is CoreCLR (not a feature) (#15340) 2022-07-15 10:24:01 +02:00
ILLink.Substitutions.tvos.xml [.NET] Rename our product assemblies. Fixes #13748. (#13847) 2022-02-16 21:30:32 +01:00
Makefile [src] Improve the generated project files a little bit. (#17812) 2023-03-17 11:48:05 +01:00
Makefile.generator [src] Commit some of the response files. (#17718) 2023-03-07 17:32:27 +01:00
MinimumVersions.cs.in [src] Parameterize the min OS versions when generating MinimumVersions.cs (#16984) 2022-12-12 10:43:48 +01:00
MonoNativeFunctionWrapperAttribute.cs
MonoPInvokeCallbackAttribute.cs
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
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 [Generator] Refactor TypeManager and add nullability. (#17559) 2023-03-07 11:02:04 -05:00
Version.in
accelerate.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
accessibility.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
accounts.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
addressbook.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
addressbookui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
adservices.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
adsupport.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
appclip.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
appkit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
apptrackingtransparency.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
arkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
assetslibrary.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
audiotoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
audiounit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
authenticationservices.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
automaticassessmentconfiguration.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
avfoundation.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
avkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
avrouting.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
backgroundassets.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
backgroundtasks.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
bmac.ikvm
btouch-native
btouch-native.in
btv
businesschat.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
bwatch
bwatch.in
callkit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
carplay.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
cfnetwork.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
chip.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
classkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
clockkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
cloudkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
compression.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
contacts.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
contactsui.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coreanimation.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
coreaudiokit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corebluetooth.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
coredata.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corefoundation.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
coregraphics.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corehaptics.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coreimage.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corelocation.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corelocationui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
coremedia.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coremidi.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coreml.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coremotion.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corenfc.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coreservices.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
corespotlight.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coretelephony.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
coretext.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corevideo.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
corewlan.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
custom-make.sh
devicecheck.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
dotnet.tmpl.csproj [src] Improve the generated project files a little bit. (#17812) 2023-03-17 11:48:05 +01:00
error.cs [autoformat] Add bgen.csproj. (#16456) 2022-10-25 22:47:07 +02:00
eventkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
eventkitui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
executionpolicy.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
extensionkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
externalaccessory.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
fileprovider.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
fileproviderui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
findersync.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
foundation.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
frameworks.sources [ImageCaptureCore] Add managed handlers for request methods (#17376) 2023-01-29 23:28:03 -08:00
gamecontroller.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
gamekit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
gameplaykit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
generate-defines.csharp
generate-errors.csharp
generate-frameworks.csharp [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
generator-diff.mk
generator.csproj [Generator] Refactor TypeManager and add nullability. (#17559) 2023-03-07 11:02:04 -05:00
generator.sln
glkit.cs [src] Remove a lot of redundant availability attributes. (#17024) 2022-12-14 22:36:09 +01:00
global.css
healthkit.cs [src] Fix a few inconsistencies in obsolete attributes. (#17447) 2023-02-06 08:49:00 +01:00
healthkitui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
homekit.cs Add ventura to mac tests configurations (#17349) 2023-02-13 11:08:18 -05:00
iad.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
identitylookup.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
identitylookupui.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
imagecapturecore.cs [ImageCaptureCore] Add missing binding (#17424) 2023-02-03 17:46:05 -08:00
imageio.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
imagekit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +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 [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
intentsui.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
iosurface.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
ituneslibrary.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
javascriptcore.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
linkpresentation.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
localauthentication.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
localauthenticationembeddedui.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
mailkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
mapkit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
mediaaccessibility.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
medialibrary.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
mediaplayer.cs [src] Fix a few inconsistencies in obsolete attributes. (#17447) 2023-02-06 08:49:00 +01:00
mediasetup.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
mediatoolbox.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
messages.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
messageui.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
metal.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
metalkit.cs [AppKit] Add missing setter for generateMipmaps in NSView (#17416) 2023-02-01 23:14:23 -08:00
metalperformanceshaders.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
metalperformanceshadersgraph.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
metrickit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
mlcompute.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
mobilecoreservices.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
modelio.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
multipeerconnectivity.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
naturallanguage.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
nearbyinteraction.cs [NearbyInteraction] Remove NISession.SetARSession from Mac Catalyst. (#17300) 2023-01-24 14:22:33 +01:00
network.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
networkextension.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
newsstandkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
notificationcenter.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
opengl.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
opengles.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
opentk.csproj
opentk.mk [src] Standardize a few variable names between platforms. (#17428) 2023-02-03 16:31:09 +01:00
oslog.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
packages.config
passkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
pdfkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
pencilkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
phase.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
photos.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
photosui.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
printcore.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
pushkit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
pushtotalk.cs [PushToTalk] Add missing Model attribute to the PTChannelManagerDelegate and PTChannelRestorationDelegate declarations. Fixes #16792. (#17273) 2023-01-19 07:39:45 +01:00
qtkit.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
quartzcomposer.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
quicklook.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
quicklookUI.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
quicklookthumbnailing.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
replaykit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
rosetta.pl
safariservices.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
scenekit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
screencapturekit.cs [main] Bump bindings to Xcode 14.2 (#17037) 2022-12-21 08:39:03 +01:00
screentime.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
scriptingbridge.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
searchkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
security.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
sensorkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
sharedwithyou.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
sharedwithyoucore.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
shazamkit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
social.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
soundanalysis.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
speech.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
spritekit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
storekit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
systemconfiguration.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
threadnetwork.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
touch-unit.sources
tvmlkit.cs [src] Remove a lot of redundant availability attributes. (#17024) 2022-12-14 22:36:09 +01:00
tvservices.cs [src] Remove a lot of redundant availability attributes. (#17024) 2022-12-14 22:36:09 +01:00
tvuikit.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
twitter.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
uikit.cs [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07:29 +01:00
uniformtypeidentifiers.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
usernotifications.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
usernotificationsui.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
videosubscriberaccount.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
videotoolbox.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
vision.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
visionkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01:00
watchconnectivity.cs [autoformat] Add all of src/. (#16958) 2022-12-06 11:07:43 +01:00
watchkit.cs [src] Remove a lot of redundant availability attributes. (#17024) 2022-12-14 22:36:09 +01:00
webkit.cs [src/generator] Stop implying Mac Catalyst availability attributes from the iOS attributes. (#17375) 2023-01-31 14:51:53 +01: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 [src] Fix min OS versions for .NET for numerous APIs. (#17871) 2023-03-22 15:07: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, 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.