xamarin-macios/src
Alex Soto 25aa7e8d10
[VideoToolbox] Update bindings to Xcode 10 Beta 1 (#4260)
2018-06-14 19:00:30 -05:00
..
ARKit Remove XamCore. and a couple of nint/nuint enums 2018-03-29 19:46:17 -06:00
AVFoundation Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
AVKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Accelerate PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Accounts PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AddressBook Optimize calls to BlockLiteral.SetupBlock to inject the block signature. (#3391) 2018-02-06 07:08:15 +01:00
AddressBookUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AppKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AssetsLibrary PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AudioToolbox Merge 15.6 into xcode9.3 2018-03-05 17:16:28 -05:00
AudioUnit Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
BusinessChat Remove XamCore. and a couple of nint/nuint enums 2018-03-29 19:46:17 -06:00
CFNetwork PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CallKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CarPlay [CarPlay] Adds Xcode 10 Beta 1 Bindings (#4217) 2018-06-12 12:12:20 -07:00
Carbon PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ClassKit Fix bindings since 15.7 does not use [p]mcs but csc 2018-05-03 19:12:02 -04:00
ClockKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CloudKit Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
Contacts Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
CoreAnimation PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreBluetooth [macos][corebluetooth] Enable CBConnectPeripheralOptionStartDelayKey on macOS (#4212) 2018-06-11 13:22:35 -07:00
CoreData PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreFoundation Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
CoreGraphics PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreImage Fix code to compile in csc. (#3414) 2018-02-07 22:03:17 +01:00
CoreLocation [corelocation] Update for beta 1 (macOS only changes) (#4215) 2018-06-11 17:42:18 -07:00
CoreML PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreMedia PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreMidi PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreMotion PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreServices PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreSpotlight PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreTelephony PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreText Optimize calls to BlockLiteral.SetupBlock to inject the block signature. (#3391) 2018-02-06 07:08:15 +01:00
CoreVideo [corevideo] Update for beta 1 (#4232) 2018-06-12 16:51:57 -04:00
CoreWlan PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Darwin Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
EventKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
EventKitUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ExternalAccessory PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
FinderSync PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Foundation [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
GLKit [glkit] Update (deprecate in favor of Metal) for beta1 (#4245) 2018-06-13 22:25:57 -04:00
GameController [GameController] Fixes macOS xtro output (#3505) 2018-02-15 21:56:51 -06:00
GameKit Remove XamCore. and a couple of nint/nuint enums 2018-03-29 19:46:17 -06:00
GameplayKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
HealthKit [healthkit] Fix typos in 'HKInsulinDeliveryReason' and 'HKBloodGlucoseMealTime' (#3503) (#3550) 2018-02-21 17:51:54 -05:00
HomeKit Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
IOSurface PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ImageIO PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ImageKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
InputMethodKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Intents Bump to use Xcode 10 beta 1 (#4179) 2018-06-08 18:45:24 -07:00
JavaScriptCore PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
LocalAuthentication PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MapKit Bump to use Xcode 10 beta 1 (#4179) 2018-06-08 18:45:24 -07:00
MediaAccessibility PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MediaLibrary PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MediaPlayer Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
MediaToolbox PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MessageUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Metal Optimize calls to BlockLiteral.SetupBlock to inject the block signature. (#3391) 2018-02-06 07:08:15 +01:00
MetalKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MetalPerformanceShaders PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MobileCoreServices PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ModelIO PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MultipeerConnectivity PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
NativeTypes PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
NaturalLanguage [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
NetworkExtension PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
NewsstandKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
NotificationCenter PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ObjCRuntime [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
OpenGL PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
OpenGLES PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
PassKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
PdfKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Photos PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
PhotosUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
PrintCore PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
QTKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
QuickLook PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
QuickLookUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
ReplayKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
SafariServices [safariservices] Updates (some deprecations) for beta 1 (#4206) 2018-06-11 05:37:06 -07:00
SceneKit [scenekit][tvos] SCNGeometryTessellator is now available in tvOS 12 (#4219) 2018-06-12 05:17:16 -07:00
ScriptingBridge PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
SearchKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Security Bump to use Xcode 10 beta 1 (#4179) 2018-06-08 18:45:24 -07:00
Simd Merge xcode9 into d15-4[-xi] (#2710) 2017-09-15 17:53:16 -04:00
Social PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
SpriteKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
StoreKit Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
System.ComponentModel
SystemConfiguration PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
TVMLKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
TVServices PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Twitter PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
UIKit [UIKit] Fix typo. Fixes bug #54544 'Binding typo DarkerSystemColosEnabled' (#3470) 2018-02-13 18:58:14 +01:00
UserNotifications PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
VideoSubscriberAccount PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
VideoToolbox Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
Vision PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
WKWebKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
WatchConnectivity PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
WatchKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
WebKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
iAd Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
.gitignore PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AssemblyInfo.cs.in [ObjCRuntime] Only use a 'BundleFinder' class when we don't have another internal type we can use. Fixes #56255. (#2099) 2017-05-16 20:50:10 +02:00
Compat.iOS.cs
Constants.iOS.cs.in [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
Constants.mac.cs.in [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
Constants.tvos.cs.in [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
Constants.watch.cs.in [watchos][accelerate] Enable Accelerate framework on watchOS (#3127) 2017-12-22 09:09:39 -05:00
Makefile Build with CSC instead of MCS (#3393) (#3578) 2018-02-26 09:20:54 -06:00
Makefile.generator [generator] Reuse the [RequiresSuper] attribute from the platform assemblies. (#3453) 2018-02-12 08:10:02 -05:00
MonoNativeFunctionWrapperAttribute.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MonoPInvokeCallbackAttribute.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MonoTouch.Dialog-1.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.Dialog-1.tvos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.tvos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
MonoTouch.NUnitLite.watchos.templ.csproj [src] Make project templates MSBuild-compatible. 2017-01-05 13:09:29 +01:00
Obsoletes.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
OpenTK.dll.sources
README.md PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Version.in
accelerate.cs
accounts.cs [accounts] Updates for beta 1 (#4216) 2018-06-11 17:42:33 -07:00
addressbook.cs
addressbookui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
adsupport.cs [adsupport] Update for beta 1 (#4213) 2018-06-12 05:19:16 -07:00
appkit.cs Fix default values for touchbar APIs in NSTextViewDelegate. (#3843) (#4071) 2018-05-14 15:04:36 -05:00
arkit.cs [arkit] Update to Xcode 10 beta 1 (ARKit 2.0) (#4209) 2018-06-14 13:44:45 -04:00
assetslibrary.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
audiotoolbox.cs
audiounit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
authenticationservices.cs [authenticationservices] New iOS-only framework added in beta 1 (#4234) 2018-06-13 14:06:37 -04:00
avfoundation.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
avkit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
bmac [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
bmac.csproj Merge Quote methods into a single class instead of multiple versions (#2153) 2017-06-06 12:32:25 -08:00
bmac.ikvm Create classic snapshot of bgen and update tests/scripts (#3153) 2018-01-03 15:41:49 -06:00
btouch-native.in [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
btouch.cs [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
btouch.csproj
btouch.in [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
businesschat.cs Remove XamCore. and a couple of nint/nuint enums 2018-03-29 19:46:17 -06:00
bwatch.in
callkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
carplay.cs [CarPlay] Adds Xcode 10 Beta 1 Bindings (#4217) 2018-06-12 12:12:20 -07:00
cfnetwork.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
classkit.cs Fix bindings since 15.7 does not use [p]mcs but csc 2018-05-03 19:12:02 -04:00
clockkit.cs [watchos][clockkit] Update for beta 1 (no new API) (#4229) 2018-06-12 13:35:51 -04:00
cloudkit.cs [src] Add a few missing [RequiresSuper] attributes. Fix #3253 (#3429) 2018-02-08 08:44:36 -05:00
contacts.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
contactsui.cs [Appkit] Fix xtro DesignatedInitializer output (#3474) 2018-02-14 08:09:43 -06:00
coreanimation.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coreaudiokit.cs [CoreAudioKit] Fix macOS xtro output (#3508) 2018-02-16 05:49:05 -06:00
corebluetooth.cs [macos][corebluetooth] Enable CBConnectPeripheralOptionStartDelayKey on macOS (#4212) 2018-06-11 13:22:35 -07:00
coredata.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
corefoundation.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coregraphics.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coreimage.cs [coreimage] Add new filters from Xcode 10 beta 1 (#4228) 2018-06-12 13:16:31 -04:00
corelocation.cs [corelocation] Update for beta 1 (macOS only changes) (#4215) 2018-06-11 17:42:18 -07:00
coremedia.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coremidi.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coreml.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coremotion.cs [CoreMotion] Update bindings to Xcode 10 Beta 1 (#4247) 2018-06-14 18:57:57 -05:00
corenfc.cs [CoreNFC] Update bindings to Xcode 10 beta 1 (#4246) 2018-06-13 22:21:17 -05:00
coreservices.cs
corespotlight.cs [tests] Add introspection tests to ensure there are native linking instructions for all frameworks. Fixes #3976 (#4194) (#4208) 2018-06-11 08:01:41 -07:00
coretelephony.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coretext.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
corevideo.cs [corevideo] Update for beta 1 (#4232) 2018-06-12 16:51:57 -04:00
corewlan.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
custom-make.sh
devicecheck.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
error.cs [generator] Fix bug 52573 - Add nowarn and warnaserror to btouch/bmac (#1882) 2017-03-22 07:52:24 -05:00
eventkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
eventkitui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
externalaccessory.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
fileprovider.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
fileproviderui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
findersync.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
foundation.cs [Intents] Adds Xcode 10 Beta 1 bindings (#4243) 2018-06-14 07:10:22 -05:00
frameworks.sources [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
gamecontroller.cs [GameController] Fixes macOS xtro output (#3505) 2018-02-15 21:56:51 -06:00
gamekit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
gameplaykit.cs [GameplayKit] Update bindings to Xcode 10 Beta 1 (#4248) 2018-06-13 21:46:36 -05:00
generate-frameworks.csharp [generator] Generate the list of frameworks in each platform based on the information in the makefiles. (#1687) 2017-02-13 18:01:16 +01:00
generator-attribute-manager.cs [generator] Teach generator about WrapAttribute on Getters and Setters (#3388) 2018-02-05 21:14:08 -06:00
generator-attributes.cs [generator] Reuse the [RequiresSuper] attribute from the platform assemblies. (#3453) 2018-02-12 08:10:02 -05:00
generator-diff.mk [generator] Exclude pdb files from the diff. (#2287) 2017-07-04 07:29:17 +02:00
generator-enums.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
generator-filters.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
generator-ikvm.csproj.in PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
generator-typemanager.cs [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
generator.cs [generator] Fixes WrapAttribute usage with interface protocols (#3885) (#4210) 2018-06-11 10:26:30 -07:00
generator.sln [tests] Port the makefile-based generator tests to NUnit. (#3019) 2017-11-20 14:55:16 +01:00
glkit.cs [glkit] Update (deprecate in favor of Metal) for beta1 (#4245) 2018-06-13 22:25:57 -04:00
global.css
healthkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
healthkitui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
homekit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
iad.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
identitylookup.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
imageio.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
imagekit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
inputmethodkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
intents.cs [Intents] Adds Xcode 10 Beta 1 bindings (#4243) 2018-06-14 07:10:22 -05:00
intentsui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
iosurface.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
javascriptcore.cs [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
localauthentication.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
mapkit.cs Bump to use Xcode 10 beta 1 (#4179) 2018-06-08 18:45:24 -07:00
mediaaccessibility.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
medialibrary.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
mediaplayer.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
mediatoolbox.cs
messages.cs [messages] Updates for beta 1 (#4230) 2018-06-12 13:59:46 -04:00
messageui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
metal.cs [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
metalkit.cs [metalkit] Add 'MTKTextureLoader' missing bindings (fix xtro) (#3561) (#3566) 2018-02-22 12:08:06 -05:00
metalperformanceshaders.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
mobilecoreservices.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
modelio.cs [modelio] MDLVoxelArray should have a base type of MDLObject (fix xtro) (#3563) (#3572) 2018-02-22 17:18:22 -05:00
monotouch-dialog.sources
multipeerconnectivity.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
naturallanguage.cs [NaturalLanguage] Added the new framework for Xcode10. (#4236) 2018-06-14 19:21:44 +02:00
networkextension.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
newsstandkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
notificationcenter.cs [Appkit] Fix xtro DesignatedInitializer output (#3474) 2018-02-14 08:09:43 -06:00
opengl.cs
opengles.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
opentk.csproj
passkit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
pdfkit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
photos.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
photosui.cs [tests] Add introspection tests to ensure there are native linking instructions for all frameworks. Fixes #3976 (#4194) (#4208) 2018-06-11 08:01:41 -07:00
printcore.cs [PrintCore] Add first pass of bindings (#1067) 2016-11-02 13:52:47 -05:00
pushkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
qtkit.cs [Appkit] Fix xtro DesignatedInitializer output (#3474) 2018-02-14 08:09:43 -06:00
quartzcomposer.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
quicklook.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
quicklookUI.cs [QuickLookUI] Fixes macOS xtro output (#3475) 2018-02-15 09:08:39 -06:00
replaykit.cs [ReplayKit] Update bindings to Xcode 10 Beta 1 (#4249) 2018-06-14 14:49:12 -05:00
rosetta.pl
safariservices.cs [safariservices] Updates (some deprecations) for beta 1 (#4206) 2018-06-11 05:37:06 -07:00
scenekit.cs [scenekit][tvos] SCNGeometryTessellator is now available in tvOS 12 (#4219) 2018-06-12 05:17:16 -07:00
scriptingbridge.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
searchkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
security.cs [security] Strongly typed key generation (#3502) (#3676) 2018-03-06 17:40:19 -05:00
social.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
speech.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
spritekit.cs Bump to use Xcode 10 beta 1 (#4179) 2018-06-08 18:45:24 -07:00
storekit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
system-drawing.sources
systemconfiguration.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
touch-unit.sources
tvmlkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
tvservices.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
twitter.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
uikit.cs [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
usernotifications.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
usernotificationsui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
videosubscriberaccount.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
videotoolbox.cs [VideoToolbox] Update bindings to Xcode 10 Beta 1 (#4260) 2018-06-14 19:00:30 -05:00
vision.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
watchconnectivity.cs [watchconnectivity] Updates for beta 1 (#4205) 2018-06-11 05:34:40 -07:00
watchkit.cs [watchkit] Update for beta 1 (#4204) 2018-06-11 05:31:52 -07:00
webkit.cs [generator] Register models with unique names to not match platform types. Fixes #3875. (#3879) (#3888) 2018-04-06 19:58:20 +02:00
wkwebkit.cs Merge branch 'xcode9.3' into d15-7-merge-xcode9.3 2018-03-29 19:31:01 -04:00
xamios.tmpl.csproj [src] Update csproj templates for platform assemblies to build correctly. (#3417) 2018-02-07 21:51:50 +01:00
xammac.pc.in
xammac.tmpl.csproj [src] Update csproj templates for platform assemblies to build correctly. (#3417) 2018-02-07 21:51:50 +01:00
xamtvos.tmpl.csproj [src] Update csproj templates for platform assemblies to build correctly. (#3417) 2018-02-07 21:51:50 +01:00
xamwatch.tmpl.csproj [src] Update csproj templates for platform assemblies to build correctly. (#3417) 2018-02-07 21:51:50 +01:00

README.md

Platform assemblies

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

Generator

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

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

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

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

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

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 master'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
monotouch.dll IPHONE MONOTOUCH IOS
Xamarin.iOS.dll IPHONE MONOTOUCH IOS XAMCORE_2_0
XamMac.dll MONOMAC XAMARIN_MAC
Xamarin.Mac.dll MONOMAC XAMARIN_MAC XAMCORE_2_0
Xamarin.WatchOS.dll IPHONE MONOTOUCH WATCH XAMCORE_2_0 XAMCORE_3_0
Xamarin.TVOS.dll IPHONE MONOTOUCH TVOS XAMCORE_2_0 XAMCORE_3_0

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

Core Assemblies

Currently 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.

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
XAMCORE_2_0 defined for the Unified assemblies; this should be used for most conditions dealing with API differences between Unified and Classic assemblies
COREBUILD defined when building the intermediate core.dll assembly against which the code generator will produce bindings

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

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