xamarin-macios/src
Aaron Bockover 9c028036b4 The NSBackingStore enum is not deprecated (#5144) 2018-11-20 02:54:19 -05:00
..
ARKit Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
AVFoundation [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02: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 Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
AddressBookUI PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AppKit The NSBackingStore enum is not deprecated (#5144) 2018-11-20 02:54:19 -05:00
AssetsLibrary PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AudioToolbox Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
AudioUnit Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
BusinessChat Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
CFNetwork [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
CallKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CarPlay [CarPlay] Update bindings to Xcode 10 Beta 2 2018-06-19 16:52:36 -05: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-29 17:40:16 -04:00
ClockKit [clockkit] Add missing 'CLKComplicationFamily' enum values (#4818) 2018-09-14 18:45:37 -04:00
CloudKit [cloudkit] Review missing 'init' on some types, in particular allow them outside watchOS 2018-08-22 14:56:51 -04:00
Compression Bump to mono:2018-06 (#4277) 2018-10-10 11:02:28 -04:00
Contacts [contacts] Update for beta 2 (#4298) 2018-06-20 11:26:49 -04:00
CoreAnimation PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreBluetooth [src] Adjust availability attributes to match API available on older macOS versions. 2018-07-03 16:55:30 +02:00
CoreData PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreFoundation [CoreFoundation] Implement missing dispatch API. Fixes #4606. (#4967) 2018-10-17 14:42:29 +02:00
CoreGraphics [coregraphics] Added ScreenImage overload for Xamarin Mac allowing for more options (#5056) 2018-10-31 11:12:44 -04:00
CoreImage [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02: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 Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
CoreMidi Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02: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 [ios][coretelephony] Update for GM (#4803) 2018-09-13 03:56:20 -04:00
CoreText Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
CoreVideo Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02: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 [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
GLKit [glkit] Update (deprecate in favor of Metal) for beta1 (#4245) 2018-06-13 22:25:57 -04:00
GameController [gamecontroller] Update for Xcode 10.1 beta 2 (#4996) 2018-10-17 15:13:04 -04:00
GameKit [gamekit] Update for beta2 (largely deprecations) (#4374) 2018-07-01 21:16:57 -04:00
GameplayKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
HealthKit [HealthKit] Use generated NSString-backed enums. Fixes #4183. (#4786) 2018-09-12 11:23:02 -04:00
HomeKit [homekit] Remove export for 'RemoveUser' (iOS prohibited) (#4542) 2018-08-01 08:13:49 -04:00
IOSurface [IOSurface] Update for Xcode10-beta2 (#4322) 2018-06-22 16:41:11 +02:00
ImageCaptureCore [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
ImageIO [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02: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 [watchos][intents] Enable MediaPlayer related API (now enabled for watchOS) (#4505) 2018-07-26 08:38:12 -04: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 [mapkit] Fix compatibility stub for MKUserTrackingBarButtonItem which is only required for iOS (and not other platforms) (#4381) 2018-07-03 13:01:32 -04:00
MediaAccessibility Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
MediaLibrary PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MediaPlayer [mediaplayer] Fix NRE in MPNowPlayingInfoCenter wrt null dictionary entries. Fixes #4988 (#4997) 2018-10-17 08:23:47 -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 [Metal] Fixe the size of structures. Fixes #4611 (#4838) 2018-09-21 09:33:27 -04: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 [coreservices] Update up to beta 5 (#4590) 2018-08-08 12:38:03 -04: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] Fix helper API for `NLTagger.GetTag` and cleanup/fix other API. Fixes #4774 (#4782) 2018-09-11 08:40:42 -04:00
Network [CoreFoundation] Refactor Dispatch code to take advantage of recent code improvements. (#4939) 2018-10-11 07:26:55 +02:00
NetworkExtension [networkextension] Obsolete NWPath and NWHostEndpoint default constructors (#4624) 2018-08-15 21:44:13 -04: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 Add a UserType flag for registered types, and use it to improve the performance for is_user_type. (#5017) 2018-10-22 07:57:16 +02:00
OpenGL Initial OpenGL deprecation (#4458) 2018-07-20 08:45:47 -05:00
OpenGLES Reuse Libraries.*.Handle instead of dlopen'ing multiple times the same libraries. (#4911) 2018-10-03 14:29:42 +02:00
PassKit [PassKit] Added support for Xcode 10 up to beta 3. (#4423) 2018-07-13 21:21:16 -05:00
PdfKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
Photos [Photos] Update for Xcode10-beta2. (#4371) 2018-07-03 17:26:40 +02:00
PhotosUI [Photos] Update for Xcode10-beta2. (#4371) 2018-07-03 17:26:40 +02:00
PrintCore Bind 2 high visibility PrintCore APIs (#4933) 2018-10-11 09:14:48 -05:00
QTKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
QuickLook [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02: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] Fix `SCNAction.TimingFunction` signature to `Func<float,float>`. Fixes #5058 (#5068) 2018-11-05 14:20:03 -05: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 Merge xcode10.1 into master 2018-10-31 15:54:48 -04: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 Merge branch 'd15-8' into xcode10-rebase-15.8 2018-08-13 21:04:56 -04:00
StoreKit [StoreKit] Update bindings to Xcode 10 Beta 1, nothing in beta2 (#4367) 2018-06-29 13:50:20 -05:00
System.ComponentModel Build the platform assemblies. 2016-04-24 14:47:26 -04:00
SystemConfiguration [systemconfiguration][tvos] CaptiveNetwork API are now marked as prohibited in tvOS (#4357) 2018-06-29 09:35:05 -04: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] Preserve method associated with `updateSearchResultsForSearchController:`. Fixes #5024 (#5027) 2018-10-22 21:54:54 -04:00
UserNotifications PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
VideoSubscriberAccount [videosubscriberaccount] Update for beta 1 (#4275) 2018-06-15 16:43:23 -04:00
VideoToolbox Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
Vision [Vision] Update bindings to Xcode 10 beta 1, nothing in beta 2 (#4321) 2018-08-01 10:50:13 -04: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 [WebKit] Update bindings to Xcode 10 Beta 1, Nothing on beta 2 or 3 (#4443) 2018-07-13 21:19:57 -05:00
iAd [iAd] Xcode 10 beta 3 support. (#4425) 2018-07-13 16:23:44 +02:00
iTunesLibrary [iTunesLibrary] Xcode 10 beta 3 support. (#4462) 2018-08-08 16:34:16 +02:00
.gitignore [generator] Build using csproj instead of manual csc command. Partial fix for #4384. 2018-08-23 13:49:40 +02:00
AssemblyInfo.cs.in [mtouch] Fix [InternalsVisibleTo] attribute parsing. Fixes #4895 (#4917) 2018-10-03 15:00:59 -04:00
Compat.iOS.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
Constants.iOS.cs.in [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
Constants.mac.cs.in [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
Constants.tvos.cs.in [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
Constants.watch.cs.in [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
Makefile [src] Handle some troublesome characters in branch names better. Fixes #5097. (#5100) 2018-11-07 15:34:36 +01:00
Makefile.generator Clone files if possible whenever it makes sense. (#5049) 2018-10-29 16:09:30 +01: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.NUnitLite.templ.csproj [build] Remove MT.D source build and replace it with a binary (#3957) 2018-04-23 13:08:58 -05:00
MonoTouch.NUnitLite.tvos.templ.csproj [build] Remove MT.D source build and replace it with a binary (#3957) 2018-04-23 13:08:58 -05: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 Build the platform assemblies. 2016-04-24 14:47:26 -04:00
README.md [src] Use generated rsp files when executing the generator. 2018-08-23 13:38:32 +02:00
Version.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
accelerate.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
accounts.cs [accounts] Update for beta 2 (#4297) 2018-06-20 11:25:51 -04:00
addressbook.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
addressbookui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
adsupport.cs [macos][adsupport] Update for GM (#4800) 2018-09-13 00:37:33 -04:00
appkit.cs [mac] Remove unnecessary PostSnippet and backing fields (#5101) 2018-11-09 16:01:15 -06:00
arkit.cs [arkit] Update for Xcode 10 GM (#4797) 2018-09-12 22:14:00 -04:00
assetslibrary.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
audiotoolbox.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
audiounit.cs [AudioToolbox] Add Xcode 10 beta 5 support. (#4559) 2018-08-02 20:29:15 -04:00
authenticationservices.cs [authenticationservices] New iOS-only framework added in beta 1 (#4234) 2018-06-13 14:06:37 -04:00
avfoundation.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
avkit.cs [AVKit] Update for Xcode10-beta2 (#4314) 2018-06-21 16:23:36 +02:00
bmac [XM] Only use bgen, not bmac[-mobile-mono]. Fixes #3675. (#4785) 2018-09-13 15:27:34 +02: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 Remove references to bugzilla and replace with github (#4920) 2018-10-04 09:43:55 -04:00
btouch.in [generator] Use target framework to determine the platform. (#1690) 2017-02-17 14:53:58 -05:00
businesschat.cs Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
bwatch.in Build the platform assemblies. 2016-04-24 14:47:26 -04:00
callkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
carplay.cs [CarPlay] Update for Xcode 10 beta 6. (#4650) 2018-08-20 14:49:02 -04:00
cfnetwork.cs [coreservices] Update up to beta 5 (#4590) 2018-08-08 12:38:03 -04:00
classkit.cs Fix bindings since 15.7 does not use [p]mcs but csc 2018-05-29 17:40:16 -04:00
clockkit.cs [watchos][clockkit] Update for GM (#4801) 2018-09-13 05:54:08 -04:00
cloudkit.cs [cloudkit] Review missing 'init' on some types, in particular allow them outside watchOS 2018-08-22 14:56:51 -04:00
compression.cs [Compression] Add compression framework bindings. (#3942) 2018-05-11 15:54:31 -04:00
contacts.cs [Contacts] Update bindings to Xcode 10 Beta 4 (#4475) 2018-07-20 14:40:34 -05:00
contactsui.cs [Appkit] Fix xtro DesignatedInitializer output (#3474) 2018-02-14 08:09:43 -06:00
coreanimation.cs [coreanimation] Add new API up to b5 (#4571) 2018-08-07 13:49:30 -04:00
coreaudiokit.cs [CoreAudioKit] Fix macOS xtro output (#3508) 2018-02-16 05:49:05 -06:00
corebluetooth.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
coredata.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
corefoundation.cs [CoreFoundation] Fetch a few static values lazily. (#4924) 2018-10-09 15:51:17 +02:00
coregraphics.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
coreimage.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05: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 [coremidi] Update to beta 5 (#4550) 2018-08-02 09:15:09 -04:00
coreml.cs [coreml] Update for Xcode 10 GM (#4798) 2018-09-12 22:14:19 -04:00
coremotion.cs [CoreMotion] Update to Xcode 10 Beta 4 (#4478) 2018-07-20 14:42:29 -05:00
corenfc.cs [CoreNFC] Update bindings to Xcode 10 beta 1 (#4246) 2018-06-13 22:21:17 -05:00
coreservices.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
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 Merge xcode10.1 into master 2018-10-31 15:54:48 -04:00
coretext.cs [CoreText] Update bindings to Xcode 10 Beta 1 & 2 (#4368) 2018-07-03 09:48:10 -05:00
corevideo.cs [src] Adjust availability attributes to match API available on older macOS versions. 2018-07-03 16:55:30 +02:00
corewlan.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
custom-make.sh Build the platform assemblies. 2016-04-24 14:47:26 -04:00
devicecheck.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
error.cs Remove references to bugzilla and replace with github (#4920) 2018-10-04 09:43:55 -04:00
eventkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -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 [FinderSync] Update to Xcode 10 Beta 4 (#4479) 2018-07-20 14:43:01 -05:00
foundation.cs Remove some [Sealed] in XAMCORE_4_0 where not necessary (#5108) 2018-11-12 14:51:35 -06:00
frameworks.sources [mac] Remove unnecessary PostSnippet and backing fields (#5101) 2018-11-09 16:01:15 -06:00
gamecontroller.cs [gamecontroller] Update for Xcode 10.1 beta 2 (#4996) 2018-10-17 15:13:04 -04:00
gamekit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
gameplaykit.cs Merge branch 'd15-8' into xcode10-rebase-15.8 2018-08-13 21:04:56 -04:00
generate-frameworks.csharp [generator] Generate the list of frameworks in each platform based on the information in the makefiles. (#1687) 2017-02-13 18:01:16 +01:00
generator-attribute-manager.cs Remove references to bugzilla and replace with github (#4920) 2018-10-04 09:43:55 -04:00
generator-attributes.cs [CoreFoundation, Network, Security] Address review comments 2018-07-31 16:30:23 -04: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 [coreimage] Add generator support for CIVector[] and enable it in CIMeshGenerator. Fix #4226 (#4715) 2018-08-29 13:29:34 -04:00
generator-typemanager.cs Remove references to bugzilla and replace with github (#4920) 2018-10-04 09:43:55 -04:00
generator.cs [generator] Throw PlatformNotSupportException in 32-bit mode for 64-bit-only iOS API. Fixes #4689. (#4954) 2018-10-11 08:53:44 +02:00
generator.csproj Make the bgen build respect the BUILD_DIR variable. Fixes maccore#959. (#4700) 2018-08-27 16:46:01 +02:00
generator.csproj.in [src] Use generated rsp files when executing the generator. 2018-08-23 13:38:32 +02: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 Build the platform assemblies. 2016-04-24 14:47:26 -04:00
healthkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
healthkitui.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
homekit.cs [homekit] Remove export for 'RemoveUser' (iOS prohibited) (#4542) 2018-08-01 08:13:49 -04:00
iad.cs [iad] Update for beta 5 (#4544) 2018-08-02 10:13:15 -04:00
identitylookup.cs [identitylookup] Update for Xcode 10.1 beta 3 (#4998) 2018-10-16 20:49:01 -04:00
identitylookupui.cs [IdentityLookupUI] Add bindings for Xcode 10 Beta 1 (#4281) 2018-06-15 20:46:35 -05:00
imagecapturecore.cs [ImageCaptureCore] Add missing availability attribute. Fixes maccore#1126. (#5109) 2018-11-09 10:39:07 -05:00
imageio.cs [imageio] Add availability attributes to `Maker*Dictionary` fields (#4753) 2018-09-05 13:27:46 -04:00
imagekit.cs [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
inputmethodkit.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
intents.cs [intents] Update for Xcode 10.1 beta 3 (#4999) 2018-10-16 20:49:16 -04:00
intentsui.cs [IntentsUI] Update for Xcode 10 beta 6 (#4640) 2018-08-20 09:20:01 -04:00
iosurface.cs [IOSurface] Update for Xcode10-beta2 (#4322) 2018-06-22 16:41:11 +02:00
ituneslibrary.cs [iTunesLibrary] Xcode 10 beta 3 support. (#4462) 2018-08-08 16:34:16 +02: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 Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05: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 Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
mediatoolbox.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
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 [Metal/SpriteKit] Fix availability attributes on a few API. (#5033) 2018-10-24 23:58:14 +02:00
metalkit.cs [metalkit] Add 'MTKTextureLoader' missing bindings (fix xtro) (#3561) (#3566) 2018-02-22 12:08:06 -05:00
metalperformanceshaders.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
mobilecoreservices.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
modelio.cs [intro] Fix missing availability attributes that triggers failures on iOS9 (and lower) (#4717) 2018-08-28 21:25:41 -04:00
multipeerconnectivity.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
naturallanguage.cs [naturallanguage] Fix helper API for `NLTagger.GetTag` and cleanup/fix other API. Fixes #4774 (#4782) 2018-09-11 08:40:42 -04:00
network.cs [Network] Update to Xcode 10 beta 3. (#4686) 2018-08-28 15:11:25 -04:00
networkextension.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -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 Build the platform assemblies. 2016-04-24 14:47:26 -04:00
opengles.cs [opengles] Update for beta 2 (deprecation warnings) (#4366) 2018-06-29 09:35:54 -04:00
opentk.csproj Build the platform assemblies. 2016-04-24 14:47:26 -04:00
passkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
pdfkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
photos.cs [Photos] Update bindings to Xcode 10 Beta 4 (#4484) 2018-07-20 14:46:24 -05:00
photosui.cs [Photos] Update for Xcode10-beta2. (#4371) 2018-07-03 17:26:40 +02: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 [macos][quartzcomposer] Update for beta 4 (#4493) 2018-07-24 08:24:42 -04:00
quicklook.cs [QuickLook] Add [ThreadSafe] to `QLThumbnailReply` and `QLFileThumbnailRequest` (#5119) 2018-11-17 23:08:09 -05:00
quicklookUI.cs [QuickLook|UI] Update bindings to Xcode 10 Beta 1 (#4264) 2018-06-15 02:28:06 -05:00
replaykit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
rosetta.pl Build the platform assemblies. 2016-04-24 14:47:26 -04:00
safariservices.cs [safariservices] Updates (some deprecations) for beta 1 (#4206) 2018-06-11 05:37:06 -07:00
scenekit.cs [scenekit] Fix `SCNAction.TimingFunction` signature to `Func<float,float>`. Fixes #5058 (#5068) 2018-11-05 14:20:03 -05: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] Update for beta 5 (only) change (#4600) 2018-08-09 10:12:07 -04: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 [Metal/SpriteKit] Fix availability attributes on a few API. (#5033) 2018-10-24 23:58:14 +02:00
storekit.cs [storekit] Update for beta 5 (#4535) 2018-07-31 21:50:55 -04:00
system-drawing.sources Build the platform assemblies. 2016-04-24 14:47:26 -04:00
systemconfiguration.cs [systemconfiguration][tvos] CaptiveNetwork API are now marked as prohibited in tvOS (#4357) 2018-06-29 09:35:05 -04:00
touch-unit.sources [src] Bump Touch.Unit dependency to get HttpTextWriter addition. (#88) 2016-05-26 15:34:47 +02:00
tvmlkit.cs Update for xcode 10 beta 5 (#4527) 2018-07-31 08:49:19 -04:00
tvservices.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
tvuikit.cs [tvos][tvuikit] Update for beta 5 (#4533) 2018-07-31 21:50:10 -04:00
twitter.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
uikit.cs Merge xcode10.1 into master 2018-10-31 15:54:48 -04:00
usernotifications.cs [foundation/usernotifications] Use NSString to preserve localization (#4697) 2018-08-27 10:07:36 -04:00
usernotificationsui.cs [UserNotificationsUI] Update the fro Xcode 10. (#4268) 2018-06-18 16:05:20 +02:00
videosubscriberaccount.cs [videosubscriberaccount] Update for beta 1 (#4275) 2018-06-15 16:43:23 -04:00
videotoolbox.cs [VideoToolbox] Update bindings to Xcode 10 Beta 1 (#4260) 2018-06-14 19:00:30 -05:00
vision.cs [Vision] Update bindings to Xcode 10 beta 1, nothing in beta 2 (#4321) 2018-08-01 10:50:13 -04:00
watchconnectivity.cs [watchconnectivity] Updates for beta 1 (#4205) 2018-06-11 05:34:40 -07:00
watchkit.cs [watchos][watchkit] Update for GM (#4799) 2018-09-12 23:03:19 -04:00
webkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2018-10-15 10:43:17 -05:00
wkwebkit.cs Merge branch 'xcode9.3' 2018-04-03 14:14:07 -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 Build the platform assemblies. 2016-04-24 14:47:26 -04:00
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
xkit.cs [NSLayoutManager] Complete bindings for NSLayoutManager. Fixes #4740. (#4853) 2018-10-01 14:17:28 +02: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 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