Граф коммитов

2761 Коммитов

Автор SHA1 Сообщение Дата
Marius Ungureanu 5913bd1807 Add IComparable<T> to NSString (#7468)
Fixes #5522
2019-11-20 07:45:13 -05:00
monojenkins f30817fd70 [generator] If forcing a managed type, we must do so even if there's another managed instance of an incompatible type. Fixes #7441. (#7453)
If forcing a managed type for a particular native handle, we must ensure we're
always successful.

This means creating another managed instance even if there already is an
existing instance for the native handle. This is not optimal, but the
alternative is worse: some functionality can be completely broken otherwise
(such as NSSavePanel⁄NSOpenPanel may stop working).

If creating multiple managed instances for the same native handle ends up
being too problematic, we'll probably have to add full support for this
scenario (see #7442).

Fixes https://github.com/xamarin/xamarin-macios/issues/7441.
2019-11-15 22:34:27 +01:00
Rolf Bjarne Kvinge 7caf1fbb04
[generator] If forcing a managed type, we must do so even if there's another managed instance of an incompatible type. Fixes #7441. (#7445)
If forcing a managed type for a particular native handle, we must ensure we're
always successful.

This means creating another managed instance even if there already is an
existing instance for the native handle. This is not optimal, but the
alternative is worse: some functionality can be completely broken otherwise
(such as NSSavePanel⁄NSOpenPanel may stop working).

If creating multiple managed instances for the same native handle ends up
being too problematic, we'll probably have to add full support for this
scenario (see #7442).

Fixes https://github.com/xamarin/xamarin-macios/issues/7441.
2019-11-15 08:16:06 +01:00
monojenkins 54b2164ff7 [d16-5] [CoreFoundation] CFBundle.GetAll better thread safe. (#7430)
* [CoreFoundation] CFBundle.GetAll better thread safe.

The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940

* [CoreFoundation] Add Clone method for CFArray. (#7403)

When working on https://github.com/xamarin/maccore/issues/940 we noticed
that clone the array would be a better approach.

The CFArrayCreateCopy add some nice things:

* The pointer values from theArray are copied into the new array.
* The values are also retained by the new array.
* The count of the new array is the same as theArray
* The new array uses the same callbacks as theArray. [IMPORTANT]

Whith this in, we can have a better fix for https://github.com/xamarin/maccore/issues/940
2019-11-14 17:38:04 -05:00
Manuel de la Pena cd7c5171a9 [CoreFoundation] CFBundle.GetAll better thread safe. (#7425)
The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940
2019-11-13 17:30:02 -05:00
Manuel de la Pena d99e3b24f9 [CoreFoundation] Add Clone method for CFArray. (#7403)
When working on https://github.com/xamarin/maccore/issues/940 we noticed
that clone the array would be a better approach.

The CFArrayCreateCopy add some nice things:

* The pointer values from theArray are copied into the new array.
* The values are also retained by the new array.
* The count of the new array is the same as theArray
* The new array uses the same callbacks as theArray. [IMPORTANT]

Whith this in, we can have a better fix for https://github.com/xamarin/maccore/issues/940
2019-11-13 17:28:46 -05:00
Manuel de la Pena de14b5a583
[CoreFoundation] CFBundle.GetAll better thread safe. (#7425)
The initial solution fixed the rance condition in which the index
changed, but that did not guarantee that we would get the correct
bundles. We now clone the CFArray (which also clones the callbacks set
to the array) and iterate over it to make sure Apple does not do evil
tings while we are iteraing.

Better Fixes: https://github.com/xamarin/maccore/issues/940
2019-11-13 17:19:16 -05:00
Manuel de la Pena f613021a3f
[CoreFoundation] Add Clone method for CFArray. (#7403)
When working on https://github.com/xamarin/maccore/issues/940 we noticed
that clone the array would be a better approach.

The CFArrayCreateCopy add some nice things:

* The pointer values from theArray are copied into the new array.
* The values are also retained by the new array.
* The count of the new array is the same as theArray
* The new array uses the same callbacks as theArray. [IMPORTANT]

Whith this in, we can have a better fix for https://github.com/xamarin/maccore/issues/940
2019-11-13 06:06:23 -05:00
michizhou e9b18d4c2f [CoreFoundation] [tests] Add new DispatchQueue overloaded method (#7343)
* [CoreFoundation] [tests] Add new DispatchQueue overloaded method with unit tests. Fixes #6783

* [CoreFoundation] [tests] Add new variant method to DispatchQueue

* [CoreFoundation] [tests] Remove nonexistent DispatchQueue methods

* [CoreFoundation] [tests] Restore existing methods and tests
2019-11-12 14:56:45 +01:00
Vincent Dondain bde12ca5d4
Merge pull request #7387 from VincentDondain/d16-5-merge-master
Merge master into d16-5
2019-11-11 11:19:29 -05:00
monojenkins d7b2c14982 [CoreFoundation] Ensure that we are thread safe. (#7397)
CFBundleGetAllBundles as per Apple docs is not thread safe, this means
that when we loop over the bundles, and use a property, the value is
updated by a different thread. This means that in some weird cases we
get an IndexOutOfBounds exception. We now store the count and use it in
the loop.

Fixes: https://github.com/xamarin/maccore/issues/940
2019-11-09 00:45:01 -05:00
Manuel de la Pena 452f4dcf7d
[CoreFoundation] Ensure that we are thread safe. (#7391)
CFBundleGetAllBundles as per Apple docs is not thread safe, this means
that when we loop over the bundles, and use a property, the value is
updated by a different thread. This means that in some weird cases we
get an IndexOutOfBounds exception. We now store the count and use it in
the loop.

Fixes: https://github.com/xamarin/maccore/issues/940
2019-11-08 18:07:59 -05:00
Vincent Dondain 44fd06324a Merge master into d16-5 2019-11-08 10:21:12 -05:00
Waleed Chaudhry a1b670cd63
[FileProvider] Add FileProvider binding xcode11.2b1 (#7384) 2019-11-07 14:42:47 -05:00
Pramit Mallick 0c1b9b9b03 [UIKit] Added Static to UITraitCollection.FromPreferredContentSizeCategory (#7350)
Add a new static method to be used and obsolete the old wrong bound code.
2019-11-06 15:22:52 -05:00
Manuel de la Pena 746fd47638
[Networking] Add the NWFramer implementation. (#7338)
Uncommented the sources and update some mistakes after following the
sample provided by Apple. Initially tests were going to be added but
they resulted to be to flacky and would make the CI red too often to be
adding value.

Porting the sample will ensure that it works are the bindings are not
broken.
2019-11-05 15:32:17 -05:00
Vincent Dondain a558d84457 Merge branch 'xcode11.2' into master-merge-xcode11.2 2019-11-05 15:25:49 -05:00
Manuel de la Pena 2e5b64893f
[Runtime] Enable the -Wshorten-64-to-32 flag and fix all warnings. (#7353)
* [Runtime] Enable the -Wshorten-64-to-32 flag and fix all warnings.

We want to enable the -Wconversion but that will raise too many warning
for a single commit. We are enabiling one by one the flags included in
-Wconversion so that we have smaller diffs.

-Wshorten-64-to-32 adds warnings when there is a implicit conversion that
loses integer precision. We are moving all the 32 to 64 conversions to
use 64. Expecially since most of the code changed is related with sizes,
legths and params counts that are never going to be negative.


Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-11-05 11:00:14 -05:00
Marius Ungureanu f079db990b Remove redundant class_ptr initialization (#7357)
This is already done by the generated code, as seen below.

```csharp
		selWindowWithWindowNumber_Handle = Selector.GetHandle ("windowWithWindowNumber:");
		selWindowsHandle = Selector.GetHandle ("windows");
		selWindowsMenuHandle = Selector.GetHandle ("windowsMenu");
		class_ptr = Class.GetHandle ("NSApplication");
		class_ptr = Class.GetHandle ("NSApplication");
	}
```

With this change, we've also removed the static constructor, therefore all the fields are going to be initialized when they are used, as opposed to being forcefully loaded on the first access. This may improve startup times
2019-11-04 21:46:30 +01:00
Vincent Dondain ec3c01d131 Merge branch 'xcode11.2' into d16-4-xcode11.2-merge 2019-11-01 17:11:44 -04:00
Whitney Schmidt d90223a316
[MapKit] Xcode 11.2 update (#7331)
* mapkit 11.2

* make methods public

* add async attribute

* style fixes, using pattern
2019-10-31 11:11:41 -04:00
Pramit Mallick c4f28a1888
[MPSCore] Xcode11.1 GM Binding (#7330) 2019-10-31 10:02:53 -04:00
Sebastien Pouliot e736477377
[runtime] Remove some classic (pre-unified) code that is not used anymore. (#7341) 2019-10-30 20:54:30 -04:00
Pramit Mallick 3cf957442e [Foundation] Add 'targetContentIdentifier' to macOS and watchOS 2019-10-30 14:53:55 -04:00
Pramit Mallick ecefbde776
[ARKit] Xcode11.2 Binding (#7324)
* [ARKit] Add enum for xcode11.2

* address reviews

* Added Obsolete attribute
2019-10-30 11:04:48 -04:00
Waleed Chaudhry 90982b64b4
[CoreGraphics] Add CoreGraphics bindings for xcode11.2b2 (#7327) 2019-10-29 14:06:02 -04:00
Whitney Schmidt 54572a9f7b
add avmetadata updates (#7316) 2019-10-29 11:42:55 -04:00
Whitney Schmidt 04d2436587
[Xcode 11.2] Callkit updates (#7322)
* callkit updates for 11.2

* remove availability attributes for error enum
2019-10-29 11:42:32 -04:00
Waleed Chaudhry 25da8b43a2
[AuthenticationServices] Add AuthenticationServices bindings for xcode11.2 (#7315) 2019-10-29 10:52:03 -04:00
Pramit Mallick f35569a715 [Appkit] Bindings part 4 (#7295)
Complete the AppKit bindings up to Xcode 11.2
2019-10-28 15:38:34 -04:00
Manuel de la Pena 4a9c6b994f
[Networking] Use the correct signature on SetData. Fixes #2042 (#7310)
Use the correct signature or the app will crash. Tested on a device.

Fixes: https://github.com/xamarin/maccore/issues/2042
2019-10-25 20:06:23 -04:00
Manuel de la Pena 5670872dc6
[Generator] Allow 1 level nester classes. Fixes: #7304 (#7309)
We have only encountered a case in which we had to add a nested
class/enum as the return type of a property. This fix ensures that we
can work with 1 level nested classes. A more general situation with
nested/nested/nested/.. classes is not taken into account because:

1. Would complicate too much the code.
2. Is fixing problems we do not have AFAIK.

So I'm keeping the fix simple, as I said, we have never faced anything
deeper than one level.
2019-10-25 20:06:00 -04:00
Sebastien Pouliot 9fd03625b4
[msbuild] Ensure the output of `mtouch` (and friends) are included in binary logs. Fix #7035 (#7288)
and by friends I mean `mmp` and `btouch`

What does this do ?

1. Assume that output of `mtouch` (and other similar tools) is **always** of high importance. Why ?

- If not then it's not saved in the binary log (even if visible on the console/text logs).
- The logging of `mtouch` (and friends) is dynamic, based on a supplied verbosity level.
- If a verbosity level _anywhere_ then it's a clear sign that the developer wants that extra output (and that includes binary logs).

2. Assume the _global_ verbosity of `msbuild` from the console is just as valid/useful than the one from VSfM.

- CI/bots produce logs and they should be useful to diagnose build issues.
- Setting verbosity in several places is error-prone, which delay investigations and results.
- Running the same project, with the same `msbuild` verbosity, should be identical between IDE and console.

What does that mean ?

Using `msbuild /v:diag /bl:out.binlog` you get a small(er) binary log that has everything[1] you need to diagnose a Xamarin.iOS (or Mac) build. It's also identical to the output what VSfM produce (for the same `msbuild` verbosity level).

[1] we might need to review what we log if we're missing interesting stuff

References:
https://github.com/xamarin/xamarin-macios/issues/7035
2019-10-25 17:44:35 -04:00
William Kent 9be58e4b9c os_log(3) support (#7141)
* Add xamarin_os_log function

See the comment in the function for an explanation
of why this wrapper function is required.

* Add Darwin/OSLog.cs

* Add xamarin_os_log to header

This ensures that the symbol will not be subject
to C++ name mangling, therefore breaking mmp.
With this change applied, OSLog works as expected.

* Resolve stylistic PR feedback

* Move OSLog into CoreFoundation namespace

This is where the NativeObject class lives, and it
also feels like a better fit for a low-level API
that is available on non-Mac platforms than the
macOS-only Darwin namespace.
2019-10-24 17:46:03 -04:00
Manuel de la Pena e1c12bba11
[Network] Add NWFramerMessage implementation. (#7256)
Add a missing object for the type.

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-24 10:40:54 -04:00
Pramit Mallick a95fe82a68 [NetworkExtension] Bindings for xcode11.2 - Added missing selector 'identifier' 2019-10-23 17:33:30 -04:00
Rolf Bjarne Kvinge 4d8ec5d531
[Network] Fix NWTxtRecord.Apply. Fixes xamarin/maccore#2036. (#7281)
The block/delegate passed to NWTxtRecord.Apply is supposed to return a bool.
Not returning anything ends up with random behavior, which causes a test
failure on Catalina:

   3) TestApply (MonoTouchFixtures.Network.NWTxtRecordTest.TestApply)
        keycount
     Expected: 4
     But was:  1

     at MonoTouchFixtures.Network.NWTxtRecordTest.TestApply () [0x000a3] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/monotouch-test/Network/NWTxtRecordTest.cs:134
     at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
     at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

I've fixed the existing API to return 'true' always in the block callback, to
get consistent behavior, and in addition I've added a new overload that takes
a delegate that returns a bool, which allows the consumer of the API to decide
what to return.

Fixes https://github.com/xamarin/maccore/issues/2036.
2019-10-23 23:25:27 +02:00
Waleed Chaudhry bad61b8f5e
[StoreKit] Add StoreKit bindings for xcode11.2b2 (#7294) 2019-10-23 16:29:35 -04:00
Waleed Chaudhry c52a59358f
[UIKit] Add UIKit bindings for xcode11.2b2 (#7290) 2019-10-23 15:12:19 -04:00
Pramit Mallick fbf33357ab
[Appkit] Bindings - part 3 (#7261)
* added NSCollectionLayoutSupplementaryItem + NSCollectionLayoutItem

* added NSCollectionLayoutBoundarySupplementaryItem + NSCollectionLayoutDecorationItem

* added NSCollectionLayoutGroupCustomItem + NSCollectionViewCompositionalLayoutConfiguration

* added NSColorSampler + NSSwitch

* added NSCollectionLayoutGroup

* merge conflict resolve in todo

* merge

* merge

* merge

* added NSCollectionViewCompositionalLayout

* added NSStepperTouchBarItem

* removed DesignatedInitializer and added cases to ApiCtorInitTest

* ready for PR

* addressed reviews

* added [DisableDefaultCtor]
2019-10-23 10:15:33 -04:00
Manuel de la Pena 20df742564
[Network] Cleanup the NWProtocolMetadata. (#7270)
Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-22 23:49:51 +02:00
Pramit Mallick 09363654ad
[AppKit] Fix new warnings (#7278)
* throw argument exception for exhaustive case

* Update src/AppKit/NSCollectionLayoutAnchor.cs - style change

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-22 17:02:15 -04:00
Rolf Bjarne Kvinge 38c59c9077
[Photos] Update to Xcode 11.2 beta 2. (#7274)
* [Photos] Update to Xcode 11.2 beta 2.

Ref: https://github.com/xamarin/maccore/issues/1797

* Fix xtro.
2019-10-22 22:31:57 +02:00
Rolf Bjarne Kvinge 56328b8866
Fix a few introspection issues on Catalina. (#7212) (#7243)
* [SceneKit] Adjust deprecation message.

Fixes this introspection failure:

    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Type: SCNLayer
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_PixelFormat, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_PixelFormat, Type: SCNView

* [AppKit] Adjust deprecation messages.

* [tests] Fix introspection and xammac tests on Catalina. (#7200)

* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.

* [introspection] Ignore MTLCounterSampleBufferDescriptor's selectors.

They're implemented using a different/internal type:

    $ nm /System/Library/Frameworks/Metal.framework/Metal | grep MTLCounterSampleBuffer
    00000000000458ab t +[MTLCounterSampleBufferDescriptor allocWithZone:]
    0000000000045897 t +[MTLCounterSampleBufferDescriptor alloc]
    000000000004591e t -[MTLCounterSampleBufferDescriptor copyWithZone:]
    000000000004598e t -[MTLCounterSampleBufferDescriptorInternal copyWithZone:]
    0000000000045c0f t -[MTLCounterSampleBufferDescriptorInternal counterSet]
    0000000000045936 t -[MTLCounterSampleBufferDescriptorInternal dealloc]
    0000000000045b65 t -[MTLCounterSampleBufferDescriptorInternal hash]
    0000000000045a31 t -[MTLCounterSampleBufferDescriptorInternal isEqual:]
    0000000000045c58 t -[MTLCounterSampleBufferDescriptorInternal label]
    0000000000045c7f t -[MTLCounterSampleBufferDescriptorInternal sampleCount]
    0000000000045c25 t -[MTLCounterSampleBufferDescriptorInternal setCounterSet:]
    0000000000045c6e t -[MTLCounterSampleBufferDescriptorInternal setLabel:]
    0000000000045c90 t -[MTLCounterSampleBufferDescriptorInternal setSampleCount:]
    0000000000045c47 t -[MTLCounterSampleBufferDescriptorInternal setStorageMode:]
    0000000000045c36 t -[MTLCounterSampleBufferDescriptorInternal storageMode]
    000000000010b0b8 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b0e0 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptorInternal
    0000000000107070 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._counterSet
    0000000000107078 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._label
    0000000000107088 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._sampleCount
    0000000000107080 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._storageMode
    000000000010b108 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b130 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptorInternal

Fixes these test failures:

    1) ApiSelectorTest.InstanceMethods (Introspection.MacApiSelectorTest.ApiSelectorTest.InstanceMethods)
         8 errors found in 26658 instance selector validated:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : counterSet
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setCounterSet:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : label
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setLabel:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : sampleCount
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setSampleCount:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : storageMode
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setStorageMode:

* [introspection] Ignore some API we've bound incorrectly. Fixes #7116.

There are also a few API fixes, those will be submitted in a different PR.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-22 22:30:19 +02:00
Pramit Mallick e3c9fb0a99
Xcode11.2 HomeKit bindings (#7268) 2019-10-22 09:45:58 -04:00
William Kent 8425129eeb Add bindings for NSXpcConnection and related types (#7001)
* Add bindings for NSXpcConnection and related types

* Re-add accidentally deleted file

* Typo fix

* Add NSXpcInterface.CreateForType()

* Add MethodInfo-taking overloads to NSXpcInterface

* Add null check

* Mark methods with wrappers as internal

Also fixed a formatting bug that I didn't catch earlier.

* Change NSXPCProxyCreating methods to be strongly typed

I got rid of the NSXpcProxyCreating interface in this change,
because its only user was NSXpcConnection, and I needed to
inline the protocol methods into the class definition so I
could mark them as [Internal].

* Add missing casts

* Add NSXpcConnectionOptions enum

* Convert NSXpcConnection constructor to use new enum

* Remove now-unneeded manual constructor

* Fix bgen warning

* Typo fix

* Fix selector

* Remove incorrect use of BindAsAttribute

Per the docs, this only works for enums backed
by NSNumber and NSValue, not for enums
passed directly as integers.

* Fix duplicated selector errors

* Throw ArgumentException instead of InvalidOperationException

* Extend AppExtension targets to produce XPC services

Rather than create an entirely new set of targets
(that would require VS and VSMac updates to properly
consume), I have decided to use the existing AppExtension
build targets to produce XPC services as well. All the
user must do is set the $(IsXPCService) property to true in
their project file, and the targets will do The Right Thing™.

Note that this support is Mac-only for now; I may need a bit
of help adjusting them to work on for iOS/watchOS/tvOS, as I
am not as familiar with those platforms.

* Copy XPC service bundles into the correct location

* Move IsXPCService property definition to props file

* Don't pass /extension to mmp for XPC service targets

This would cause the XPC service binary to
be linked incorrectly.

* Add NSXpcConnection/NSXpcInterface.cs files to the build

* Fix build

* Fix build

* Add required type parameter requirements

* Fix type parameter requirements

* Fix return type

* Fix return type of NSXpcInterface.CreateForProtocol ()

* Take ownership of the returned object types

* Adjust XPC service mmp invocation

I need to link the XPC service bundle as if it is an app extension, but
I must not use xamarin_mac_extension_main. I added a new flag to make
this possible.

* Change mmp to correctly construct XPC service bundle

* Set the MonoBundleExecutable Info.plist key for XPC services

* Use the runtime to get the protocol

* Make NSXpcInterface.CreateForProtocol() public

The static registrar must be used for Cocoa to accept the protocol
as a valid XPC interface, but that then seems to break resolving
the protocol from the type. I must therefore hard-code the protocol
name in my code, and that requires I make this constructor public.

* Add XpcInterfaceAttribute

See the doc comment in XpcInterfaceAttribute.cs for why
this type is required. The referenced mmp optimizations
will be added in future commits.

* Add XpcInterfaceAttribute to generator build

* Add support for XpcInterfaceAttribute to the generator

* Force static generation of protocols decorated with XpcInterfaceAttribute

* Change how static registrar translates block parameters

Previously, they would always be marshalled as "id".
This would throw off the XPC subsystem, which parses
the block signature to determine the communication
protocol.

* Undo whitespace noise

* Remove unneeded casts

* Add trailing comma

* Use HasAttribute instead of GetCustomAttribute

* Fix style issues

* Bind NSXpcConnection.auditSessionIdentifier

* Address naming feedback

* Make Get/SetAllowedClasses public

IMHO, passing the selector as a string is just as
usable as passing a MethodInfo, and is also less
verbose if you copy/paste the selector string
from the ExportAttribute. There is no reason why
we cannot have both overloads be public.

* Update overload names to match

* Update more overload names to match

* Make mmp --xpc imply --extension

* Reformat if statement

* Fix build

* Conditionalize creation of PlugIns and XPCServices directories

* Add AutoGeneratedName

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Get rid of ProtocolizeAttribute

* Update availability attributes to please xharness

I actually think xharness is wrong here, since the
NSXPCConnection header lists these types as being
available starting in macOS 10.8.

* Update sharpie ignore files to reflect changes

This should fix the xtro-sharpie test failures CI has been reporting.

* Fix MM4105 error generation

* Adjust error message in test to match mmp

I had to change the error text slightly, because the type of the parameter
cannot be determined where the error is thrown anymore. However, the newer
exception message IMO is just as clear.

* Make exception message match test exactly

* Remove outdated copyright header text

* Remove more outdated copyright header text

* Revert changes to MM4105 error generation

I have a more elegant way of fixing this test now.

* Return "id" if Invoke method cannot be found

This fixes the MM4105 error unit test,
without requiring modification to that test.

* Remove redundant availability attributes

* Add DesignatedInitializerAttribute

* Re-add required code to macOS-Foundation.ignore

* Put DesignatedInitializer on the right constructor

* Update xtro-sharpie ignore files
2019-10-22 15:38:01 +02:00
Manuel de la Pena 6c75de0a6a
[Network] Add more convinient callbacks. (#7252)
Providing callbacks with DispatchData and Int + length is not nice for
the non advance users. Added set of methods that will use callbacks that
will provide the users with ReadOnlySpan, which is nicer and makes it
work with the API easier.

Also, the change allows users to avoid unsafe code.
2019-10-22 00:36:33 +02:00
Manuel de la Pena ca1d26c2b1
[Network] NWWebsocketMetadata is a NWProtocolMetadata. (#7257) 2019-10-20 22:12:30 +02:00
Rolf Bjarne Kvinge 8411955e2f
[CoreImage] Fix a couple of test/availability issues. (#7259)
Fixes this on macOS 10.9:

    1) ApiCtorInitTest.DefaultCtorAllowed (Introspection.MacApiCtorInitTest.ApiCtorInitTest.DefaultCtorAllowed)
         1 potential errors found in 860 default ctor validated:
    CoreImage.CIMaskedVariableBlur : Handle

      Expected: 0
      But was:  1

      at Introspection.ApiCtorInitTest.DefaultCtorAllowed () [0x0019b] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCtorInitTest.cs:295
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

    2) ApiCoreImageFiltersTest.Keys (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Keys)
       System.ArgumentNullException : Value cannot be null.
    Parameter name: array
      at System.Array.IndexOf[T] (T[] array, T value) [0x0000e] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/external/corert/src/System.Private.CoreLib/src/System/Array.cs:666
      at Introspection.ApiCoreImageFiltersTest.Keys () [0x002b7] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:445
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

    3) ApiCoreImageFiltersTest.Protocols (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Protocols)
         1 potential errors found:
    Managed CIMaskedVariableBlur was not part of the native filter list

      Expected: 0
      But was:  1

      at Introspection.ApiCoreImageFiltersTest.Protocols () [0x0104e] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:370
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

And this on macOS 10.10:

    1) ApiCoreImageFiltersTest.Keys (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Keys)
         1 potential errors found:
    CICode128BarcodeGenerator: Property `BarcodeHeight` mapped to key `inputBarcodeHeight` is not part of `InputKeys`.

      Expected: 0
      But was:  1

      at Introspection.ApiCoreImageFiltersTest.Keys () [0x006b1] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:524
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

    2) ApiCoreImageFiltersTest.Protocols (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Protocols)
         1 potential errors found:
    CICode128BarcodeGenerator: Property `BarcodeHeight` mapped to key `inputBarcodeHeight` is not part of `InputKeys`.

      Expected: 0
      But was:  1

      at Introspection.ApiCoreImageFiltersTest.Protocols () [0x0104e] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:370
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

And this on macOS 11.11:

    1) ApiCoreImageFiltersTest.Keys (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Keys)
         2 potential errors found:
    CICode128BarcodeGenerator: Property `BarcodeHeight` mapped to key `inputBarcodeHeight` is not part of `InputKeys`.
    CIGaussianBlur: Output Key `outputImageV1` is NOT mapped to a `OutputImageV1` property.

      Expected: 0
      But was:  2

      at Introspection.ApiCoreImageFiltersTest.Keys () [0x006b1] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:524
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395

    2) ApiCoreImageFiltersTest.Protocols (Introspection.MacCoreImageFiltersTest.ApiCoreImageFiltersTest.Protocols)
         2 potential errors found:
    CICode128BarcodeGenerator: Property `BarcodeHeight` mapped to key `inputBarcodeHeight` is not part of `InputKeys`.
    CIGaussianBlur: Output Key `outputImageV1` is NOT mapped to a `OutputImageV1` property.

      Expected: 0
      But was:  2

      at Introspection.ApiCoreImageFiltersTest.Protocols () [0x0104e] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/tests/introspection/ApiCoreImageFiltersTest.cs:370
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395
2019-10-18 22:42:12 +02:00
Pramit Mallick dc72d592cf
[Appkit] Bindings - part 2 (#7215)
* Added NSButtonTouchBarItem interface

* Added NSTextScalingType

* name changes

* Text Scaling options

* Deprecated KeyEquivalentFont

* Deprecated CopiesOnScroll

* Added missing enums first

* Added some deprecated attributes

* some more deprecations

* Strong typed TextScaling

* apple docs to correct deprecations

* Changed deprecated messages

* strong typing NSTouchBarItemIdentifier identifier

* internal attr

* Making TextScalingDocumentOption simple Fields following UIKit

* Moved NSDirectionalEdgeInsets

* Added NSCollectionLayoutAnchor

* removed extra methods for mac from xkit/types

* removed todos

* added automaticCustomizeTouchBarMenuItemEnabled

* added NSCollectionLayoutDimension

* added NSPickerTouchBarItem

* added NSCollectionLayoutSize

* added NSCollectionLayoutSpacing

* added NSCollectionLayoutEdgeSpacing

* added DesignatedInitializer

* addressed reviews

* naming + alignment

* adding test case for NSPickerTouchBarItem .ctor

* added comment

* removed deprecated selectors to ignore

* updated copyright info in Xkit/Types header
2019-10-18 15:45:34 -04:00
Manuel de la Pena a50ec24e4a
[Network] Clean up the protocol options class. (#7196)
Add classes for each of the protocol types. Deprecated the old methods.
2019-10-18 04:04:41 +02:00
Rolf Bjarne Kvinge ca7eab8f1c
[Metal] Fix a few issues with the latest Metal API additions. Fixes #7116. (#7213)
We weren't using protocol types when we should, and we were using [BaseType]
when we shouldn't.
2019-10-17 17:46:02 +02:00
Manuel de la Pena 9f385f7794
[Networking] Add a generic method to get the metadata from the context. (#7244)
* [Networking] Add a generic method to get the metadata from the context.

There are different types of NWProtocolMetadata, being one of them (to be
added later) the NWFramerMessage that exposes extra methods.

With the current API we can only do:

```
var metadata = context.GetProtocolMetadata (protocol.ProtocolDefinition);
```

Which just returns the generic object, and if the protocol definition is
from a NWFramer, we want to be able to get the correct metadata object.

With the provided method you can do:

```
var metadata = context.GetProtocolMetadata<NWFramerMessage> (protocol.ProtocolDefinition);
```

Which allows the user to specify the expected metadata type from a given
protocol definition.
2019-10-17 17:04:42 +02:00
Rolf Bjarne Kvinge ad0489f79c
Fix a few introspection issues on Catalina. (#7212) (#7239)
* [SceneKit] Adjust deprecation message.

Fixes this introspection failure:

    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Type: SCNLayer
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_PixelFormat, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_PixelFormat, Type: SCNView

* [tests] Fix introspection and xammac tests on Catalina. (#7200)

* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.

* [introspection] Ignore MTLCounterSampleBufferDescriptor's selectors.

They're implemented using a different/internal type:

    $ nm /System/Library/Frameworks/Metal.framework/Metal | grep MTLCounterSampleBuffer
    00000000000458ab t +[MTLCounterSampleBufferDescriptor allocWithZone:]
    0000000000045897 t +[MTLCounterSampleBufferDescriptor alloc]
    000000000004591e t -[MTLCounterSampleBufferDescriptor copyWithZone:]
    000000000004598e t -[MTLCounterSampleBufferDescriptorInternal copyWithZone:]
    0000000000045c0f t -[MTLCounterSampleBufferDescriptorInternal counterSet]
    0000000000045936 t -[MTLCounterSampleBufferDescriptorInternal dealloc]
    0000000000045b65 t -[MTLCounterSampleBufferDescriptorInternal hash]
    0000000000045a31 t -[MTLCounterSampleBufferDescriptorInternal isEqual:]
    0000000000045c58 t -[MTLCounterSampleBufferDescriptorInternal label]
    0000000000045c7f t -[MTLCounterSampleBufferDescriptorInternal sampleCount]
    0000000000045c25 t -[MTLCounterSampleBufferDescriptorInternal setCounterSet:]
    0000000000045c6e t -[MTLCounterSampleBufferDescriptorInternal setLabel:]
    0000000000045c90 t -[MTLCounterSampleBufferDescriptorInternal setSampleCount:]
    0000000000045c47 t -[MTLCounterSampleBufferDescriptorInternal setStorageMode:]
    0000000000045c36 t -[MTLCounterSampleBufferDescriptorInternal storageMode]
    000000000010b0b8 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b0e0 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptorInternal
    0000000000107070 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._counterSet
    0000000000107078 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._label
    0000000000107088 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._sampleCount
    0000000000107080 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._storageMode
    000000000010b108 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b130 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptorInternal

Fixes these test failures:

    1) ApiSelectorTest.InstanceMethods (Introspection.MacApiSelectorTest.ApiSelectorTest.InstanceMethods)
         8 errors found in 26658 instance selector validated:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : counterSet
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setCounterSet:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : label
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setLabel:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : sampleCount
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setSampleCount:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : storageMode
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setStorageMode:

* [introspection] Ignore some API we've bound incorrectly. Fixes #7116.

There are also a few API fixes, those will be submitted in a different PR.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-17 07:20:22 +02:00
Sebastien Pouliot a50c753117
[coreimage] Update for Xcode 11[.2] (#7216)
Apple decided to expose most (but not all) `CIFilter` using protocols
(instead of weakly named dictionaries). Most of this maps well with
our strong bindings but there are cases where we:

* missing some properties (easy, there were added); or
* used a different types [1] and that requires new members / obsoletion

A few other API were also added in Xcode 11 (nothing in 11.1 or 11.2) and
included in this PR.

New introspection tests were also added to minimize the risk that
the API and generator changes produced incorrect code. This lead
to the finding of some missing API (in particular `Output*` properties)
that were added.

[1] Often ours are better (using `float` for a `bool` value is not
optimal) but we do not have `[BindAs]` for protocols :( to _fix_ them

Note: this replace draft PR https://github.com/xamarin/xamarin-macios/pull/7120 but it's has quite a bit of changes in filter generation (inlining protocols) and that affected bindings too.
2019-10-16 09:16:32 -04:00
Rolf Bjarne Kvinge 1d88f13be6
Fix a few introspection issues on Catalina. (#7212)
* [SceneKit] Adjust deprecation message.

Fixes this introspection failure:

    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Type: SCNLayer
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_PixelFormat, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_PixelFormat, Type: SCNView

* [tests] Fix introspection and xammac tests on Catalina. (#7200)

* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.

* [introspection] Ignore MTLCounterSampleBufferDescriptor's selectors.

They're implemented using a different/internal type:

    $ nm /System/Library/Frameworks/Metal.framework/Metal | grep MTLCounterSampleBuffer
    00000000000458ab t +[MTLCounterSampleBufferDescriptor allocWithZone:]
    0000000000045897 t +[MTLCounterSampleBufferDescriptor alloc]
    000000000004591e t -[MTLCounterSampleBufferDescriptor copyWithZone:]
    000000000004598e t -[MTLCounterSampleBufferDescriptorInternal copyWithZone:]
    0000000000045c0f t -[MTLCounterSampleBufferDescriptorInternal counterSet]
    0000000000045936 t -[MTLCounterSampleBufferDescriptorInternal dealloc]
    0000000000045b65 t -[MTLCounterSampleBufferDescriptorInternal hash]
    0000000000045a31 t -[MTLCounterSampleBufferDescriptorInternal isEqual:]
    0000000000045c58 t -[MTLCounterSampleBufferDescriptorInternal label]
    0000000000045c7f t -[MTLCounterSampleBufferDescriptorInternal sampleCount]
    0000000000045c25 t -[MTLCounterSampleBufferDescriptorInternal setCounterSet:]
    0000000000045c6e t -[MTLCounterSampleBufferDescriptorInternal setLabel:]
    0000000000045c90 t -[MTLCounterSampleBufferDescriptorInternal setSampleCount:]
    0000000000045c47 t -[MTLCounterSampleBufferDescriptorInternal setStorageMode:]
    0000000000045c36 t -[MTLCounterSampleBufferDescriptorInternal storageMode]
    000000000010b0b8 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b0e0 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptorInternal
    0000000000107070 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._counterSet
    0000000000107078 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._label
    0000000000107088 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._sampleCount
    0000000000107080 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._storageMode
    000000000010b108 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b130 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptorInternal

Fixes these test failures:

    1) ApiSelectorTest.InstanceMethods (Introspection.MacApiSelectorTest.ApiSelectorTest.InstanceMethods)
         8 errors found in 26658 instance selector validated:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : counterSet
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setCounterSet:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : label
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setLabel:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : sampleCount
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setSampleCount:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : storageMode
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setStorageMode:

* [introspection] Ignore some API we've bound incorrectly. Fixes #7116.

There are also a few API fixes, those will be submitted in a different PR.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-16 08:01:55 +02:00
monojenkins b16f41abd0 [linker] Ensure we can remove NSUrlSessionHandler if unused (#7164)
Moving `NSUrlSessionHandler` into the platform assemblies (e.g.
Xamarin.iOS.dll) instead of System.Net.Http.dll was not optimal as it
prevented the linker to remove it when the application did not use it.

This shows a lot in an "helloworld" type of application (see below)
but in real life most of the removed code gets used by something else
(and is included.

```
Directories / Files                                                              helloworld-d16-4.app helloworld-fixed.app         diff            %
./
        AppIcon60x60@2x.png                                                             2,632        2,632            0       0.00 %
        AppIcon76x76@2x~ipad.png                                                        3,125        3,125            0       0.00 %
        archived-expanded-entitlements.xcent                                              181          181            0       0.00 %
        Assets.car                                                                     75,688       75,688            0       0.00 %
        embedded.mobileprovision                                                        8,456        8,456            0       0.00 %
        helloworld                                                                  4,700,256    3,915,936     -784,320     -16.69 %
        helloworld.aotdata.arm64                                                        1,448        1,432          -16      -1.10 %
        helloworld.exe                                                                  6,144        6,144            0       0.00 %
        Info.plist                                                                      1,712        1,712            0       0.00 %
        mscorlib.aotdata.arm64                                                        406,080      364,104      -41,976     -10.34 %
        mscorlib.dll                                                                  561,664      501,760      -59,904     -10.67 %
        NOTICE                                                                            159          159            0       0.00 %
        PkgInfo                                                                             8            8            0       0.00 %
        System.aotdata.arm64                                                           17,008          936      -16,072     -94.50 %
        System.Core.aotdata.arm64                                                       2,432            0       -2,432    -100.00 %
        System.Core.dll                                                                 4,608            0       -4,608    -100.00 %
        System.dll                                                                     32,768        5,120      -27,648     -84.38 %
        System.Net.Http.aotdata.arm64                                                  31,648            0      -31,648    -100.00 %
        System.Net.Http.dll                                                            29,184            0      -29,184    -100.00 %
        Xamarin.iOS.aotdata.arm64                                                      62,544       33,464      -29,080     -46.50 %
        Xamarin.iOS.dll                                                                92,672       53,248      -39,424     -42.54 %
./_CodeSignature
        CodeResources                                                                   7,575        6,655         -920     -12.15 %
./LaunchScreen.storyboardc
        01J-lp-oVM-view-Ze5-6b-2t3.nib                                                  1,831        1,835            4       0.22 %
        Info.plist                                                                        258          258            0       0.00 %
        UIViewController-01J-lp-oVM.nib                                                   896          896            0       0.00 %
./Main.storyboardc
        BYZ-38-t0r-view-8bC-Xf-vdC.nib                                                  1,836        1,832           -4      -0.22 %
        Info.plist                                                                        258          258            0       0.00 %
        UIViewController-BYZ-38-t0r.nib                                                   916          916            0       0.00 %

Statistics

Native subtotal                                                                     4,700,256    3,915,936     -784,320     -16.69 %
    Executable                                                                      4,700,256    3,915,936     -784,320     -16.69 %
    AOT data *.aotdata                                                                      0            0            0          -

Managed *.dll/exe                                                                     727,040      566,272     -160,768     -22.11 %

TOTAL                                                                               6,053,987    4,986,755   -1,067,232     -17.63 %
```
2019-10-15 17:50:42 -04:00
Pramit Mallick 6cee62c10c
[AppKit] Bindings - part 1 (#7187)
* Added NSButtonTouchBarItem interface

* Added NSTextScalingType

* name changes

* Text Scaling options

* Deprecated KeyEquivalentFont

* Deprecated CopiesOnScroll

* Added missing enums first

* Added some deprecated attributes

* some more deprecations

* Strong typed TextScaling

* apple docs to correct deprecations

* Changed deprecated messages

* strong typing NSTouchBarItemIdentifier identifier

* internal attr

* Making TextScalingDocumentOption simple Fields following UIKit

* smart enum for identifier
2019-10-15 17:41:56 -04:00
Manuel de la Pena 4cff2bc4e3
[Networking] Improve the NWBrowser API. (#7214)
Kept the API as it was but added a new handler that will be called when
all the changes from the browser have been done. The old Set* method
could be deleted in a future release and just expose the property.
2019-10-15 14:31:31 -04:00
Vincent Dondain 61d0e1809f Merge remote-tracking branch 'origin/master' into master-merge-d16-4 2019-10-14 18:17:35 -04:00
Vincent Dondain a71292165e Merge branch 'd16-4' into master-merge-d16-4 2019-10-14 18:06:42 -04:00
Rolf Bjarne Kvinge a8fdf6db6e
Implement a different escaping/quoting algorithm for arguments to System.Diagnostics.Process. (#7177)
* Implement a different escaping/quoting algorithm for arguments to System.Diagnostics.Process.

mono changed how quotes should be escaped when passed to
System.Diagnostic.Process, so we need to change accordingly.

The main difference is that single quotes don't have to be escaped anymore.

This solves problems like this:

    System.ComponentModel.Win32Exception : ApplicationName='nuget', CommandLine='restore '/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories/ios-samples/WorkingWithTables/Part 3 - Customizing a Table\'s appearance/3 - CellCustomTable/CellCustomTable.sln' -Verbosity detailed -SolutionDir '/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories/ios-samples/WorkingWithTables/Part 3 - Customizing a Table\'s appearance/3 - CellCustomTable'', CurrentDirectory='/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories', Native error= Cannot find the specified file
      at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0029f] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-08/external/bockbuild/builds/mono-x64/mcs/class/System/System.Diagnostics/Process.cs:778

ref: https://github.com/mono/mono/pull/15047

* Rework process arguments to pass arrays/lists around instead of quoted strings.

And then only convert to a string at the very end when we create the Process
instance.

In the future there will be a ProcessStartInfo.ArgumentList property we can
use to give the original array/list of arguments directly to the BCL so that
we can avoid quoting at all. These changes gets us almost all the way there
already (except that the ArgumentList property isn't available quite yet).

We also have to bump to target framework version v4.7.2 from v4.5 in several
places because of 'Array.Empty<T> ()' which is now used in more places.

* Parse linker flags from LinkWith attributes.

* [sampletester] Bump to v4.7.2 for Array.Empty<T> ().

* Fix typo.

* Rename GetVerbosity -> AddVerbosity.

* Remove unnecessary string interpolation.

* Remove unused variable.

* [mtouch] Simplify code a bit.

* Use implicitly typed arrays.
2019-10-14 16:18:46 +02:00
Waleed Chaudhry b3d566db3b
[WatchKit] Add WatchKit bindings for Xcode 11.2 (#7202)
* [WatchKit] Add WatchKit bindings for Xcode 11.2
2019-10-11 11:00:31 -04:00
Rolf Bjarne Kvinge f8f7de004c
[tests] Fix introspection and xammac tests on Catalina. (#7200)
* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-10 08:35:38 +02:00
Manuel de la Pena e37549bc90
[Networking] Bring the framework up to Xcode 11.1 (#7091)
Add most of the new classes for Networking on Xcode11.1
2019-10-07 21:53:04 -04:00
Vincent Dondain a3076f29a3 Merge branch 'xcode11.1' into d16-4 2019-10-07 21:46:13 -04:00
Pramit Mallick 3a69f54564
changed AudioTypes enum (#7185) 2019-10-07 18:29:30 -04:00
monojenkins e2963d9e24 [xcode11.1] [Foundation] Remove a possible race condition when interacting with the notification centre. (#7184)
* [Foundation] Remove a possible race condition when intereacting with the notification centre.

Although it looked that it was not possible, due to the fact that the
RemoveObserversFromList oes lock on the list of observers, we have
threads that are stepping on each other when the list is cleaned up.
Adding a lock around the AddObserver and RemoveObserver will ensure that
the handler does not call the removal more than once with an object that
was already removed.

Fixes https://github.com/xamarin/xamarin-macios/issues/6387

* Move the removal of the notification to inside the lock in the dispose method.

* Better locking as per reviews.
2019-10-07 14:11:54 -04:00
Vũ Đức Tuyến fec41fa64a Fix #7174: ArgumentNullException for NSExpression.FromConstant (#7181)
* - Add missing NullAllowed attribute
- Add unit test for null value

* Normalize coding style
2019-10-07 14:09:17 +02:00
Sebastien Pouliot 02b546ffc1
[registrar] Fix assignation of `value` to IsConstructor (#7167)
It does not look like an issue, at least today, since it's always set to
`false` but better fix it before it becomes an hard to debug issue

```
$ git grep "IsConstructor = "
src/ObjCRuntime/Registrar.cs:                                                           IsConstructor = false,
src/ObjCRuntime/Registrar.cs:                                                                   IsConstructor = false,
src/ObjCRuntime/Registrar.cs:                                                   IsConstructor = false,
```
2019-10-04 08:56:33 -04:00
monojenkins c7d9fc10f8 [d16-4] [AppKit] Add missing Accessibility protocols. (#7146)
* [AppKit] Add missing Accessibility protocols.

This commit adds a few protocols that were missing. It is interesting to
mention that there are two of the protocols that are decorated with
NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION, as per Apple documentation
this means that:

'Unlike normal protocols, when you adopt one of the role-specific protocols,
 Xcode may ask you to reimplement methods that have already been implemented
 by one of your ancestors.

 In order to ensure that your control returns accurate and useful information,
 some methods are tagged with the NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION
 attribute. For these methods, you need to override your superclass’s
 implementation with your own.
'

In this case, we need to add the methods from all the parent classes and
set them to be [Abstract] since they are required. Not all methods have
to be added ONLY the required ones.

fixes: https://github.com/xamarin/xamarin-macios/issues/7079

* Remove the new methods.
2019-10-02 11:04:41 -05:00
Sebastien Pouliot 82b84d0c8f
[linker] Ensure we can remove NSUrlSessionHandler if unused (#7151)
Moving `NSUrlSessionHandler` into the platform assemblies (e.g.
Xamarin.iOS.dll) instead of System.Net.Http.dll was not optimal as it
prevented the linker to remove it when the application did not use it.

This shows a lot in an "helloworld" type of application (see below)
but in real life most of the removed code gets used by something else
(and is included.

```
Directories / Files                                                              helloworld-d16-4.app helloworld-fixed.app         diff            %
./
        AppIcon60x60@2x.png                                                             2,632        2,632            0       0.00 %
        AppIcon76x76@2x~ipad.png                                                        3,125        3,125            0       0.00 %
        archived-expanded-entitlements.xcent                                              181          181            0       0.00 %
        Assets.car                                                                     75,688       75,688            0       0.00 %
        embedded.mobileprovision                                                        8,456        8,456            0       0.00 %
        helloworld                                                                  4,700,256    3,915,936     -784,320     -16.69 %
        helloworld.aotdata.arm64                                                        1,448        1,432          -16      -1.10 %
        helloworld.exe                                                                  6,144        6,144            0       0.00 %
        Info.plist                                                                      1,712        1,712            0       0.00 %
        mscorlib.aotdata.arm64                                                        406,080      364,104      -41,976     -10.34 %
        mscorlib.dll                                                                  561,664      501,760      -59,904     -10.67 %
        NOTICE                                                                            159          159            0       0.00 %
        PkgInfo                                                                             8            8            0       0.00 %
        System.aotdata.arm64                                                           17,008          936      -16,072     -94.50 %
        System.Core.aotdata.arm64                                                       2,432            0       -2,432    -100.00 %
        System.Core.dll                                                                 4,608            0       -4,608    -100.00 %
        System.dll                                                                     32,768        5,120      -27,648     -84.38 %
        System.Net.Http.aotdata.arm64                                                  31,648            0      -31,648    -100.00 %
        System.Net.Http.dll                                                            29,184            0      -29,184    -100.00 %
        Xamarin.iOS.aotdata.arm64                                                      62,544       33,464      -29,080     -46.50 %
        Xamarin.iOS.dll                                                                92,672       53,248      -39,424     -42.54 %
./_CodeSignature
        CodeResources                                                                   7,575        6,655         -920     -12.15 %
./LaunchScreen.storyboardc
        01J-lp-oVM-view-Ze5-6b-2t3.nib                                                  1,831        1,835            4       0.22 %
        Info.plist                                                                        258          258            0       0.00 %
        UIViewController-01J-lp-oVM.nib                                                   896          896            0       0.00 %
./Main.storyboardc
        BYZ-38-t0r-view-8bC-Xf-vdC.nib                                                  1,836        1,832           -4      -0.22 %
        Info.plist                                                                        258          258            0       0.00 %
        UIViewController-BYZ-38-t0r.nib                                                   916          916            0       0.00 %

Statistics

Native subtotal                                                                     4,700,256    3,915,936     -784,320     -16.69 %
    Executable                                                                      4,700,256    3,915,936     -784,320     -16.69 %
    AOT data *.aotdata                                                                      0            0            0          -

Managed *.dll/exe                                                                     727,040      566,272     -160,768     -22.11 %

TOTAL                                                                               6,053,987    4,986,755   -1,067,232     -17.63 %
```
2019-10-02 10:10:26 -04:00
Vincent Dondain d81f05feab
[SceneKit] Update for Xcode 11 (#7140) 2019-10-01 10:55:49 -04:00
Rolf Bjarne Kvinge 3ec3470a4e
[UIKit] Add '[Appearance]' to a few appearance properties. Fixes #6938, (#7134)
Add '[Appearance]' to a few appearance properties as defined in Apple's headers.

Fixes https://github.com/xamarin/xamarin-macios/issues/6938.
2019-10-01 07:21:58 +02:00
Difegue 36d9417f92 Fix the NSFileTypeForHFSTypeCode enum (#6676)
* Rework NSFileTypeForHFSTypeCode

* Start writing 4cc test

* Update NSWorkspace.cs

* Fix formatting issues

* Fix tests

* Update src/AppKit/Enums.cs

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Update src/AppKit/NSWorkspace.cs

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Reintroduce old NSFileTypeForHFSTypeCode

+ Fix tests style

* Invert XAMCORE_4_0 check

* Fix xtro (new API added)
2019-09-27 14:14:15 -04:00
Sebastien Pouliot 05af7ac183
[generator] Reduce code duplication in trampolines by introducing a new base type (#7118)
This saves 107kb (0.7%) in Xamarin.iOS.dll (managed code and metadata).
Release (AOT) size reduction will vary depending on how much the linker can remove.

```
-rwxr-xr-x  1 poupou  staff  15963136 26 Sep 10:16 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  12301824 26 Sep 10:16 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  17126912 26 Sep 10:16 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  8375296 26 Sep 10:13 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/Xamarin.TVOS.dll
-rwxr-xr-x  1 poupou  staff  11671040 26 Sep 10:13 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/Xamarin.TVOS.dll
-rwxr-xr-x  1 poupou  staff  7321088 26 Sep 10:12 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/Xamarin.WatchOS.dll
-rwxr-xr-x  1 poupou  staff  5295104 26 Sep 10:12 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.WatchOS/Xamarin.WatchOS.dll
lrwxr-xr-x  1 poupou  staff  38 26 Sep 10:11 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/mono/Xamarin.Mac/Xamarin.Mac.dll -> ../../reference/mobile/Xamarin.Mac.dll
lrwxr-xr-x  1 poupou  staff  36 26 Sep 10:11 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/mono/4.5/Xamarin.Mac.dll -> ../../reference/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  21060096 26 Sep 10:16 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/reference/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  21063168 26 Sep 10:16 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/reference/mobile/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  21060096 26 Sep 10:16 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/x86_64/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  21063168 26 Sep 10:16 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/x86_64/mobile/Xamarin.Mac.dll
```

```
-rwxr-xr-x  1 poupou  staff  15853568 26 Sep 11:15 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  12244480 26 Sep 11:15 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.iOS/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  17017344 26 Sep 11:15 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/Xamarin.iOS.dll
-rwxr-xr-x  1 poupou  staff  8346624 26 Sep 11:13 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.TVOS/Xamarin.TVOS.dll
-rwxr-xr-x  1 poupou  staff  11615744 26 Sep 11:13 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/64bits/Xamarin.TVOS.dll
-rwxr-xr-x  1 poupou  staff  7267328 26 Sep 11:12 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/32bits/Xamarin.WatchOS.dll
-rwxr-xr-x  1 poupou  staff  5267456 26 Sep 11:12 _ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/lib/mono/Xamarin.WatchOS/Xamarin.WatchOS.dll
lrwxr-xr-x  1 poupou  staff  38 26 Sep 10:11 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/mono/Xamarin.Mac/Xamarin.Mac.dll -> ../../reference/mobile/Xamarin.Mac.dll
lrwxr-xr-x  1 poupou  staff  36 26 Sep 10:11 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/mono/4.5/Xamarin.Mac.dll -> ../../reference/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  20979712 26 Sep 11:15 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/reference/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  20983296 26 Sep 11:15 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/reference/mobile/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  20979712 26 Sep 11:15 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/x86_64/full/Xamarin.Mac.dll
-rwxr-xr-x  1 poupou  staff  20983296 26 Sep 11:15 _mac-build/Library/Frameworks/Xamarin.Mac.framework/Versions/git/lib/x86_64/mobile/Xamarin.Mac.dll
```
2019-09-27 09:05:38 -04:00
Manuel de la Pena 2cea3568b9
[AppKit] Add missing Accessibility protocols. (#7105) 2019-09-26 09:46:38 -04:00
Manuel de la Pena 21f7ef967c
[Metal] Add some fixes that were skipped due to a fast finger clicking. (#7093) 2019-09-25 10:14:40 -04:00
monojenkins abfa32c09f [master] [generator] Do not generate PlatformNotSupportedException in chaining .ctor (#7092)
Types that are new in 64bits only OS are generated differently on 32bits
bindings. They mainly throw a `PlatformNotSupportedException` so it's
easier to diagnose (than a crash) what's happening at runtime.

This works well in all cases except one. When a new type, let's say
`UIMenuElement` is added **and** serves as a new base type for existing
types.

`UIKeyCommand` (iOS 7) -> `UICommand` (iOS 13)-> `UIMenuElement` (iOS 13)

This is _correct_ as new base types can be added (in ObjC and C#).
However the generated code for the constructors of `UICommand` and
`UIMenuElement` would be throwing a `PlatformNotSupportedException`
which breaks the `UIKeyCommand` on 32 bits devices.

We fixed this in a few places by tweaking the availability attribute
but that requires spotting the new base type while doing bindings and
that is error prone [1][2].

This PR simply does let the `protected` constructor, using when chaining,
be generated normally. It's simpler and will cover all the cases (without
requiring hacks in the availability of those types)

[1] https://github.com/xamarin/xamarin-macios/issues/7083
[2] https://github.com/xamarin/xamarin-macios/issues/7084
2019-09-24 21:12:59 -04:00
Sebastien Pouliot 6bdce2dac8
[generator] Do not generate PlatformNotSupportedException in chaining .ctor (#7085)
Types that are new in 64bits only OS are generated differently on 32bits
bindings. They mainly throw a `PlatformNotSupportedException` so it's
easier to diagnose (than a crash) what's happening at runtime.

This works well in all cases except one. When a new type, let's say
`UIMenuElement` is added **and** serves as a new base type for existing
types.

`UIKeyCommand` (iOS 7) -> `UICommand` (iOS 13)-> `UIMenuElement` (iOS 13)

This is _correct_ as new base types can be added (in ObjC and C#).
However the generated code for the constructors of `UICommand` and
`UIMenuElement` would be throwing a `PlatformNotSupportedException`
which breaks the `UIKeyCommand` on 32 bits devices.

We fixed this in a few places by tweaking the availability attribute
but that requires spotting the new base type while doing bindings and
that is error prone [1][2].

This PR simply does let the `protected` constructor, using when chaining,
be generated normally. It's simpler and will cover all the cases (without
requiring hacks in the availability of those types)

[1] https://github.com/xamarin/xamarin-macios/issues/7083
[2] https://github.com/xamarin/xamarin-macios/issues/7084
2019-09-24 16:24:08 -04:00
Sebastien Pouliot 80e6e63f87
[generator] Fix BI0000 from FormatException when no arguments are provided for an error (#7078)
Add new overloads so we can skip `String.Format` calls when relaying
messages without any arguments. Solve cases like

```
error BI0000: Unexpected error - Please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new
System.FormatException: Input string was not in a correct format.
  at System.Text.StringBuilder.AppendFormatHelper (System.IFormatProvider provider, System.String format, System.ParamsArray args) [0x000b2] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-06/external/bockbuild/builds/mono-x64/external/corefx/src/Common/src/CoreLib/System/Text/StringBuilder.cs:1445
...
```

because we failed compilation due to an (hidden) syntax error like:

```
foundation.cs(3627,3): error CS1519: Invalid token '{' in class, struct, or interface member declaration
```

where the `{` character is causing the `FormatException` inside the
generator sources.

This is now more properly reported as

```
error BI0002: bgen: Could not compile the API bindings.
	foundation.cs(3627,3): error CS1519: Invalid token '{' in class, struct, or interface member declaration
```
2019-09-24 09:08:05 -04:00
Manuel de la Pena 5703082581
[Metal] Add support up to GM1 of metal. (#7007) 2019-09-23 11:14:15 -04:00
Waleed Chaudhry 1dc3beabfa
[Generator] Provide clear error message on type mismatch with BindAs error (#7016)
* [Generator] Provide clear error message on type mismatch with BindAs attribute that results in  generator crashing. Fixes 6863.
2019-09-19 21:05:22 -04:00
Rolf Bjarne Kvinge e7a5d56dd2 Merge remote-tracking branch 'origin/xcode11' into master-xcode11 2019-09-17 19:44:13 +02:00
Rolf Bjarne Kvinge 80bcb021b3 Merge remote-tracking branch 'origin/xcode11' into d16-3-xcode11-v2 2019-09-17 08:40:53 +02:00
Waleed Chaudhry 706581c1ab Fix broken introspection tests on macOS 10.15. Fixes #6998. (#6999)
* Fix broken introspec tests on macOS 10.15

* Add aliases

* Add fields to .ignore

* Remove new line

* Add comment to .ignore
2019-09-16 23:40:34 -07:00
Rolf Bjarne Kvinge df523c8b18 Merge remote-tracking branch 'origin/xcode11' into d16-3. 2019-09-17 08:30:12 +02:00
Waleed Chaudhry 1287b324e2
[Newsstandkit] Update for Xcode 11 beta 1 (#6992)
* [Newsstandkit] Update for Xcode 11 beta 1
2019-09-13 15:23:21 -04:00
Rolf Bjarne Kvinge 303aa0a649 Merge remote-tracking branch 'origin/xcode11' into master-xcode11 2019-09-13 18:35:18 +02:00
Alex Soto b02da292bf
[corebluetooth] Update for Xcode 11 GM (#6990)
This should let us provide a nicer API for the GM change about
`CBManager authorization` moving from an instance to a static
property (in all but iOS 13.0 / watchOS 6.0)
2019-09-12 13:40:46 -04:00
Alex Soto a1fba90ecb
[ModelIO] Fix MDLAnimatedQuaternion bindings (#6991)
Quaternion does need our special marshalling.
2019-09-12 10:53:42 -04:00
Rolf Bjarne Kvinge 02b9830004 Fix a few merge breakages. 2019-09-12 11:27:23 +02:00
Rolf Bjarne Kvinge f6e0531197 Merge xcode11 into d16-3. 2019-09-12 08:29:02 +02:00
Manuel de la Pena 5511bb7ec6 [CoreHaptics] Expose protocol method that was ignored due to inheritance. (#6986)
* [CoreHaptics] Expose protocol method that was ignored due to inheritance.

After PR https://github.com/xamarin/xamarin-macios/pull/6961 we can now
do the right thing.

* Fix inheritance.
2019-09-11 20:44:36 -04:00
Manuel de la Pena 489719f56a [CoreHaptics] Remove the framework from Mac OS X until we know better. (#6987) 2019-09-11 18:49:29 -04:00
Manuel de la Pena 2a6d62dca3 [AVFoundation] Add support up to Xcode 11 GM. (#6984) 2019-09-11 18:49:02 -04:00
Manuel de la Pena 036f23331c
[MetricKit] Add new framework up to Xcode11 GM. (#6969) 2019-09-11 15:46:38 -04:00
Waleed Chaudhry d4a775d8a3
[Network] Add currentPath property to NWPathMonitor. Fixes #5603. (#6931)
* Add currentPath property to NWPathMonitor. Fixes #5603.
2019-09-11 13:00:55 -04:00
Waleed Chaudhry 240e2716ae
[Foundation] Fix validate for insert for NSMutableArray<T>. Fixes #6876. (#6967)
* Fix validate for insert for NSMutableArray<T>. Fixes #6876.
2019-09-11 12:59:45 -04:00
Whitney Schmidt 53cf1fbf0b [MapKit] Update for new API Xcode11 b1 - b7 (#6934) 2019-09-11 09:56:10 -04:00
Rolf Bjarne Kvinge 3ee1329e0e
[generator] Handle inheriting the same member from multiple protocols. Fixes #6366. (#6961)
* [generator] Handle inheriting the same member from multiple protocols. Fixes #6366.

Fixes https://github.com/xamarin/xamarin-macios/issues/6366.

* Update xtro.
2019-09-11 05:12:43 -07:00
Sebastien Pouliot 40a12f46a7 [storekit] Update for Xcode 11 GM (#6978)
The `SKArcade.h` header file has not been part of the `StoreKit.h`
umbrella header since it was added (in early Xcode 11 betas).

That was reported in https://feedbackassistant.apple.com/feedback/7017660
and it's shadow https://github.com/xamarin/maccore/issues/1913

In Xcode 11 GM is was added, but only for macOS ?!? so it is only,
for now, enabled on macOS
2019-09-11 06:35:52 -04:00
Sebastien Pouliot 188c5ee493 [homekit] Update for Xcode 11 GM (#6979)
In Xcode 11 GM the HomeKit headers were updated to mark an API deprecated
on iOS, but only on tvOS headers, where the type is not available

This API is commented until we hear back from https://feedbackassistant.apple.com/feedback/7246945
shadowed in https://github.com/xamarin/maccore/issues/1959
2019-09-11 06:34:05 -04:00
Sebastien Pouliot e7986d2645 [coreaudio] Update for Xcode 11 GM (#6975)
With xcode11 GM the tvOS and macOS headers drifted from the iOS ones.
It's not clear if they should be different (hopefully not) or if iOS
has been forgotten...

While waiting for Apple's feedback (and the avoid breaking changes)
the new (conflicting) enum values are not included.

Internal reference: https://github.com/xamarin/maccore/issues/1960
2019-09-11 01:57:16 -07:00
Sebastien Pouliot 7dd96d1a04 [medialibrary] Update for Xcode 11 GM (#6977) 2019-09-11 01:56:47 -07:00
Sebastien Pouliot a240c0d8a8 [coretext] Update for Xcode 11 GM (#6976) 2019-09-11 00:05:46 -07:00
Sebastien Pouliot c23cf5d834 [fileprovider][macos] Update (remove some) API for Xcode 11 GM (#6974)
For some reason (likely to be added back later ?) Xcode 11 GM removed
most of new macOS 10.15 API for FileProvider.

So instead of deleting stuff this uses a lot of `[NoMac]` even if some
API are actually not part of any platform anymore, e.g. you can see the
following line in the GM headers

```
API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(ios, macos)
```
2019-09-10 23:34:35 -07:00
Vincent Dondain d9d6c9d800 [clockkit] Update for Xcode 11 GM (#6972) 2019-09-11 01:47:23 -04:00
Vincent Dondain e02c1a9281 [corelocation] Update for Xcode 11 GM (#6973) 2019-09-10 23:51:56 -04:00
Manuel de la Pena b5a85a115b
[CoreHaptics] Add support for the new framework up to beta 7. (#6943) 2019-09-10 13:03:26 -04:00
Sebastien Pouliot 6488fcb8f9
[metalkit] Update for Xcode 11 up to beta 7 (#6956) 2019-09-10 09:00:53 -04:00
Rolf Bjarne Kvinge 15f0af7a1a
[registrar] Report a warning when the registrar export an abstract INativeObject type to Objective-C. (#6659)
* [registrar] Report a warning when the registrar export an abstract INativeObject type to Objective-C.

Exporting abstract types to Objective-C can lead to problems when at runtime
we're asked to create an instance of such a type (which we can't), so warn
when this happens.

This would have caught #6655, and the problems explained in #4969 as well.

Since this may trigger for code that's currently working fine, I'm making it a
warning instead of an error (which means adding some extra code to be able to
easily report warnings from the generator code).

* Don't assume a TypeReference can be successfully resolved every time.
2019-09-10 04:35:59 -07:00
Rolf Bjarne Kvinge cd7e293ce0 [UIKit] Make UITraitCollection thread-safe, since that's apparently how Apple treats it. Fixes #6706. (#6948)
Fixes https://github.com/xamarin/xamarin-macios/issues/6706.
2019-09-09 21:35:29 -04:00
Rolf Bjarne Kvinge f5cbe60ae9
[MediaPlayer] Enable API that depend on AVFoundation types for watchOS. Fixes #6597. (#6942)
Fixes https://github.com/xamarin/xamarin-macios/issues/6597.
2019-09-09 14:04:51 -07:00
Rolf Bjarne Kvinge 366f46ba21
[ModelIO] Implement new API introduced with Xcode 11 b1-7. (#6930) 2019-09-09 13:15:07 -07:00
Sebastien Pouliot 6135f47fb6
[soundanalysis][watchos] Update to include last, missing API on watchOS now that AVFoundation is merged (#6939) 2019-09-09 14:16:04 -04:00
Rolf Bjarne Kvinge 0b4fc12f32 [tests] Fix several issues that show up in the mtouch and introspection tests on macOS 10.15. (#6929)
* [introspection] Fix several issues that show up on macOS 10.15.

* [tests][mtouch] Fix a few tests according to recent changes.
2019-09-06 20:57:40 -04:00
Sebastien Pouliot afa31e56c9
[coreaudio] Update for Xcode 11 (up to beta 7) (#6919)
CoreAudioTypes is _new_ but it's just some stuff that moved around,
however it now shows up separately in our API diff (and was quite
large because of the removal/addition caused by moving headers)
2019-09-06 08:51:44 -04:00
Manuel de la Pena 93d874b351
[AVFoundation] Add support up to Xcode 11 beta 7. (#6852) 2019-09-05 20:24:13 -04:00
Manuel de la Pena 844ca7ccf4
[Foundation] Allow uses to explicitly bypass the background session check. #6443 (#6918)
Issue was reponed because users had a valid reason to want to bypass
this security check. The HttpClient should be able to work in a
background task. So we now provide a way for users to explicitly ignore
the check.

Fixes: https://github.com/xamarin/xamarin-macios/issues/6443
2019-09-05 19:12:16 -04:00
Manuel de la Pena ea1ca3dd5f
[Foundation] Expose the usage of cellular data in the NSUrlSessionHandler. (#6921)
* [foundation] Expose AllowsCellularAccess on NSUrlSessionHandler (#6059)

This property was always set to `true` but it can be useful to turn it
off (and that was not easy with the existing implementation)

* [Foundation] Ensure that we allow celullar data by default until the user says otherwise. #6762

The default value in the NSUrlSession is to allow cellular data. This
small change closes the issue, since users will not have an unexpected
result.

Later we need to provide a proper fix to allow the property to be
exposed AND used the value of the session.

Fixes: https://github.com/xamarin/xamarin-macios/issues/6762
2019-09-05 19:11:30 -04:00
Manuel de la Pena 4a08c6c7b2
[Foundation] Ensure that we allow celullar data by default until the user says otherwise. #6762 (#6916)
* [Foundation] Ensure that we allow celullar data by default until the user says otherwise. #6762

The default value in the NSUrlSession is to allow cellular data. This
small change closes the issue, since users will not have an unexpected
result.

Later we need to provide a proper fix to allow the property to be
exposed AND used the value of the session.

Fixes: https://github.com/xamarin/xamarin-macios/issues/6762
2019-09-05 16:03:10 -04:00
Manuel de la Pena 733d88e161
[CoreMidi] Update framework to the latests Xcode11 beta 7. (#6908) 2019-09-05 09:39:56 -04:00
Rolf Bjarne Kvinge c000ea0d54
[AVFoundation] Add constructor for AVCaptureSynchronizedDepthData to fix breaking change. (#6911)
AVCaptureSynchronizedDepthData's init method is not available, which means we
should make the corresponding binding obsolete. We've already removed the
bound constructor, because it made introspection crash, this is just the
second part.
2019-09-05 01:37:58 -07:00
Sebastien Pouliot 533cf01569
[imageio] Update for Xcode11 beta 7 (#6897) 2019-09-04 16:21:58 -04:00
Manuel de la Pena 1d9452a502
[CoreData] Add support up to Xcode11 beta 7. (#6896) 2019-09-04 09:32:29 -04:00
Rolf Bjarne Kvinge a04708190f
[src] Fix generic Contacts API. Fixes #6561. (#6895)
Make CNFetchResult generic (which it is in Objective-C), and add a generic
version of NSEnumerator (which Objective-C also has), so that we can bind two
API in CNContactStore that uses generic versions of those types.

Fixes https://github.com/xamarin/xamarin-macios/issues/6561.
2019-09-03 22:47:51 -07:00
Sebastien Pouliot 9e193eaca3
[foundation] Add support for NSValue/CGAffineTransform and StoreValueAtAddress overload (#6887)
Support for `NSValue`/`CGAffineTransform` exists in iOS/tvOS/watchOS,
from UIKit, but not for macOS. However this will be required for the
new protocols inside CoreImage.

Also add an overload for `StoreValueAtAddress` since the original
one was deprecated but we did not provide the new alternative to
update the code.
2019-08-30 18:00:04 -04:00
Sebastien Pouliot bc988580d9
[watchkit] Update for Xcode 11 up to beta 7 (#6882) 2019-08-30 14:29:24 -04:00
Manuel de la Pena b062b4c5b6
[Foundation] Remove a possible race condition when interacting with the notification centre. (#6537)
Ensure that we do lock when we are trying to remove the notification obj from the notification center so that another thread does not try to remove a null obj.
2019-08-30 14:21:28 -04:00
Alex Soto f933589401
Merge pull request #6844 from dalexsoto/alex-visionkit-xcode11
[VisionKit] Add Xcode 11 Beta 1 - 6 bindings
2019-08-30 11:19:18 -04:00
Whitney Schmidt 075fa2b477
[Xcode11] [carplay] Updates for beta 5 (#6678)
* carplay updates for b5

* Revert "delete iOS-CarPlay.todo"

This reverts commit 851a424557001c865b8dfe62c920f132cf84db06.

* actually remove iOS-CarPlay.todo

* delete .todo
2019-08-30 11:08:42 -04:00
Sebastien Pouliot c3d721e318
[generator] Fix CS1522 warning building generated bindings (#6881)
It's now possible to have an empty smart `enum` but this was generating
an empty switch statement that `csc` would warn us about, e.g.

```
build/{profile}/ASAuthorizationProviderAuthorizationOperation.g.cs(64,24): warning CS1522: Empty switch block
```

This fix the generation to skip the `switch` generation when no fields
are present in the enum.
2019-08-30 10:47:48 -04:00
Rolf Bjarne Kvinge 5c45c3eb1c [registrar] Fix computation of full token references. 2019-08-30 12:47:17 +02:00
Rolf Bjarne Kvinge 344dadb212
Bump the minimum iOS version to 7.0. Fixes #6213. (#6878)
Xcode 11 doesn't support anything below iOS 7.0 (the linker will automatically
change the deployment target to 7.0), so we need to drop support as well
(since our native bits will be targetting iOS 7.0, and we can't change that).

https://github.com/xamarin/xamarin-macios/issues/6213
2019-08-30 01:07:30 -07:00
monojenkins 125bac28a9 [xcode11] [Foundation] Ensure that the collection is not modified during the loop. #6704 (#6880)
* [Foundation] Ensure that the collection is not modified during the loop. #6704

Collections should not be modified during the loop, this is bad
practice and was a side effect of the TrySetCanceled. Is better to
create a temp collection with all the sources and cancel each of them.

Fixes https://github.com/xamarin/xamarin-macios/issues/6704
2019-08-29 19:14:13 -04:00
Manuel de la Pena e25acbb71b
[Foundation] Ensure that the collection is not modified during the loop. #6704 (#6877)
* [Foundation] Ensure that the collection is not modified during the loop. #6704

Collections should not be modified during the loop, this is bad
practice and was a side effect of the TrySetCanceled. Is better to
create a temp collection with all the sources and cancel each of them.

Fixes https://github.com/xamarin/xamarin-macios/issues/6704
2019-08-29 14:04:43 -04:00
prmallic fb225bbbdd
[UIKit] Fix threading issue in the selector performAsCurrentTraitCollection. #6870 (#6872)
The thread safe decorator was missing which made the API not behave like the Apple docs states.

https://github.com/xamarin/xamarin-macios/issues/6870
2019-08-29 09:25:59 -04:00
Manuel de la Pena d3c4c41aea
[CoreMedia] Add support up to Xcode beta 7. (#6858) 2019-08-29 09:12:18 -04:00
Sebastien Pouliot 1b8bb4b5c8
[security] Partial updates for Xcode 11 (up to beta 7) (#6867)
This includes some (3) older, unbound API from Xcode 10 and earlier.
It also move some (one) new API to the ignore list.
2019-08-29 08:17:06 -04:00
Sebastien Pouliot c5d75e18be
[network][watchos] Enable Network.framework for watchOS (new in 6.0) (#6874)
Note that there is no new Xcode 11 API in this PR - just existing
API (from Xcode 10) now available on watchOS 6.
2019-08-28 21:22:10 -04:00
Sebastien Pouliot dc5fc120e0
[xcode11] Fix introspection tests running on 10.15 beta bots (#6866)
reference:
https://jenkins.internalx.com/blue/organizations/jenkins/macios/detail/xcode11/249/pipeline/202/
2019-08-28 11:48:08 -04:00
Jonathan CONTE dab13aa9b8 [AVKit] Update for Xcode 11 up to beta 7 (#6748) 2019-08-28 10:24:02 -04:00
Rolf Bjarne Kvinge 37e710c44b
[generator] Reference bound *Appearance types using global:: syntax. Fixes #6834. (#6859)
The generator will create special *Appearance types (these are nested
classes). If we've bound a type with the same *Appearance name, we can end up
in a situation where the csc compiler uses the the type we don't want due to
C#'s resolution rules - this happens if the bound *Appearance type is
referenced from the containing type of the special *Appearance type. So always
reference the bound *Appearance types using global:: syntax.

Fixes https://github.com/xamarin/xamarin-macios/issues/6834.
2019-08-28 01:20:38 -07:00
Alex Soto 9ac701128b
fix header name 2019-08-27 20:25:33 -04:00
Alex Soto 7d7550cb26
[VisionKit] Add Xcode 11 Beta 1 - 6 bindings 2019-08-27 17:54:48 -04:00
Rolf Bjarne Kvinge 73ce0f8882
[registrar] Fix verification of generic parameters to accept unrelated generic types. Fixes #6687. (#6850)
* [registrar] Fix verification of generic parameters to accept unrelated generic types. Fixes #6687.

When we export generic classes to Objective-C, we verify that any generic
parameters are constrained so that we know how to handle them.

Example:

    class MyObj<T> : NSObject where T: NSObject
    {
        [Export ("foo:")]
        public void Foo (T obj);
    }

in this case we verify that the parameter T is constrained to NSObject, so
that we can treat the argument like an NSObject.

The problem was when the function contained a generic type which was not
related to T:

    class MyObj<T> : NSObject where T: NSObject
    {
        [Export ("foo:")]
        public void Foo (Action<int> obj);
    }

in which case the same logic would kick in and reject the Action<int> type
since it's not related to NSObject (no generic arguments could be found, and
the default response was 'not valid').

So I've changed the default response for generic types that are unrelated to
the generic parameter we're verifying to accept such types.

Fixes https://github.com/xamarin/xamarin-macios/issues/6687.

* No need to use a UIViewController as the super class, NSObject works just fine for this test.

Fixes the test build on macOS.
2019-08-27 06:41:17 -07:00
Sebastien Pouliot fac23dc599
[xcode11] Update with Xcode 10.3 changes and fix intro on iOS 12.4 (#6851)
Xcode 10.3 was released over the summer with a very small subset
of the (already out) Xcode 11 betas API.

This PR fix some availability attributes and also ensure we can
run introspection tests successfully on an iOS 12.4 device.
2019-08-27 08:38:12 -04:00
Rolf Bjarne Kvinge cce789d481
[generator] Handle subclasses of NSObject as ref/out parameters in third-party libraries. Fixes #6828. (#6829) (#6847)
For third-party libraries we need to look up the base type using the BaseType attribute.

Fixes https://github.com/xamarin/xamarin-macios/issues/6828.
2019-08-26 07:14:26 -07:00
Rolf Bjarne Kvinge 4e70034b96
[generator] Handle subclasses of NSObject as ref/out parameters in third-party libraries. Fixes #6828. (#6829)
For third-party libraries we need to look up the base type using the BaseType attribute.

Fixes https://github.com/xamarin/xamarin-macios/issues/6828.
2019-08-26 01:06:13 -07:00
Alex Soto 515f6640cc
[Vision] Update bindings to Xcode 11 Beta 1 - 6 (#6837)
Fixes #6830

* [Vision] Update bindings to Xcode 11 Beta 1 - 6

* Fix feedback

* More feedback
2019-08-23 20:08:49 -04:00
Manuel de la Pena 85f7b010a4
[CoreVideo] Update framework for Xcode 11 beta 6. (#6822) 2019-08-22 14:57:08 +02:00
Sebastien Pouliot edcfeab1fd
[authenticationservices] Remove [Abstract] from ASAuthorizationPasswordRequest. Fix #6816 (#6819)
The documentation was updated and does not mention this anymore.

References:
* https://developer.apple.com/documentation/authenticationservices/asauthorizationpasswordrequest?language=objc
* https://github.com/xamarin/xamarin-macios/issues/6816
2019-08-21 13:38:39 -04:00
Vincent Dondain dd394471a5 [fileprovider] Update for Xcode 11 beta 6 (#6801) 2019-08-20 22:41:08 -04:00
Alex Soto a0b73b6663
[UIKit] Update bindings to Xcode 11 Beta 6 (#6807)
* [UIKit] Update bindings to Xcode 11 Beta 6

* Update src/uikit.cs

* Apply suggestions from code review

* Update src/uikit.cs

* Update src/uikit.cs

* Update src/uikit.cs
2019-08-20 21:55:08 -04:00
Sebastien Pouliot e9c26b31e3 [authenticationservices] Update for Xcode 11 beta 6 (#6804) 2019-08-20 17:18:16 -04:00
Sebastien Pouliot 91d228add9 [replaykit] Update for Xcode 11 beta 6 (#6803) 2019-08-20 17:15:16 -04:00
Vincent Dondain a7ed151c89
[videosubscriberaccount] Update for Xcode 11 beta 6 (#6800) 2019-08-20 14:43:01 -04:00
Sebastien Pouliot 4b61850243
[xcode11] Bump for beta 6 (#6798)
AVFoundation crash added to https://github.com/xamarin/xamarin-macios/issues/6212
2019-08-20 10:06:18 -04:00
Sebastien Pouliot d5f5eebb75
[quicklookthumbnailing] Update for Xcode11 beta 1 to 5 (#6789)
New framework - but it includes some of iOS API that were previously in
QuickLook.framework. Types were moved but remains in the old namespace
until `XAMCORE_4_0` is defined.
2019-08-19 09:01:52 -04:00
Sebastien Pouliot 310d694a9c
[networkextension] Update for Xcode 11 beta 1 to 5 (#6788) 2019-08-16 14:18:40 -04:00
Alex Soto a509166b35
[CoreML] Update bindings to Xcode 11 Beta 1 - 5 (#6784)
* [CoreML] Update bindings to Xcode 11 Beta 1 - 5

* Apply feedback
2019-08-15 21:06:00 -04:00
Sebastien Pouliot 6b1b7971f8
[iad] Update for Xcode beta 1 to 5 (#6780) 2019-08-15 14:04:47 -04:00
Sebastien Pouliot 30c6b01daf
[corewlan][macos] Update for Xcode 11 beta 1 (#6779)
No other change in beta 2 to beta 5
2019-08-15 11:51:14 -04:00
Sebastien Pouliot b9201c7afc
[executionpolicy] Update for Xcode 11 beta 1 (#6774)
New framework for macOS-only
No changes in beta 2 to 5
2019-08-14 22:07:55 -04:00
Sebastien Pouliot cafbec1a0f
[gamekit] Update for Xcode 11 beta 1 to 5 (#6773)
`gamePlayerID` and `teamPlayerID` are decorated as `[iOS (12,4)]...` since
the headers mention so in both Xcode 11 betas and the recent 10.3 (stable)
https://github.com/xamarin/xamarin-macios/wiki/GameKit-iOS-xcode103-final

The `enum GKError` has been unified (at some point) so it was simplified.
2019-08-14 22:07:15 -04:00
Sebastien Pouliot 45d90b6995
[macos][imagekit] Update for Xcode 11 beta 1 (#6772)
No change in beta 2 to 5
2019-08-14 22:06:24 -04:00
Sebastien Pouliot 04263f36d4
[contactsui] Update for Xcode 11 beta 1 to 5 (#6771)
Mark the `iconWithContact:` API as not available with Catalyst

Note that the category `UIApplicationShortcutIcon (ContactsUI)` was
inlined in UIKit's `UIApplicationShortcutIcon` so only that file needs
to be updated.
2019-08-14 22:03:52 -04:00
Sebastien Pouliot 3893981ac0
[eventkit] Obsolete `EKReminder` default constructor (#6768)
`[EKReminder init]` is not usable and now return `nil`.

Before Xcode 11 it was never really usable but an instance was returned.

references:
* https://feedbackassistant.apple.com/feedback/6453725
* https://github.com/xamarin/maccore/issues/1832
2019-08-14 13:10:20 -04:00
Rolf Bjarne Kvinge d4192a59f0
[xcode11] Remove the WatchKit framework from iOS while keeping API stability. Fixes #6492. (#6503)
* [WatchKit] Remove this framework for iOS while keeping backwards compatibility. Fixes #6492.

* Copy all generated sources and modify them to throw PlatformNotSupported exceptions.
* Adjust some existing source code to also throw PlatformNotSupported exceptions.
* Sprinkle Obsolete attributes generously.
* Stop generating code for the WatchKit framework for iOS.

Fixes https://github.com/xamarin/xamarin-macios/issues/6492.

* [introspection] Adjust test.

* [mtouch] Don't link with WatchKit, and show a warning if we detect code that want to use WatchKit.

* [xtro] Remove WatchKit for iOS.

* [introspection] Don't check obsoleted NSString fields for null.

There's probably a reason the field was obsoleted.

* [introspection] Add exception for the WatchKit framework.

* [xtro] Ignore obsolete enums.

There's probably a reason they're obsoleted.

In particular it solves a confusion between WKWebKit.WKErrorCode and
WatchKit.WKErrorCode: for iOS, the latter is obsoleted, and this way we always
process the former instead.

* [mtouch] Adjust wording for MT4178 to be more accurate.

* [WatchKit] Make more API obsolete/hidden.

Two classes managed to slip past the first time.

* [tests] Adjust test after WatchKit removal.
2019-08-14 17:46:55 +02:00
Sebastien Pouliot 6daac2c687
[safariservices] Update for Xcode 11 beta 1 to 5 (#6767)
Also introduce `PlatformName.MacCatalyst` while keeping the old
`UIKitForMac`, with the same value, until we can clean up existing
bindings globally (and without too much conflicts).
2019-08-14 10:41:44 -04:00
Jonathan CONTE 535dad01cb [xcode11] [EventKit] bindings for all platforms (#6751) 2019-08-14 08:18:43 -04:00
Sebastien Pouliot 5464ead926
[storekit] Update Xcode 11 beta 1 to 5 (#6760) 2019-08-14 08:13:46 -04:00
Sebastien Pouliot ca81952852
[fileprovider[ui]] Update for Xcode 11 beta 1 to 5 (#6759)
Moved some code from uikit.cs since the type moved a while ago. That
ease code sharing with macOS (XM) but it stays into the UIKit namespace
(for XI) until `XAMCORE_4_0` to ensure binary compatibility.
2019-08-14 08:12:07 -04:00
Alex Soto 7bf95d97b0
[generator] Add support for [Native] enums inside [StrongDictionaries] (#6763) 2019-08-13 18:36:36 -04:00
Sebastien Pouliot 4d6a9f505e
[foundation] Update for Xcode 11 beta 5 (#6754) 2019-08-12 18:14:03 -04:00
Sebastien Pouliot de97837da9
[quartzcomposer] Update for Xcode 11 beta 1 (#6752)
No other change in b2 to b5
2019-08-12 11:54:29 -04:00
Sebastien Pouliot 61c8af15d1
[naturallanguage] Update for Xcode 11 beta 1 (#6741)
No change in beta 2 to 5

* Run EmbeddingTest.Vector test on iOS and macOS only

reference: rdar 44948030

> Engineering has the following feedback for you: The tagging
> depends on the NLP assets being present on the device. The
> assets get downloaded through OTA. OTA download for NLP assets
> does not exist on watchOS and tvOS currently…only on iOS and
> macOS. It is conceivable that the assets got downloaded when you
> were on WiFi at a later point. So, the tagging should work.
2019-08-12 11:07:15 -04:00
Sebastien Pouliot 38e1d05d68
[externalaccessory] Update for Xcode 11 beta 5 (#6746) 2019-08-11 21:10:26 -04:00
Sebastien Pouliot 8c647fd469
[photos][macos] Fix breaking changes for XM (#6745) 2019-08-09 16:54:40 -04:00
Sebastien Pouliot 76d4fa7812
[pdfkit] Update for Xcode 11 beta 1 (#6743)
no change between b2 and b5
2019-08-09 12:00:20 -04:00
Jonathan CONTE 5b9fba99c8 [homekit] Update for xcode11 beta1 to beta5 - all platforms (#6710) 2019-08-09 11:17:10 -04:00
Sebastien Pouliot 200d5bf0a4
[MediaToolbox] Remove non-unified (classic) version of MTAudioProcessingTap (#6736) 2019-08-08 08:14:29 -04:00
Sebastien Pouliot 193ae8bfdf
[mediaaccessibility] Update for Xcode 11 beta 5 (#6733) 2019-08-07 19:40:32 -04:00
monojenkins eb77564659 [xcode11] Fix NLLanguageRecognizer crash (#6732)
The dispose of `nslang` was happening outside of the check if `nslang` is null. This was causing a crash when trying to recognise a string that contains just one number.
2019-08-07 13:08:27 -04:00
Sebastien Pouliot a45fd083b5
[coretext] Update for Xcode 11 beta 5 (#6731)
Beta 4 added some new API and constants
Beta 5 removed `CTFontManagerCopyRegisteredFontDescriptors` from all OS but iOS
2019-08-07 13:07:42 -04:00
Juxhin (Eugene) Bakalli 42311ca7ec Fix NLLanguageRecognizer crash (#6689)
The dispose of `nslang` was happening outside of the check if `nslang` is null. This was causing a crash when trying to recognise a string that contains just one number.

Fixes: https://github.com/xamarin/xamarin-macios/issues/6688
2019-08-07 16:44:41 +02:00
Sebastien Pouliot 2e21980bf9
[passkit] Remove duplicated 'using' causing warnings at build time (#6727)
```
passkit.cs(16,7): warning CS0105: The using directive for 'Contacts' appeared previously in this namespace
```
2019-08-06 21:42:49 -04:00
Sebastien Pouliot a8ae4bbb63
[gamecontroller] Fix a few minor issues (#6728)
- Fix deprecation messages to point to an existing API;

- Add setters for `Value` properties instead of adding `SetValue` methods;

- Removing some `[TV (13,0)]` when the API was already available in previous tvOS versions. It's implied that type that existed in tvOS 9.0 (the first version) do not have (nor need) availability attributes. Decorating them as `13,0` sends an incorrect message to developers (since the API have been available for a while)

- Adding some `[TV (13,0)]` when a new API only mention iOS

reference: https://github.com/xamarin/xamarin-macios/pull/6589
2019-08-06 21:42:22 -04:00
Rolf Bjarne Kvinge b517f70c1b [mtouch/mmp] Don't write runtime-options.plist if it hasn't changed. (#6661) 2019-08-06 11:59:40 -04:00
Alex Soto d883febff0
[UIKit] Update bindings to Xcode 11 Beta 5 (#6717) 2019-08-06 07:53:08 -04:00
Alex Soto 239b75c28c
[PassKit] Update bindings to Xcode 11 Beta 5 (#6719) 2019-08-06 07:51:43 -04:00
Alex Soto 6d326cc281
[AuthenticationServices] Update bindings to Xcode 11 Beta 5 (#6718) 2019-08-06 07:51:22 -04:00
Jonathan CONTE eb61a04722 [xcode11] [VideoToolbox] bindings for beta 1-5 (#6645)
* new const bindings

* new const bindings beta 2

* delete todo files

* add kVTAlphaChannelMode_PremultipliedAlpha binding

* MacOS10.9 -> iOS10.9

* fix naming

* ajust platform availability according to apple doc

* add fields to StrongDictionary

* add fields to StrongDictionary

* Change GammaLevel type : float -> double

* Fix build and add smart enum to strong dictionary in VT

* Fix macOS availability
2019-08-06 05:29:11 -04:00
TJ Lambert 9301deb863 [GameController] Add Xcode 11 Beta 1-5 bindings (#6589)
* adding GameController, issue including GCMotion.cs

* pushing temp fix by removing struct headers

* removed few introduced statements

* adding my name to top of file

* fixed review issues

* fixing issues cont

* forgot the enums

* fixing format of Deprecated messages

* missed a couple onlyOn64

* adding attributes

* removing additions to existing struct

* changed deprecated messages and selector names

* removing extra whitespace

* Added the struct in the new order from apple

* addressed Rolfs changes

* removed a diff change
2019-08-05 14:47:22 -04:00
Whitney Schmidt 7b63a38698
[HealthKit] updates for beta 1 - beta 4 xcode11 (#6692)
* healthkit b1-b3 updates

* fixes for first round of comments

* remove whitespace noise

* move hkcategorytype enums

* update mono-touch tests, remove [designatedinitializer] attr

* alex nit fixes

* fix formatting for [Deprecated]

* update mono-touch tests with even more enums

* InsertQuantity -> Insert

* remove references to xcode13, which does not exist

* add HKCharacteristicTypeIdentifierActivityMoveMode to .ignore files
2019-08-02 14:06:22 -04:00
TJ Lambert 4863742abe [SoundAnalysis] Add Xcode11 Beta 5 binding (#6705)
* added error element

* Update src/soundanalysis.cs

Co-Authored-By: Alex Soto <alex@alexsoto.me>
2019-08-02 14:04:50 -04:00
Whitney Schmidt 6bdb2c6107 add [BindAs] UIWindowSceneSessionRole for UIKit (#6703) 2019-08-01 20:01:14 -04:00
Alex Soto d10d7f0370
[xcode11] Bump to Xcode 11 Beta 5 (#6684)
* [xcode11] Bump to Xcode 11 Beta 5
2019-07-30 14:16:44 -04:00
Chris Hamons 0345986b4f
[uikit] Add [NullAllowed] to UIButton.SetAttributedTitle (#6669)
- https://github.com/xamarin/xamarin-macios/issues/6649
2019-07-30 06:48:01 -07:00
monojenkins 582ac0ac78 [d16-3] [CFNetwork] Expose methods that were ignored until the dependencies were present. (#6668)
We can know expose the methods. Bindings had to be updated considering
the fact that we have a scrut and the type of callbacks.

Fixes: https://github.com/xamarin/xamarin-macios/issues/6195
2019-07-29 11:23:33 +02:00
Manuel de la Pena e8eec97d20
[CFNetwork] Expose methods that were ignored until the dependencies were present. (#6201)
Expose methods to allow users query PAC files to get proxy settings.
2019-07-26 21:21:03 +02:00
monojenkins a3139e49b8 [AddressBook] Make ABRecord non-abstract. Fixes #6654. (#6658)
A change in the linker made a potential problem show up as a registrar error
instead of a runtime exception.

The linker became smarter in d16-2, and will now remove interface
implementations in certain cases. In particular, the linker will remove
interface implementations for a type that is never instantiated (which means
there will never be any instances of that type, which means the interface
won't be needed).

The ABRecord was abstract, and as such there will never be any ABRecord
instances. If none of ABRecord's subclasses are used in the app, there won't
be instances of ABRecord subclasses either.

This meant the linker removed all of ABRecord's interfaces, including
INativeObject.

We have API that uses ABRecord in the signature. The registrar needs to know
if a particular type is an INativeObject, which is determined by checking if
the type implements the INativeObject interface. Since the INativeObject
interface implementation was removed, the registrar determined that the
ABRecord type in the signature is invalid, and showed an error:

    Error MT4136: The registrar cannot marshal the parameter type 'AddressBook.ABRecord' of the parameter 'address' in the method 'PassKit.PKPaymentAuthorizationViewController/_PKPaymentAuthorizationViewControllerDelegate.DidSelectShippingAddress(PassKit.PKPaymentAuthorizationViewController,AddressBook.ABRecord,PassKit.PKPaymentShippingAddressSelected)

The actual problem is not the linker change, but the fact that a signature
uses an abstract type. At runtime, this will cause problems if we ever need to
instantiate such a managed type: we can't. This is generally not a problem for
NSObject subclasses, because we can determine the runtime type of the object,
and that's usually [1] some other, non-abstract type. However, for
INativeObjects, we can't find a better type at runtime (because we can't
determine the runtime type of the object), so we're left with trying to
instantiate the exact type in the signature. If this is an abstract type,
things will go badly.

So make ABRecord non-abstract.

Fixes https://github.com/xamarin/xamarin-macios/issues/6654.

[1] Usually, but not always, as history has shown. See also https://github.com/xamarin/xamarin-macios/issues/4969.
2019-07-26 11:55:25 -04:00
Rolf Bjarne Kvinge 541a00fc1c
[AddressBook] Make ABRecord non-abstract. Fixes #6654. (#6655)
A change in the linker made a potential problem show up as a registrar error
instead of a runtime exception.

The linker became smarter in d16-2, and will now remove interface
implementations in certain cases. In particular, the linker will remove
interface implementations for a type that is never instantiated (which means
there will never be any instances of that type, which means the interface
won't be needed).

The ABRecord was abstract, and as such there will never be any ABRecord
instances. If none of ABRecord's subclasses are used in the app, there won't
be instances of ABRecord subclasses either.

This meant the linker removed all of ABRecord's interfaces, including
INativeObject.

We have API that uses ABRecord in the signature. The registrar needs to know
if a particular type is an INativeObject, which is determined by checking if
the type implements the INativeObject interface. Since the INativeObject
interface implementation was removed, the registrar determined that the
ABRecord type in the signature is invalid, and showed an error:

    Error MT4136: The registrar cannot marshal the parameter type 'AddressBook.ABRecord' of the parameter 'address' in the method 'PassKit.PKPaymentAuthorizationViewController/_PKPaymentAuthorizationViewControllerDelegate.DidSelectShippingAddress(PassKit.PKPaymentAuthorizationViewController,AddressBook.ABRecord,PassKit.PKPaymentShippingAddressSelected)

The actual problem is not the linker change, but the fact that a signature
uses an abstract type. At runtime, this will cause problems if we ever need to
instantiate such a managed type: we can't. This is generally not a problem for
NSObject subclasses, because we can determine the runtime type of the object,
and that's usually [1] some other, non-abstract type. However, for
INativeObjects, we can't find a better type at runtime (because we can't
determine the runtime type of the object), so we're left with trying to
instantiate the exact type in the signature. If this is an abstract type,
things will go badly.

So make ABRecord non-abstract.

Fixes https://github.com/xamarin/xamarin-macios/issues/6654.

[1] Usually, but not always, as history has shown. See also https://github.com/xamarin/xamarin-macios/issues/4969.
2019-07-26 03:14:41 -07:00
Jonathan CONTE 414391a7e4 [xcode11] [IntentsUI] bindings for iOS beta1 (#6625)
* updated bindings

* updated bindings

* delete todo file

* fix iOS version on enum

* Add  to frameworks.sources to remove breaking change

* deleted INUICompat.cs and add [Unavailable (PlatformName.UIKitForMac)] on constructors

* Update intentsui.cs
2019-07-25 10:50:31 -04:00
Alex Soto d095f75471
[registrar] Fix a generics type issue with dynamic registrar (#6646)
* [registrar] Fix a generics type issue with dynamic registrar

Fixes xamarin/xamarin-macios#6567

This Fixes an issue in the registrar where the dynamic registrar
misses a case to check for a NSObject constraint triggered by UIKit's
`NSDiffableDataSourceSnapshot` object.

This also enables the rest of missing bindings in UIKit for Xcode 11 B4
which also works as a test case for the registrar fix. Without this fix
introspection test would throw an `AggregateException` and also
includes `NSDiffableDataSourceSnapshotTest` to check that the created
objects are usable.

* Check for Xcode 11 in tests

* Exclude the macOS in our UIKit tests ツ
2019-07-25 05:56:39 -04:00
Rolf Bjarne Kvinge 6f19d734b7
[generator] Remove support for Classic bindings. Partial fix for #6300. (#6643)
Partial fix for https://github.com/xamarin/xamarin-macios/issues/6300.
2019-07-24 09:01:40 -07:00
Rolf Bjarne Kvinge 6075a9aa5b
[mmp] Remove support for 32-bit apps. Partial fix for #6300. (#6642)
Partial fix for https://github.com/xamarin/xamarin-macios/issues/6300.
2019-07-24 09:01:14 -07:00
Rolf Bjarne Kvinge dc2c269f40
[tests] Use built-in feature checks to check for API non-crashyness. (#6640)
This also required adding a few missing Metal version enum values.

Fixes https://github.com/xamarin/maccore/issues/1800.
Fixes https://github.com/xamarin/maccore/issues/1801.
2019-07-24 07:10:10 -07:00
Rolf Bjarne Kvinge 57de81aaa1
[src] Remove the named macOS version attributes. (#6641)
They're only used in Classic, and Classic is dead, so these can now be
removed.
2019-07-24 07:09:21 -07:00
monojenkins 0443822a3f [xcode11] [Generator] Do not used harcoded 'error' var name, use the one in the declaration. (#6637) 2019-07-24 13:28:07 +02:00
Rolf Bjarne Kvinge 0cab45b799
[AppKit] Add missing NSScreen method. (#6636)
* [AppKit] Add missing NSScreen method.

* Update xtro.
2019-07-24 00:51:21 -07:00
Manuel de la Pena 2648b2ecec
[Generator] Do not used harcoded 'error' var name, use the one in the declaration. (#6620) 2019-07-24 01:03:10 +02:00
Whitney Schmidt 2c2b84beb4
[contacts] xcode11 beta1 - beta4 updated bindings (#6563)
* xcode11 beta1 - beta3 updated bindings

* remove error enum availability, add [disabledefaultctor]

* remove PlatformName.Swift

* update availability for relations to include watch, macos, update w/ ICNKeyDescriptor, fix typo

* remove newline for interface opening {

* fix failures due to new [BaseType] for preexisting interface

* add comment for [BaseType] fix

* remote onlyOn64 in attributes

* remove [Watch (2,0)], remove [Watch (6,0)] from existing bindings

* update availability for CNLabelSchool

* update contacts.cs with b4 contactrelations

* fix colleague typo
2019-07-23 18:50:18 -04:00
Jonathan CONTE d4b8c3ab73 [xcode11] [ItunesLibrary] macOS b1 bindings (#6602)
* added DesignatedInitializer

* 2019 copyright

* Remove init and provide a stub

* Change preprocessor directives and change obsolete message

* Update ITCompat.cs

* deleted todo file

* Add `ITCompat.cs` to frameworks.sources to remove breaking change
2019-07-22 09:51:53 -04:00
TJ Lambert f1c511517d [Photos] Add Xcode 11 Beta 1-4 bindings (#6521)
* first run through but errors

* fixed switching attributes

* adding methods to be continued

* passes intro, one issue with xtro

* added common-Photos.ignore and filled feedback with Apple. Also corrected whitespace and spacing

* minimizing a diff change

* first round of changes

* fixed more errors, but expecting few more changes

* made a comment better

* added Photos/PHChangeRequest.cs but have compiler issue

* actually adding PHChangeRequest file to frameworks.sources

* changing attributes

* changed some ints to PHLivePhotoRequestID

* reverting changes

* adding mac attribute

* removing onlyOn64

* fixing attributes

* changed new base class attributes, need to test still

* This should be final fix in photos, changing PHChangeRequest mac support back to 10,15

* Updated comment

* Updated comment yet again

* removed tv todo
2019-07-22 07:52:56 -04:00
TJ Lambert bda4f5b435 [PhotosUI] Add Xcode 11 Beta 1 Binding (#6624)
* Adding xcode 11 beta 1-3 initial PhotosUI changes

* reverted a few changes

* adding in UIKitForMac Unavailable
2019-07-22 07:40:03 -04:00
Alex Soto 50af930c5e
[UIKit] Update bindings to Xcode 11 beta 4 (#6618) 2019-07-19 16:24:51 -04:00
Alex Soto 0a3318f8de
[AuthenticationServices] Fix ASAuthorization and ASAuthorizationRequest (#6619)
Apple returns an internal wrapper object depending on the context the API
is used for the following properties

* ASAuthorization.Provider
* ASAuthorization.Credential
* ASAuthorizationRequest.Provider

The provider objects have a common interface IASAuthorizationProvider
and the Credential objects have IASAuthorizationCredential since the
objects that implement these protocols inherit from NSObject and Apple
returns the internal wrapper object we cannot have the runtime do the
right cast for us so we expose a generic API constrained to

* NSObject, IASAuthorizationProvider
* NSObject, IASAuthorizationCredential

Respectively so now we are able to do something like
2019-07-19 16:24:04 -04:00
Alex Soto 58bf1f91a0
[Tests] Fix introspection tests in catalina (#6621)
This also removes properties unavailable on 10.15
2019-07-19 13:49:58 -04:00
Miguel de Icaza 58eac25972 [Foundation] Add a couple of missing NSDate properties and methods (#5392) 2019-07-19 16:40:06 +02:00
TJ Lambert 526f86a53d [MediaPlayer] Add Xcode 11 Beta 1-3 bindings (#6596)
* adding MediaPlayer, but needs to wait for AVFoundation to be completed

* changing deprecated messages

* removing onlyOn64

* reformatted deprecated messages

* adding the watch todo back in

* removing todo comment since actual todo is there now
2019-07-18 21:40:00 -04:00
Sebastien Pouliot 256dea928f [authenticationservices] Update for Xcode 11 beta 4 (#6617) 2019-07-18 21:10:41 -04:00
Sebastien Pouliot 07c86fb5b4
[corenfc] Update for Xcode 11 beta 4 (#6609)
This fix a typo in a selector that we reported on the first beta

References
* https://github.com/xamarin/maccore/issues/1785
* https://feedbackassistant.apple.com/feedback/6192467
2019-07-18 15:23:07 -04:00
Sebastien Pouliot ce54a09d01
[generator] Allow the generation of smart enums `*Extensions` code even if no fields are present (#6613)
This is needed in a case like:

```csharp
[Unavailable (PlatformName.UIKitForMac)][Advice ("This API is not available when using UIKit on macOS.")]
[NoWatch, NoTV, Mac (10,15), iOS (13,0)]
enum ASAuthorizationProviderAuthorizationOperation {
	// no value yet - but we must handle `nil` as a default value
	[DefaultEnumValue]
	[Field (null)]
	None,
}
```

IOW we want to expose the smart enum for it's only `null` value
but the general conversion code is not available (for a `Weak`
version of the property)

The upcoming update for `authenticationservices.cs` depends on this fix.
2019-07-18 14:54:23 -04:00
Sebastien Pouliot 364870489e
[corelocation] Update for Xcode 11 beta 1 to 4 (#6600)
No change in beta 3 and 4
2019-07-18 14:16:07 -04:00
Alex Soto 1dc4d45251
[PencilKit] Update to Xcode 11 Beta 4 (#6612) 2019-07-18 13:40:37 -04:00
Sebastien Pouliot 5c30267c8a
[coreanimation] Update for Xcode 11 b4 (#6611) 2019-07-18 13:13:44 -04:00
Alex Soto 12408486ba
[ARKit] Update to Xcode 11 Beta 4 (#6608) 2019-07-18 12:23:51 -04:00
Sebastien Pouliot 02fe80ca8b
[replaykit] Update for Xcode 11 beta 4 (#6610) 2019-07-18 12:00:50 -04:00
Sebastien Pouliot 7fcd8d7974 Bump for Xcode 11 beta 4 (#6603)
* Bump for Xcode 11 beta 4

xtro tests will fail until we have an update for sharpie, however
the introspection tests should be fine (with the small changes in
arkit.cs and uikit.cs)

xtro failure:

```
System.NotImplementedException: AVAudioInteger
  at (wrapper managed-to-native) Clang.Ast.AstReader.LoadInternal(Clang.Ast.AstReader,string)
  at Clang.Ast.AstReader.Load (System.String astPath) [0x00014] in /Users/builder/vsts-agent/_work/5/s/Clang/Ast/AstReader.cs:33
  at Extrospection.Runner.Execute (System.String pchFile, System.Collections.Generic.IEnumerable`1[T] assemblyNames) [0x0019a] in /Users/poupou/git/xcode11/xamarin-macios/tests/xtro-sharpie/Runner.cs:54
  at Extrospection.MainClass.Main (System.String[] args) [0x00046] in /Users/poupou/git/xcode11/xamarin-macios/tests/xtro-sharpie/Program.cs:20
```

due to

```diff
-typedef CF_ENUM(NSInteger, AVAudioSessionErrorCode) {
+typedef CF_ENUM(AVAudioInteger, AVAudioSessionErrorCode) {
```
https://github.com/xamarin/xamarin-macios/wiki/CoreAudioTypes-iOS-xcode11-beta4

* [tests] CoreText stopped reporting error when font files are missing

* Fix xtro (EnumCheck.cs) and update its data files

* Fix xtro results (due to some local changes)
2019-07-18 05:44:34 -04:00
Whitney Schmidt 8d8401e8fb
[quicklookUI] xcode11 beta1 - beta3 updated bindings (#6588)
* quicklookUI updates for xcode11

* update param to completionHandler

* remove onlyOn64: true
2019-07-16 19:28:42 -04:00
Jonathan CONTE 9b7f6f9cdb [NotificationCenter] Bindings for iOS Xcode 11 beta 1 (#6579) 2019-07-16 15:58:34 -04:00
Rolf Bjarne Kvinge c1e6ac029f [src] Remove/obsolete 'onlyOn64: true' in attributes. (#6595)
* [src] Obsolete 'onlyOn64' parameter to the availability attributes.

* [src] Remove 'onlyOn64: true' from attributes.

* [src] Adjust availability attributes.
2019-07-16 12:13:11 -04:00
Jo Shields a29ae8e6df Bump to mono:2019-06 (#6196)
* Use the commonly used casing for `MSBuildSDKsPath` property

Handle "incorrectly" cased msbuild property names

msbuild property names are case insensitive. While generating the custom
app.config, in `SetToolsetProperty(..)` we try to update the property if
it already exists. But the name lookup was case sensitive, thus causing
the lookup to fail, resulting in two entries for the same property name
differing only in case. Eg. `MSBuildSDKsPath` vs `MSBuildSdksPath`.

* [mtouch] Whitelist new Brotli native symbols in Xamarin.Tests.Misc.PublicSymbols test

* [mtouch] Better assert in NoLLVMFailuresInWatchOS() test

We'd list the "LLVM failed" messages before even though the AOT might've crashed and the list is meaningless. Assert the exit code before that.

* [mtouch] Use new LLVM even for 32bit targets

See https://github.com/mono/mono/issues/14841 and https://github.com/mono/mono/issues/9621

* [mtouch] Work around slow LLVM in "don't link" test

See https://github.com/mono/mono/issues/14843

* Remove useless conditional

* Remove LLVM36 from Makefile

* [watch4] set right min version for arm64_32 based watch devices (#6307)

Fixes the confusion around `libmono-native*` (see for example ce5ba1e41d (commitcomment-33834491) ) when building with `MONO_BUILD_FROM_SOURCE=1`.

* reflect watchos64_32_version_min change from mono sdk

* Move mono hash info to mk/mono.mk so that existing scripts work.

* Add Makefile dependency on mono.mk where necessary

With 3e7bc29ade the Mono hash was moved from Make.config to mono.mk.

We need to add a Makefile dependency on this file wherever Make.config was used to track a Mono dependency.

* [tests] Copy mk/mono.mk to the XM test package.

* [tests] Update minOS version test after consolidating min watchOS versions everywhere.

Fixes this mtouch and mmptest failure:

    1) Failed : Xamarin.Tests.ProductTests.MinOSVersion(watchOS,MinwatchOS,WatchOSSimulator,False)
      Failures
      Expected: <empty>
      But was:  < "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (mono-runtime-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (bindings-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (bindings-generated-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (shared-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (runtime-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-invoke-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (xamarin-support-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (nsstring-localization-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-varargs-debug.arm64_32.o)."... >

* [mmp] Fix make clean target

It needs an -r to remove directories:

```
rm: bin: is a directory
rm: obj: is a directory
```

* Add new xamarin_timezone_get_local_name() to a few more places
2019-07-16 17:24:00 +02:00
Sebastien Pouliot 799cf06a99
[coreaudiokit] Update for Xcode 11 beta 1 (#6582)
No change in beta 2 and beta 3
2019-07-15 14:44:36 -04:00
Rolf Bjarne Kvinge a495077533
[xcode11] Stop building/shipping 32-bit Xamarin.Mac bits. Partial fix for #6300. (#6393)
This includes:

* 32-bit version of Xamarin.Mac.dll and OpenTK.dll
* XamMac.dll and XamMac.CFNetwork.dll
* 32-bit versions of the runtime libraries (libxammac.a and friends).
* 32-bit version of the partial static library for Xamarin.Mac.
* Classic support in the generator.

We still ship a few Classic files so that Visual Studio for Mac continue to detect that Xamarin.Mac is installed (otherwise VSfM won't open Classic projects, which makes it impossible to use the migration wizard).

This makes our build slightly faster.

Partial fix for #6300.
2019-07-15 10:19:24 -07:00
Sebastien Pouliot 41096f2f44
[callkit] Update for xcode beta 1 (#6581)
No change in beta 2 and 3

Initial PR https://github.com/xamarin/xamarin-macios/pull/6470 missed the single new API (hint: check `xtro` files)
2019-07-15 13:09:18 -04:00
Sebastien Pouliot e6e428393d
[coretext] Update for Xcode 11 beta 1-3 (#6562)
includes unit tests
2019-07-15 13:06:56 -04:00
Sebastien Pouliot e97b4eacf3
[coretelephony] Update for Xcode 11 beta 1 (#6576)
No changes in beta 2 and 3
2019-07-15 08:13:34 -04:00
Alex Soto 2d53b90723
[UIKit] Partial update to Xcode 11 Beta 1, 2 and 3 - Part 2 of ? (#6553)
* [UIKit] Partial update to Xcode 11 Beta 1, 2 and 3 - Part 2 of ?

Missing bindings for

* NSDiffableDataSourceSnapshot
* UICollectionViewDiffableDataSource
* UITableViewDiffableDataSource

due to a registrar issue git generics.

* Update src/UIKit/UIFont.cs

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Update src/uikit.cs

* More feedback

This also disables

* FloatRangeTest.Equals
* FloatRangeTest.ManagedVersusNative

due to https://github.com/xamarin/maccore/issues/1885

* [UIKIt] Start fixing `UITextWritingDirection` situation

But the complete fix is for another time https://github.com/xamarin/xamarin-macios/issues/6573
2019-07-12 13:44:24 -04:00
Sebastien Pouliot 42648dd609
[localauthentication] Update for Xcode 11 beta 1-3 (#6574) 2019-07-12 08:58:06 -07:00
Manuel de la Pena 7e96b317e8
[CoreMedia] Add support for CoreMedia on Xcode 11 beta 3. (#6513) 2019-07-11 20:14:58 +02:00
Sebastien Pouliot d02d379695
[foundation] Partial update for Xcode 11 beta 1 to 3 (#6538)
Some generic API require more work (manual bindings or generator
enhancements) before being included. xtro files are up to date.
2019-07-10 11:19:56 -04:00
monojenkins a7f4c7011e [registar] Search the entire interface hierarchy for protocols. Fixes #6493. (#6524)
When we're searching for metadata for marshalling blocks, we must search the
entire interface hierarchy for protocols that implement optional members.

Fixes https://github.com/xamarin/xamarin-macios/issues/6493.
2019-07-09 06:50:55 -07:00
Rolf Bjarne Kvinge b60d7a287c
[ARKit] Uncomment bindings that only work on device. (#6517)
And adjust the introspection tests accordingly.
2019-07-09 04:51:34 -07:00
Whitney Schmidt bcc6a39913
[carplay] Update for Xcode11 beta 3 (#6512)
* carplay beta3 updates

* fixes xamarin/maccore#1822, fix enum format

* update .cs and .ignore to reflect feedback

* update .cs and .ignore to reflect feedback

* update .cs and .ignore to reflect feedback

* remove incorrect [abstract]

* remove Make.config from PR

* trying to remove .config from PR again...

* Trying to remove .config...again...
2019-07-08 17:56:32 -04:00
TJ Lambert d0b332c0c3 [LinkPresentation] Add Xcode 11 Beta 1 & Beta 2 bindings (#6437)
* adding LinkPresentation - does not pass intro

* adding pull request message to linkpresentation.cs

* passes tests

* removed comments

* removed watch

* fixing whitespace changes
2019-07-08 16:24:53 -04:00
monojenkins fadcd35b44 [Generator] NSValueReturnMap is registering CATransform3D on HaveCoreMedia insteand of HaveCoreAnimation. (#6522)
The CATransform3D is present in the CoreAnimation framework not
CoreMedia.

Fixes https://github.com/xamarin/xamarin-macios/issues/6518
2019-07-08 19:36:27 +02:00
Rolf Bjarne Kvinge 0ceced29a9
[registar] Search the entire interface hierarchy for protocols. Fixes #6493. (#6514)
When we're searching for metadata for marshalling blocks, we must search the
entire interface hierarchy for protocols that implement optional members.

Fixes https://github.com/xamarin/xamarin-macios/issues/6493.
2019-07-08 08:41:55 -07:00