xamarin-macios/src
Rolf Bjarne Kvinge bb09ab8a24 [generator] Treat arm64_32 as arm64 when dealing with objc_msgSend behavior. 2019-05-10 08:28:43 +02:00
..
ARKit Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
AVFoundation [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01: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 [NSLayoutManager] Complete bindings for NSLayoutManager. Fixes #4740. (#4853) 2019-01-29 15:37:48 -05:00
AssetsLibrary PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
AudioToolbox Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
AudioUnit [AudioUnit] Adds 'Latency' property [get|set]ter to AudioUnit object (#5221) 2018-12-10 13:13:20 -05:00
BusinessChat Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
CFNetwork [xcode10.2] Apply fixes for cve-2018-8292 publicly (#5529) 2019-02-01 11:50:36 -05: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 Remove private API (#5915) 2019-04-25 10:16:22 -04:00
Compression [tests] Add introspection tests for Constants.*.cs.in. Fixes #5047 (#5159) 2018-11-22 13:24:55 -05:00
Contacts [contacts] Update for beta 2 (#4298) 2018-06-20 11:26:49 -04:00
CoreAnimation Remove private API (#5915) 2019-04-25 10:16:22 -04:00
CoreBluetooth Remove private API (#5915) 2019-04-25 10:16:22 -04:00
CoreData PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreFoundation [corefoundation] Add missing CFStringTransform API. Fixes #5705 (#5712) 2019-03-06 08:04:17 -05:00
CoreGraphics [CoreGraphics] Fix CGColorConversionInfo on arm64_32. 2019-05-10 08:28:43 +02: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 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04: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 [mac][coreservices] Add recent/missing enums for FSEvent* API. Fixes #5353 (#5356) 2019-01-09 09:27:18 -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 [runtime] Use mono_array_setref instead of mono_array_set. (#5782) 2019-03-18 15:00:32 +01:00
CoreVideo Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +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 [foundation] Updated NSUrlSessionHandler to support TLS 1.3 (#6006) 2019-05-08 08:38:15 -04:00
GLKit [glkit] Update (deprecate in favor of Metal) for beta1 (#4245) 2018-06-13 22:25:57 -04:00
GameController Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04:00
GameKit Remove private API (#5915) 2019-04-25 10:16:22 -04:00
GameplayKit Remove private API (#5915) 2019-04-25 10:16:22 -04:00
HealthKit [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02: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 Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +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] Update for beta 4 (#5717) 2019-03-05 07:33:43 -05: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 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04:00
MetalKit PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
MetalPerformanceShaders Remove private API (#5915) 2019-04-25 10:16:22 -04: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 Remove unnecessary Makefile targets that seem to conflict in "make package" 2019-03-16 02:47:40 +01: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 [ObjCRuntime] The NSLog_arm64 P/Invoke is now needed on watchOS (ARM64_32) too. 2019-05-10 08:28:43 +02:00
OpenGL [xcode10.2] [OpenGL] Fix MonoMacGameView .ctor when hardware acceleration isn't available (#5670) 2019-02-27 11:02:49 -05:00
OpenGLES Revert "[builds] Make the tools build use mono's packaged logic instead of our own. (#5962)" (#5971) 2019-04-30 19:58:12 -04:00
PassKit [PassKit] Added support for Xcode 10 up to beta 3. (#4423) 2018-07-13 21:21:16 -05:00
PdfKit Remove private API (#5915) 2019-04-25 10:16:22 -04:00
Photos [Photos] Update for Xcode10-beta2. (#4371) 2018-07-03 17:26:40 +02:00
PhotosUI [photosui] Update for xcode 10.2 beta 1 (#5484) 2019-01-25 16:41:05 -05: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 Merge remote-tracking branch 'origin/master' into mono-2018-08 2018-11-16 14:26:50 -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 [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02: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 [spritekit] Update for Xcode 10.2 beta 2 2019-02-04 19:33:47 -05:00
StoreKit [storekit] Update for xcode 10.2 b3 (#5634) 2019-02-20 08:14:02 -05:00
System.ComponentModel Build the platform assemblies. 2016-04-24 14:47:26 -04:00
System.Drawing Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
System.Net.Http [CFNetwork] Ensure we do not block on redirects. (#5900) 2019-04-16 12:14:17 +02:00
SystemConfiguration Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
TVMLKit [TVMLKit] Work around Apple breaking API for enum values in TVElementUpdateType. (#5849) 2019-04-09 16:48:18 +02: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 Remove private API (#5915) 2019-04-25 10:16:22 -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 Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
Vision Remove private API (#5915) 2019-04-25 10:16:22 -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 17:33:56 +02:00
AssemblyInfo.cs.in [mtouch] Fix [InternalsVisibleTo] attribute parsing. Fixes #4895 (#4921) 2018-10-04 09:43:38 -04:00
Compat.iOS.cs Build the platform assemblies. 2016-04-24 14:47:26 -04:00
Constants.iOS.cs.in [tests] Add introspection tests for Constants.*.cs.in. Fixes #5047 (#5159) 2018-11-22 13:24:55 -05:00
Constants.mac.cs.in [ObjCRuntime] Verify the system mono version at launch. (#5292) 2018-12-19 17:03:57 +01:00
Constants.tvos.cs.in [tests] Add introspection tests for Constants.*.cs.in. Fixes #5047 (#5159) 2018-11-22 13:24:55 -05:00
Constants.watch.cs.in [tests] Add introspection tests for Constants.*.cs.in. Fixes #5047 (#5159) 2018-11-22 13:24:55 -05:00
Makefile [generator] The --no-mono-path option doesn't do anything anymore, so remove it. (#5996) 2019-05-06 14:41:52 +02: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 Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
README.md [src] Use generated rsp files when executing the generator. 2018-08-23 17:33:41 +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 [appkit] Fix NSTabView.Delegate (missing/removed `virtual`) (#5946) 2019-04-24 17:20:59 -04:00
arkit.cs [arkit] Fix crash in ARConfiguration.SupportedVideoFormats. Fixes #5347 (#5348) 2019-01-04 17:29:19 -05: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 Clarify usage of `[NullAllowed]` in our bindings (#5417) 2019-01-16 09:42:45 -05:00
authenticationservices.cs [authenticationservices] New iOS-only framework added in beta 1 (#4234) 2018-06-13 14:06:37 -04:00
avfoundation.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
avkit.cs [AVKit] Update for Xcode10-beta2 (#4314) 2018-06-21 16:23:36 +02:00
bmac [generator] The --no-mono-path option doesn't do anything anymore, so remove it. (#5996) 2019-05-06 14:41:52 +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 [generator] Show proper errors when failing to compile something. (#6003) 2019-05-07 13:40:59 +02: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 xcode10.2 beta 1 (#5499) 2019-01-28 15:28:51 -05:00
cfnetwork.cs [coreservices] Update up to beta 5 (#4590) 2018-08-08 12:38:03 -04:00
classkit.cs [classkit] Update for xcode 10.2 beta 1 (#5501) 2019-01-28 16:51:39 -05:00
clockkit.cs [ClockKit] Update bindings to Xcode 10.2 Beta 2 (#5549) 2019-02-05 09:33:16 -05:00
cloudkit.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
compression.cs [Compression] Add compression framework bindings. (#3942) 2018-05-11 15:54:31 -04:00
contacts.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
contactsui.cs [Appkit] Fix xtro DesignatedInitializer output (#3474) 2018-02-14 08:09:43 -06:00
coreanimation.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
coreaudiokit.cs [CoreAudioKit] Fix macOS xtro output (#3508) 2018-02-16 05:49:05 -06:00
corebluetooth.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
coredata.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -05:00
corefoundation.cs [corefoundation] Add missing CFStringTransform API. Fixes #5705 (#5712) 2019-03-06 08:04:17 -05:00
coregraphics.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
coreimage.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
corelocation.cs Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
coremedia.cs [coremedia] Add BaseFontSizePercentageRelativeToVideoHeight to CMTextMarkupAttributes. Fixes #5429 2019-01-18 09:09:42 -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 Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -05:00
coretext.cs [CoreText] Update bindings to Xcode 10 Beta 1 & 2 (#4368) 2018-07-03 09:48:10 -05:00
corevideo.cs Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
corewlan.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -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 [bgen] Use ErrorHelper.Warning instead of ErrorHelper.Show to show warnings. (#5926) 2019-04-23 13:32:24 +01:00
eventkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -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 [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
frameworks.sources Remove private API (#5915) 2019-04-25 10:16:22 -04:00
gamecontroller.cs Xcode 10.2 b1 GameController APIs (#5520) 2019-01-31 11:11:05 -06:00
gamekit.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
gameplaykit.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
generate-frameworks.csharp [bgen] Make the Frameworks class instance based. 2019-04-11 18:02:13 +02:00
generator-attribute-manager.cs [bgen] Make the TypeManager class instance based. 2019-04-11 18:02:13 +02: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 [bgen] Make Generator.AttributeManager an instance field. 2019-04-11 18:02:13 +02:00
generator-filters.cs [bgen] Make Generator.XamcoreVersion an instance property. 2019-04-11 18:02:13 +02:00
generator-typemanager.cs [bgen] Make the Generator.BindThirdPartyLibrary value dependent on the BindingTouch instance. 2019-04-11 18:02:13 +02:00
generator.cs [generator] Treat arm64_32 as arm64 when dealing with objc_msgSend behavior. 2019-05-10 08:28:43 +02:00
generator.csproj [generator] Show proper errors when failing to compile something. (#6003) 2019-05-07 13:40:59 +02:00
generator.sln [tests] Port the makefile-based generator tests to NUnit. (#3019) 2017-11-20 14:55:16 +01:00
glkit.cs [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 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04: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 Clarify usage of `[NullAllowed]` in our bindings (#5417) 2019-01-16 09:42:45 -05:00
identitylookup.cs Merge xcode10.1 into d15-9 (#5063) 2018-10-31 17:30:44 -04:00
identitylookupui.cs [IdentityLookupUI] Add bindings for Xcode 10 Beta 1 (#4281) 2018-06-15 20:46:35 -05:00
imagecapturecore.cs [ImageCaptureCore] Remove redundant availability attribute. 2018-11-20 08:41:36 +01:00
imageio.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
imagekit.cs [ImageCaptureCore] Add ImageCaptureCore Bindings (#5074) 2018-11-07 09:52:39 -05:00
inputmethodkit.cs Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
intents.cs [Intents] Update according to breaking changes from Apple. (#5850) 2019-04-05 18:46:40 +02:00
intentsui.cs [IntentsUI] Update bindings to Xcode 10.2 Beta 2 (#5550) 2019-02-05 09:34:02 -05:00
iosurface.cs [IOSurface] Update for Xcode10-beta2 (#4322) 2018-06-22 16:41:11 +02:00
ituneslibrary.cs [ituneslibrary] Update for xcode10.2 beta 1 (#5489) 2019-01-28 08:53:09 -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 [mapkit] Add missing [NullAllowed] in initWithAnnotation:reuseIdentifier: Fixes 5345 (#5531) 2019-02-03 20:26:34 -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 [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02: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 Clarify usage of `[NullAllowed]` in our bindings (#5417) 2019-01-16 09:42:45 -05:00
metalkit.cs [metalkit] Add 'MTKTextureLoader' missing bindings (fix xtro) (#3561) (#3566) 2018-02-22 12:08:06 -05:00
metalperformanceshaders.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
mobilecoreservices.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
modelio.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02: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) 2019-01-29 15:37:48 -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 Move System.Drawing types to Mono 2019-03-13 17:26:47 +01:00
passkit.cs [passkit] Update for beta 4 (#5716) 2019-03-04 23:30:30 -05:00
pdfkit.cs Remove private API (#5915) 2019-04-25 10:16:22 -04: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 Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
replaykit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -05:00
rosetta.pl Build the platform assemblies. 2016-04-24 14:47:26 -04:00
safariservices.cs [SafariServices] Update bindings to Xcode 10.2 Beta 1 (#5505) 2019-01-29 14:14:21 -05:00
scenekit.cs Clarify usage of `[NullAllowed]` in our bindings (#5417) 2019-01-16 09:42:45 -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 Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
social.cs Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
speech.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
spritekit.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
storekit.cs [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02:00
system-drawing.sources Move System.Drawing types to Mono 2019-03-13 17:26:47 +01: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 [TVMLKit] Work around Apple breaking API for enum values in TVElementUpdateType. (#5849) 2019-04-09 16:48:18 +02: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 [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +02: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 Remove 10.7 & 10.8 availability attributes, since they're redundant now. 2018-10-25 17:12:39 +02:00
vision.cs Remove private API (#5915) 2019-04-25 10:16:22 -04:00
watchconnectivity.cs [watchconnectivity] Updates for beta 1 (#4205) 2018-06-11 05:34:40 -07:00
watchkit.cs [WatchKit] Update bindings to Xcode 10.2 Beta 1 (#5473) 2019-01-25 08:41:12 -05:00
webkit.cs Add xtro test for [Deprecated] attributes and fix up usages (#4966) 2019-01-29 15:37:48 -05:00
wkwebkit.cs Bump for Xcode 10.2 beta 4 (#5715) 2019-03-04 21:18:57 -05: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 Remove unnecessary references to Mono.Security. (#5242) 2018-12-11 10:35:16 +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 [src] Sprinkle availability attributes for iOS 8.1, tvOS 9.0 and watchOS 2.0. 2019-05-06 17:01:17 +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