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

917 Коммитов

Автор SHA1 Сообщение Дата
Jonathan Peppers 666059f289
[msbuild] add System.Drawing.Common ref for bindings (#8528)
Fixes: https://github.com/xamarin/xamarin-macios/issues/8265

Usage of `System.Drawing` types in iOS binding projects are failing with:

    error CS1069: The type name 'Color' could not be found in the namespace 'System.Drawing'.
    This type has been forwarded to assembly 'System.Drawing.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
    Consider adding a reference to that assembly.

In 3a7bdc0, an `_AddExtraReferences` MSBuild target was added for iOS
and Mac projects, but mistakenly missing from binding projects.

I moved the `_AddExtraReferences` target to `Xamarin.Shared.targets`,
so it will be used for all project types.

I also updated a test, I could merely use `System.Drawing.Color` in
`StructsAndEnums.cs` to reproduce the failure.
2020-05-07 15:27:06 -05:00
Rolf Bjarne Kvinge 019c92338b
[msbuild] Fix format arguments in error string. (#8497) 2020-05-04 18:32:10 +02:00
Rolf Bjarne Kvinge 24201084d9
[msbuild] Improve symlinks for Xamarin.Mac. (#8484)
Instead of having multiple symlinks in the /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac directory
pointing to files in /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/msbuild, have the
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac directory point to the
/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/msbuild directory. This way we
don't have to update the symlinks whenever there are new files somewhere.
2020-05-04 10:51:29 +02:00
Rolf Bjarne Kvinge 95d71c8ee1
[msbuild] Unify most of the DetectSdkLocations task between Xamarin.Mac and Xamarin.iOS. (#8462)
New commits in xamarin/Xamarin.MacDev:

* xamarin/Xamarin.MacDev@45c5a68 [Xamarin.MacDev] Add interfaces to bridge Xamarin.iOS- and Xamarin.Mac-specific classes. (#72)

Diff: a0a11aff27..45c5a680e2
2020-04-28 14:55:35 +02:00
Rolf Bjarne Kvinge cb234697f5
[msbuild] Remove the net461 version of the msbuild task assemblies. (#8419)
The netstandard2.0 version has been the default for a few weeks now, and no
problems have been found, so just delete the net461 version.

This speeds up testing a bit, since we won't be testing the net461 version
anymore.
2020-04-20 09:59:22 +02:00
Rolf Bjarne Kvinge 28eddda439
Extract the ApplePlatform and LinkMode enums into their own files. (#8411) 2020-04-17 09:45:18 +02:00
monojenkins 5673bb0dba
[msbuild] Build bindings with the latest (stable) version of C# (#8401)
We now require C# 8 for nullability support. However we allow custom code
to be included inside binding projects and we should not support anything
(stable) that the C# compiler (installed separately) allow, so `latest`
it is.
2020-04-15 20:31:18 -04:00
Sebastien Pouliot 9f28bce6b8
[msbuild] Build bindings with the latest (stable) version of C# (#8387)
We now require C# 8 for nullability support. However we allow custom code
to be included inside binding projects and we should not support anything
(stable) that the C# compiler (installed separately) allow, so `latest`
it is.
2020-04-15 15:41:32 -04:00
Emanuel Fernandez Dell'Oca bdcd7d35a4
[d16-7] Fixes msbuild.zip (#8368)
* [msbuild] Conditionally include MSBuild assets

Updates the Microsoft.Build* references to use PackageReference to match Xamarin.iOS.Tasks.Core.csproj, and conditionally includes the MSBuild assets so these can be copied to the output directory if needed. If `IncludeMSBuildAssets` is not set, the behavior will remain the same, the MSBuild assemblies won't be copied to the output dir.

* Fix whitespace.

* Bump maccore

New commits in xamarin/maccore:

* xamarin/maccore@92a06f7303 [d16-7] Fixes msbuild.zip (#2200)

Diff: a14f74b40a..92a06f7303

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2020-04-14 08:19:08 +02:00
Sebastien Pouliot 15938de198
[generator] Add C#8 nullability into generated code (#7570) (#8333)
Goals
* Reflect Apple nullability annotations in our bindings using C#8
* No warnings when building bindings

Non-Goals
* Update (add or fix) `[NullAllowed]` to match Apple headers (next phase)
* Make the generator or internal code fully nullable aware (`nowarn` is used)

Notes
* Apple's own annotations are not 100% accurate :(
* Where known issue exists we have _fixed_ our attributes to match reality :)
* We also do additional null-checks internally that might seems not required (better safe than sorry).
2020-04-10 12:38:14 -04:00
Sebastien Pouliot a5ac0ea102
[generator] Add C#8 nullability into generated code (#7570)
Goals
* Reflect Apple nullability annotations in our bindings using C#8
* No warnings when building bindings

Non-Goals
* Update (add or fix) `[NullAllowed]` to match Apple headers (next phase)
* Make the generator or internal code fully nullable aware (`nowarn` is used)

Notes
* Apple's own annotations are not 100% accurate :(
* Where known issue exists we have _fixed_ our attributes to match reality :)
* We also do additional null-checks internally that might seems not required (better safe than sorry).
2020-04-09 09:29:28 -04:00
Rolf Bjarne Kvinge c5ade80b2e Fix whitespace. 2020-04-07 14:01:52 -03:00
emaf df8afe584b [msbuild] Conditionally include MSBuild assets
Updates the Microsoft.Build* references to use PackageReference to match Xamarin.iOS.Tasks.Core.csproj, and conditionally includes the MSBuild assets so these can be copied to the output directory if needed. If `IncludeMSBuildAssets` is not set, the behavior will remain the same, the MSBuild assemblies won't be copied to the output dir.
2020-04-07 14:01:52 -03:00
Rolf Bjarne Kvinge 2ae55ac1f4
[msbuild] Compute the ComputedFrameworkMoniker later in the build. Fixes #8277. (#8279)
It might only be necessary for Xamarin.iOS builds, but modify both XI and XM
so that the logic is identical.

Fixes https://github.com/xamarin/xamarin-macios/issues/8277.
2020-04-06 12:47:01 +02:00
Rolf Bjarne Kvinge 5aff10b3c0
[msbuild] No need to pass --gsharedvt to mtouch anymore, mtouch ignores --gsharedvt since it must always be enabled. (#8270) 2020-04-02 17:22:17 +02:00
Alex Soto 3ff3e07ebe Merge remote-tracking branch 'xamarin/d16-5-xcode11.4' 2020-03-26 19:59:14 -04:00
Waleed Chaudhry 09d0061317
[msbuild] Remove comment tags to fix translations out of sync issue (#8157) 2020-03-20 17:33:40 -04:00
Manuel de la Pena 820d7de89a
[Msbuild] Do not error if the localizations are out of sync. (#8139)
The translations code is quite fragile at the moment. When building a
package it is throwing errors but does not do the same when building
xamarin-macios. This has happened several times with the mono-2020-02
integration branch:

* https://jenkins.internalx.com/job/macios/job/PR-7795/24/display/redirect
* https://jenkins.internalx.com/job/macios/job/PR-7795/25/display/redirect

This change makes sure that we do not raise an error, unblocks mono
2020-02 and an issue will be added to make sure that we re-enable the
feature once the code is more stable.
2020-03-18 15:14:52 -04:00
Rolf Bjarne Kvinge b26ec6bf34
[msbuild] The Mmp/Mtouch tasks are passed the expected TargetFrameworkMoniker, so no need to have any custom logic here. (#8118)
We can even move it all to the shared base class, and remove an unused variable (UseXamMacFullFramework).
2020-03-16 15:01:57 +01:00
Waleed Chaudhry bcbfe4d5e4
[Localization] MSBuild 2020-03-13 17:46:28 -04:00
Rolf Bjarne Kvinge fe5fd8d11d
[msbuild] Simplify the BTouch task implementation. (#8096)
* Don't validate the TargetFrameworkIdentifier, instead pass it along to bgen
  (which will validate it). This means less validation updates when something
  changes.
* For Xamarin.Mac's GenerateCommandLineCommands' implementation:
    * We'll always have a bgen.exe, so the code for what to do if bgen isn't
      there can be removed.
    * There's no need to compute the 'isMobile' value, because now it's not used
      anymore. So we can remove the first if block in the method completely.
    * There's no need to add the -stdlib flag, because the base implementation
      in BTouchTaskBase already adds it.
    * Now there's nothing left in the method but calling base, so the entire
      override can be removed.
    * This also removes the need for the FrameworkRoot parameter to the task,
      so remove that too.
* For Xamarin.Mac's GetTargetFrameworkArgument's implementation:
    * Move the TargetFramework logic to detect the different Xamarin.Mac
      variations to the targets file, so that it can be reused by other tasks
      and targets.
    * This means we don't need an overridable function to get the target
      framework argument, so just remove inline the entire virtual method.
2020-03-13 18:04:50 +01:00
Rolf Bjarne Kvinge 7c15428fc2
[msbuild] Create common base class for MmpTaskBase and MtouchTaskBase. (#8080)
Create a common base class for MmpTaskBase and MtouchTaskBase, and move logic
that is common between mtouch and mmp there. Some input variables were renamed
for the MmpTaskBase task, when the resulting code would be identical in
MtouchTaskBase, and thus sharable.

There is still a bit more code that could be shared, but that require a bit
more effort and can always be done later.
2020-03-11 19:02:43 +01:00
Rolf Bjarne Kvinge c68700ad4f
Bump Xamarin.MacDev. (#8059)
* Bump Xamarin.MacDev.

New commits in xamarin/Xamarin.MacDev:

* xamarin/Xamarin.MacDev@a0a11af Adjust SDK validation to allow tools/bin and not allow usr/bin. (#71)
* xamarin/Xamarin.MacDev@e21e1aa Accept 'tools/buildinfo' as an alternative path to 'buildinfo' due to an nuget bug. (#70)
* xamarin/Xamarin.MacDev@ce24236 Don't look in /Developer/MonoTouch anymore, there's nothing there. (#69)

Diff: 210c664e56..a0a11aff27

* [msbuild] Teach tests that mock MonoTouchSdk to mock better.

MonoTouchSdk ends up a bit confused when giving it an Sdk directory that isn't
a real Sdk directory, and then assuming that properties that return Sdk paths
won't throw exceptions.

Fix this by giving MonoTouchSdk a better fake Sdk directory (which
MonoTouchSdk detects as a real Sdk directory), and thus those previously
mentioned properties will return true fake values instead of throwing
exceptions.
2020-03-09 09:12:11 +01:00
Alex Soto f5b3a6f1c4
Merge remote-tracking branch 'xamarin/xcode11.4' into d16-5-xcode11.4 2020-03-08 13:16:04 -04:00
Rolf Bjarne Kvinge 26ad52257e
[msbuild] Pass the entire TargetFrameworkMoniker to tasks instead of just TargetFrameworkIdentifier/TargetFrameworkVersion. (#8048)
When .NET 5 comes, the TargetFrameworkMoniker will change, and we need the
entire moniker to distinguish between various platforms.

So change our msbuild code to consume the entire TargetFrameworkMoniker, so
that we have all the information we need when we need it.

Also redirect everything through an intermediate
_ComputedTargetFrameworkMoniker property, so that the target framework can be
overridden without affecting any other code. This becomes necessary during the
initial implementation phase, because we don't have a .NET version to test
with yet that can give us the new target frameworks. Eventually it should be
possible to remove this intermediate variable
2020-03-06 18:28:58 +01:00
Rolf Bjarne Kvinge 3fcaa41419
[msbuild] Re-use tools/common/TargetFramework.cs. (#8044)
This allows us to replace Xamarin.MacDev.Tasks.PlatformFramework with
Xamarin.Utils.ApplePlatform.

It also allow for more complex target framework handling/parsing in the
future, using the TargetFramework class.
2020-03-05 15:21:35 +01:00
Sebastien Pouliot 0129618de8
[mtouch] Add `force-rejected-types-removal` optimization (#8009) (#8042)
This optimization can be enabled when it's not possible to use the
managed linker (e.g. **Don't link**) or when the managed linker cannot
remove references to deprecated types that would cause an application
to be rejected by Apple.

References to the existing types will be renamed, e.g. `UIWebView` to
`DeprecatedWebView`, in every assemblies.

The type definition is also renamed (for validity) and all custom
attributes on the types and their members will be removed.
Code inside the members will be replaced with a
`throw new NotSupportedException ();`.

The msbuild test app `MyReleaseBuild` has been updated to test that the
optimization is working as expected (device builds are slow so reusing
this test has little impact in test time).

Basically the test ensure that `UIWebView` is used and cannot be removed
by the compiler (optimization) or the managed linker (since it's
referenced). Since the optimization is enabled then we can `grep` then
final `.app` directory to ensure there's no mention of `UIWebView` inside
any of the files that would be submitted.

The application can be run, by itself, and will turn green if OK, red if
`DeprecatedWebView` can't be found (skeleton replacement for `UIWebView`)
or orange if a `NotSupportedException` is thrown.

Finally introspection tests have been updated to skip over the deprecated
(and renamed) types. It should not be an issue right now, since this
optimization is not enabled by default, but it made testing easier.
2020-03-04 21:21:41 -05:00
Alex Soto 709a90599e Merge remote-tracking branch 'xamarin/xcode11.4' into d16-5-xcode11.4-merge 2020-03-03 10:57:24 -05:00
Sebastien Pouliot 54f2dae935
[mtouch] Add `force-rejected-types-removal` optimization (#8009)
This optimization can be enabled when it's not possible to use the
managed linker (e.g. **Don't link**) or when the managed linker cannot
remove references to deprecated types that would cause an application
to be rejected by Apple.

References to the existing types will be renamed, e.g. `UIWebView` to
`DeprecatedWebView`, in every assemblies.

The type definition is also renamed (for validity) and all custom
attributes on the types and their members will be removed.
Code inside the members will be replaced with a
`throw new NotSupportedException ();`.

The msbuild test app `MyReleaseBuild` has been updated to test that the
optimization is working as expected (device builds are slow so reusing
this test has little impact in test time).

Basically the test ensure that `UIWebView` is used and cannot be removed
by the compiler (optimization) or the managed linker (since it's
referenced). Since the optimization is enabled then we can `grep` then
final `.app` directory to ensure there's no mention of `UIWebView` inside
any of the files that would be submitted.

The application can be run, by itself, and will turn green if OK, red if
`DeprecatedWebView` can't be found (skeleton replacement for `UIWebView`)
or orange if a `NotSupportedException` is thrown.

Finally introspection tests have been updated to skip over the deprecated
(and renamed) types. It should not be an issue right now, since this
optimization is not enabled by default, but it made testing easier.
2020-03-02 09:20:29 -05:00
Rolf Bjarne Kvinge ad15106af4
[msbuild] Add support for Metal in the simulator. Fixes #7392. (#7983) (#7991)
* [msbuild] Provide the correct value for the operating system for tvOS and watchOS to a few tasks. Fixes #6200. (#7226)

The problem with #6200 was that we'd pass -mios-version-min=x.y to the metal
tool even for tvOS apps. This fixes it so that now pass -mtvos-version-min.

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

* [msbuild] Add support for Metal in the simulator. Fixes #7392. (#7983)
2020-02-28 19:59:03 +01:00
Sebastien Pouliot a40f6e8804
[msbuild][tests] Re-enable test case (issue fixed a while ago) (#8001) 2020-02-27 17:23:55 -05:00
Rolf Bjarne Kvinge df51d134c0
[msbuild] Add support for Metal in the simulator. Fixes #7392. (#7983) 2020-02-26 18:26:21 +01:00
Waleed Chaudhry bc878256f4
[msbuild] Update test engine to implement IBuildEngine4 (#7905) 2020-02-18 10:56:29 -05:00
Alex Soto ec973295b5
Replace removed dsymutil `-t` switch with `-num-threads` (#7898) 2020-02-14 15:44:19 -05:00
Alex Soto d716663061
Replace removed dsymutil `-t` switch with `-num-threads` (#7900) 2020-02-14 15:36:47 -05:00
Rolf Bjarne Kvinge de61d3d705
[msbuild] Deduplicate the code for generating the app bundle name/path between our various platforms. (#7841)
Also move the app bundle name/path generation code together for all platforms
to avoid it drifting apart in the future.
2020-02-14 14:26:48 +01:00
Rolf Bjarne Kvinge d98a8f1792
[msbuild] Tweak the tests. (#7877)
This is a series of commits that tweaks the msbuild tests a little bit.

* [msbuild] Match configuration between MyWatchKit2Extension and MyWatchKit2IntentsExtension.

Fixes this warning:

>  MTOUCH : warning MT0113: Native code sharing has been disabled for the extension 'MyWatchKit2IntentsExtension' because the --assembly-build-target options are different between the container app () and the extension (--assembly-build-target:@all=dynamiclibrary). [MyWatchKit2Extension/MyWatchKit2Extension.csproj]

* [msbuild] Add the extra argument for the AppWithExtraArgumentThatOverrides test project to all configurations.

That way the test can be built in all configurations (and still test what it's
supposed to test).

* [msbuild] Clean up project files a bit.

* Removed default 'CodesignKey' values from simulator configurations.
* Removed 'MtouchFastDev' values from simulator configurations.
* Removed 'IOSDebuggerPort' values, not needed for these projects.

* [msbuild] Update test projects to use 64-bit architectures.

Also enable bitcode (+llvm) for release device builds for tvOS and watchOS.

* [msbuild] Simplify test project configuration a bit.

* [msbuild] Unify output path.

Using 'TV' and 'TVSimulator' in the OutputPath works fine, but it makes some
of the tests a bit more complex because they need to special-case this test to
find the path to the resulting .app.

* [msbuild] Fix the MyiOSFrameworkBinding test project to have the same assembly name as the project itself.

This simplifies upcoming testing code a bit.
2020-02-14 14:12:25 +01:00
Alex Soto cee4b5e5a1
[xcode11.4] Add xcode 11.4 b1 initial support (#7805)
* [xcode11.4] Add xcode 11.4 b1 initial support

* [xtro] re-enable PDFKit

* Disable watchOS and fix xtro

Unfortunately watchOS simulator hangs when we try to deploy to it
and it keeps our tests timing out. Disabling for now until we
can investigate more.

Disables PDFKit on xtro in macOS

* [jenkins] Switch to use the catalina bot group (#7819)

* Bump maccore to get fix for launching the simulator for watch apps.

New commits in xamarin/maccore:

* xamarin/maccore@546270c8f9 [Xamarin.Hosting] Fix the name of the notification we get when the simulator has launched. (#2145)

Diff: 55957e908d..546270c8f9

* [tests] Diable watch due to time out, enable 10,15,4 in intro, fix min version

* Bump macios-binaries to get updated binary mlaunch as well.

New commits in xamarin/macios-binaries:

* xamarin/macios-binaries@f8c6e63 Bump mlaunch to xamarin/maccore@546270c8f9

Diff: eb6980e8b6..f8c6e63228

* [msbuild] Reflect ibtool changes in our tests

Looks like Apple reverted some changes introduces in Xcode 11
in ibtool, for more context see xamarin/xamarin-macios#6970

* [mtouch] Workaround strange behavior of realpath.

Co-authored-by: Sebastien Pouliot <sebastien.pouliot@gmail.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2020-02-11 20:25:43 -05:00
Rolf Bjarne Kvinge adaf221471
[msbuild] Fix warning about CFBundleVersion in the MyWatchApp2 test project. (#7843)
Fixes:

> /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(1726,3): warning : The Watch App 'MyWatchApp2' has a CFBundleVersion (1.33) that does not match the main app bundle's CFBundleVersion (1.0) [MyWatch2Container/MyWatch2Container.csproj]
> /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(1726,3): warning : The Watch Extension 'MyWatchKit2Extension' has a CFBundleVersion (1.0) that does not match the main app bundle's CFBundleVersion (1.33) [MyWatch2Container/MyWatch2Container.csproj]
2020-02-11 15:27:29 +01:00
Rolf Bjarne Kvinge b0242cfe48
[msbuild] Fix MT4174 warning for the MyWatchKit2IntentsExtension test project. (#7842)
Fixes:

> MyWatchKit2IntentsExtension/IntentHandler.cs(36): warning MT4174: Unable to locate the block to delegate conversion method for the method MyWatchKit2IntentsExtension.IntentHandler.ResolveRecipients's parameter #2. [MyWatchKit2Extension/MyWatchKit2Extension.csproj]

The method signature probably changed from a beta release to the corresponding
stable release, and this method was never updated.
2020-02-11 15:27:08 +01:00
Rolf Bjarne Kvinge 29b9e75db9
Remove code that refers to /Developer/MonoTouch. (#7840)
It's about time.
2020-02-11 15:26:15 +01:00
Rolf Bjarne Kvinge 4c496a87ed
[msbuild] Make sure DeviceSpecificOutputPath is a relative path. (#7832)
It might be absolute at least sometimes when building with dotnet, and making
sure it's always a relative path simplifies the code.
2020-02-10 22:31:18 +01:00
Jonathan Peppers bba8fe731f
[msbuild] remove {GAC} from $(AssemblySearchPaths) (#7815)
Fixes: https://developercommunity.visualstudio.com/content/problem/788505/xamarin-found-conflicts-between-different-versions.html
Fixes: http://work.azdo.io/1008385
Context: 73b93c2dc9/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets (L337-L341)

On Windows only, Xamarin.Forms projects hit the build warning:

    Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3277: Found conflicts between different versions of "System.Numerics" that could not be resolved.
    These reference conflicts are listed in the build log when log verbosity is set to detailed.

The difference appears to be the `{GAC}` search path is used on
Windows, but not Mac.

In fact, the output of `<ResolveAssemblyReference/>` on Mac reports:

    Unused locations
        {CandidateAssemblyFiles}
        {HintPathFromItem}
        {Registry:Software/Microsoft/Xamarin.iOS,v1.0,AssemblyFoldersEx}
        {AssemblyFolders}
        {GAC}
        bin/iPhoneSimulator/Debug/
    Used locations
        {TargetFrameworkDirectory}
        {RawFileName}

Compared to Windows:

    Used locations
        {TargetFrameworkDirectory}
        {GAC}
        {RawFileName}

For now, we should just remove `{GAC}` from the list as the safest fix.

Xamarin.Mac is already doing this:

f85556c1e5/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.props (L121-L125)

Down the road, we could specify only the paths needed for performance
reasons. We have done this recently in Xamarin.Android:

5945e9a779/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets (L382-L386)

* Added a test assertion for this as well.
2020-02-07 08:54:29 -06:00
Rolf Bjarne Kvinge 5cac2eafd3
[msbuild] Don't add newlines to command line arguments to mmp. (#7806)
Don't separate command-line arguments to mmp with newlines, in dotnet those
newlines are passed to mmp instead of being treated as whitespace, and that
confuses mmp.

Also remove additional and unneeded whitespace in the command line arguments,
the CommandLineArgumentBuilder class already adds whitespace when needed.
2020-02-06 15:34:21 +01:00
Rolf Bjarne Kvinge 9960ee43de
[msbuild] Fix several issues in the MyWatchApp2 test project. (#7804)
* [msbuild] Fix the MyWatchApp2 test project to include resources already present.

Fixes several warnings:

> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-27.5x27.5@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-86x86@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-40x40@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-44x44@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-24x24@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-98x98@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-29x29@2x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]
> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The file "Icon-29x29@3x.png" for the image set "AppIcons" does not exist. [MyWatchApp2/MyWatchApp2.csproj]

* [msbuild] Add a 1024x1024 icon to the MyWatchApp2 test project.

Fixes this warning:

> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : A 1024x1024 app store icon is required for watchOS apps [MyWatchApp2/MyWatchApp2.csproj]

* [msbuild] Remove the longLook icon entry for MyWatchApp2.

It doesn't seem to be a valid entry, there's no such entry when creating a
watchOS app in Xcode. Additionally it fixes this warning:

> MyWatchApp2/obj/iPhoneSimulator/Debug/actool/cloned-assets/Resources/Images.xcassets : actool warning : The app icon set "AppIcons" has an unassigned child. [MyWatchApp2/MyWatchApp2.csproj]
2020-02-06 07:26:20 +01:00
Rolf Bjarne Kvinge 346e29397d
[msbuild] Remove unused files. (#7801) 2020-02-05 23:55:11 +01:00
Rolf Bjarne Kvinge 0557f16e6a
[msbuild] Make code a bit more future-proof. (#7790)
According to review of #7706.
2020-02-05 07:29:29 +01:00
Rolf Bjarne Kvinge 7bdb167ffe
[msbuild] Remove outdated AppStore and Ad-Hoc configurations from test projects. (#7777) 2020-02-03 13:56:49 +01:00
Rolf Bjarne Kvinge b5b74ff1c4
[msbuild] Remove unused csproj variable. (#7778) 2020-02-03 13:56:36 +01:00
Waleed Chaudhry 00985a55e2
[Localization] mtouch/mmp C# (#7710) 2020-01-31 15:02:52 -05:00
Rolf Bjarne Kvinge 23275441af
[msbuild] Copy tests before making changes to them. (#7753)
Copy test projects to a temporary directory before using them for tests. This
makes sure tests don't leave a dirty working tree (because some tests modify
the on-disk test code).

We'll also start running tests using SDK-style project files, and this way
it's much easier to run tests twice, once using the old format and once using
the new format, and then compare the results.

Most of the changes are related to making the test projects and code
relocatable.
2020-01-24 16:15:34 +01:00
Rolf Bjarne Kvinge eb29f4375e
[msbuild] Remove unused conditional compilation directive. (#7747) 2020-01-24 08:59:55 +01:00
Rolf Bjarne Kvinge 197557078f
[msbuild] Don't manually quote, instead rely on CommandLineArgumentBuilder's logic. (#7749)
This fixes an issue related to single quotes and that the fact that mono's behavior
regarding quoting them has changed (by not using single quotes).

This becomes an issue when running with dotnet.
2020-01-24 08:53:13 +01:00
Rolf Bjarne Kvinge 3bad419de3
[msbuild] Remove dependency on Mono.Posix. (#7748)
Mono.Posix comes with a native library, and that makes IL merging much more
complicated, especially when Mono.Posix comes from a nuget. So remove the
Mono.Posix dependency, and instead write the 2 P/Invokes we need manually.
2020-01-24 08:52:22 +01:00
Bruno Garcia 455ed695bf fix: Template typos execution, transition (#7723)
* fix: Execution typo

* fix: transiton -> transition
2020-01-20 15:29:23 +01:00
Rolf Bjarne Kvinge 54b07b2f2d
[msbuild] Build the MSBuild task assemblies for netstandard2.0. (#7706)
* Bump Xamarin.MacDev.

New commits in xamarin/Xamarin.MacDev:

* xamarin/Xamarin.MacDev@210c664 Adds net451 to Xamarin.MacDev.csproj
* xamarin/Xamarin.MacDev@64db365 [winios] Changes provisioning profiles default path
* xamarin/Xamarin.MacDev@d34430a Switch to short-form projects and build for both net461 and netstandard2.0. (#68)

Diff: 0f578f51e6..210c664e56

* [msbuild] Update to latest Mono.Cecil.

The older version doesn't support netstandard2.0.

No code changes were required.

* [msbuild] Remove unused usings.

* [msbuild] Make ILMerge work when building for netstandard2.0.

Also unify/deduplicate the ILMerge logic between Xamarin.iOS and Xamarin.Mac.

* [msbuild] Build for netstandard2.0 in addition to net461.

* [msbuild] Use custom project configurations to support running the tests for both netstandard2.0 and net461.

Use custom project configurations to support running the tests for when the
tasks assembly is built for netstandard2.0 and net461.

* [tests] Make command-line based 'make test-ios-tasks' run tests for both netstandard2.0 and net461.

* [xharness] Add test configuration to run iOS MSBuild tests using either netstandard2.0 or net461.

* [msbuild] Make the netstandard2.0-buils task assemblies the default.

* [msbuild] ILRepack lib assemblies, not ref assemblies.

Ask MSBuild to copy lib assemblies to the output folder when building for
netstandard2.0, this way we can easily find the actual implementation
libraries to pass to ILRepack.

* [msbuild] Merge System.Text.Encodings.Web.dll as well.

* [xharness] Fix build of MSBuild tests for iOS.
2020-01-16 18:22:48 +01:00
Rolf Bjarne Kvinge c4e15ed6b6
[msbuild] Convert project files to sdk-style project files. (#7698)
* [msbuild] Convert to short-form csproj.

* [msbuild] Make asserts more useful.

* [msbuild] Make tests ignore the actual location of the test assembly.

* [msbuild] Short-style projects default to deterministic builds, which is not compatible with wildcard versions.

* [msbuild] Adjust test.

* Update .gitignore.

* Bump NUnit.ConsoleRunner version.

* [msbuild] Fix indentation.

* [msbuild] Simplify csproj.
2020-01-14 08:16:02 +01:00
Rolf Bjarne Kvinge 087e00e305
[msbuild] Adjust test to work locally by being less demanding. (#7694)
These tests were checking if mtouch is called (or not) by checking for the
full installed path to mtouch. When running the tests locally, we're using the
locally built mtouch, and thus the path is different and the tests failed.

Instead check for a smaller substring that is present in both cases.
2020-01-10 18:41:11 +01:00
Chris Hamons bcb8f01a7a
[msbuild] Stub out GenerateManifests to prevent Windows ClickOnce target collisions (#7668)
- https://devdiv.visualstudio.com/DevDiv/_queries/edit/1041456/
- On Windows the GenerateManifests target will sometimes run and do the wrong thing
as we overload their usages of @(NativeReference). Stub it as a no-op
- Also stub out targets XVS were stubbing.
2020-01-08 09:20:42 -06:00
monojenkins fd91cf731d [d16-5] [msbuild] Add verbosity options on separate lines for mtouch parsing (#7673)
This is more strict than the response-file spec [0] (and filed as a
separate issue [1]) but `mtouch` currently requires one option-per-line
(for filtering some options) for the cache to work properly (i.e. so it
can ignore the `-v` and the `-q` and re-use the existing, cached,
binaries). E.g. from:

```
...
-v -v -v -v
```

to

```
...
-v
-v
-v
-v
```

This is an optimization fix (since cached output helps build times) and
it's also part of a bug fix [2] (part of another commit [3], that was
reverted [4] due to other issues, like this one).

This needs another fix [5] to work properly (like `mtouch` requires)
but both can be applied separately (so different PR for different
changes).

[0] https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/response-file-compiler-option
[1] https://github.com/xamarin/xamarin-macios/issues/7644
[2] https://github.com/xamarin/xamarin-macios/issues/7514
[3] https://github.com/xamarin/xamarin-macios/pull/7544
[4] https://github.com/xamarin/xamarin-macios/pull/7589
[5] https://github.com/xamarin/xamarin-macios/pull/7647


Co-authored-by: Sebastien Pouliot <sebastien.pouliot@gmail.com>
2020-01-06 16:52:36 -05:00
Sebastien Pouliot 229edf7f85 [msbuild] Add verbosity options on separate lines for mtouch parsing (#7649)
This is more strict than the response-file spec [0] (and filed as a
separate issue [1]) but `mtouch` currently requires one option-per-line
(for filtering some options) for the cache to work properly (i.e. so it
can ignore the `-v` and the `-q` and re-use the existing, cached,
binaries). E.g. from:

```
...
-v -v -v -v
```

to

```
...
-v
-v
-v
-v
```

This is an optimization fix (since cached output helps build times) and
it's also part of a bug fix [2] (part of another commit [3], that was
reverted [4] due to other issues, like this one).

This needs another fix [5] to work properly (like `mtouch` requires)
but both can be applied separately (so different PR for different
changes).

[0] https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/response-file-compiler-option
[1] https://github.com/xamarin/xamarin-macios/issues/7644
[2] https://github.com/xamarin/xamarin-macios/issues/7514
[3] https://github.com/xamarin/xamarin-macios/pull/7544
[4] https://github.com/xamarin/xamarin-macios/pull/7589
[5] https://github.com/xamarin/xamarin-macios/pull/7647
2020-01-02 15:02:28 -05:00
Sebastien Pouliot 9eac081031
[msbuild] Avoid lines starting with a whitespace inside generated response files. Fix #7645 (#7647)
Since the "quote" refactoring there's no real difference between `Add*`
and `Add*Line` methods, everything is now line-oriented.

However `Add` and `AddQuoted` behaved differently, which meant that `Add`
would add a whitespace before a new argument in the `StringBuilder` was
not empty (as a separator needed _when_ different lines were not used).

That resulted in response files that had some lines starting with a white
space. That was not an issue (spec [1] wise) but it broke some (not so
correct) assumptions in `mtouch` and could also break anything that added
comments (which must start with `#`) in the future.

This brings consistency in the output whether quoted/non-quoted arguments
are used.

Reference:
[0] https://github.com/xamarin/xamarin-macios/issues/7645
[1] https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/response-file-compiler-option
2019-12-27 09:15:52 -05:00
Rolf Bjarne Kvinge 5c7b669b5b [msbuild] Don't leave changes behind if a test fails. (#7636) 2019-12-23 13:30:12 -05:00
Rolf Bjarne Kvinge b107841f13 [msbuild] Don't use events and methods that are obsolete and do nothing. (#7637)
Fixes these warnings:

    IPhoneSdks.cs(22,4): warning CS0618: 'AppleSdkSettings.Changed' is obsolete: 'This event is never raised' [/work/maccore/onedotnet/xamarin-macios/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj]
    IPhoneSdks.cs(31,4): warning CS0618: 'AppleSdkSettings.CheckChanged()' is obsolete: 'This method does nothing' [/work/maccore/onedotnet/xamarin-macios/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj]
    MacOSXSdks.cs(18,4): warning CS0618: 'AppleSdkSettings.Changed' is obsolete: 'This event is never raised' [/work/maccore/onedotnet/xamarin-macios/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj]
    MacOSXSdks.cs(25,4): warning CS0618: 'AppleSdkSettings.CheckChanged()' is obsolete: 'This method does nothing' [/work/maccore/onedotnet/xamarin-macios/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj]

Also bump Xamarin.MacDev to pick up updated Xamarin.MacDev:

* xamarin/Xamarin.MacDev@0f578f5 [tests] Upgrade to NUnit 3.12 and use package references. (#65)
* xamarin/Xamarin.MacDev@55a30e2 [tests] Adjust tests to not expect the provisioning profiles in the index in any particular order. (#63)
* xamarin/Xamarin.MacDev@dc270f6 Make methods that do nothing obsolete and fix a compiler warning. (#67)
* xamarin/Xamarin.MacDev@681aef6 Remove unused csproj. (#66)
* xamarin/Xamarin.MacDev@d78a92f Update gitignore (#55)

Diff: ca221c8fd6..0f578f51e6
2019-12-23 13:29:34 -05:00
Rolf Bjarne Kvinge a0beca28f9
[msbuild] Use package references. (#7621)
One of many steps towards building for netstandard 2.0.
2019-12-20 17:23:09 +01:00
Rolf Bjarne Kvinge cf97aaf971
[msbuild] Don't use gdk-sharp, use native functions instead. (#7623)
* [msbuild] Don't use gdk-sharp, use native functions instead.

There's no netstandard version of gdk-sharp.

* Don't require the source checkout to be named 'xamarin-macios'.
2019-12-19 15:21:09 +01:00
Rolf Bjarne Kvinge 6ceb45c9fc
Merge pull request #7611 from rolfbjarne/msbuild-use-system-text-json
[msbuild] Use System.Text.Json instead of System.Json, since only the former is available in .netcore.
2019-12-19 00:35:04 +01:00
Rolf Bjarne Kvinge 3d465f4149
[msbuild] Use mono's coding style. (#7622) 2019-12-18 19:20:16 +01:00
Rolf Bjarne Kvinge 8c589c0093
[msbuild] Remove unused file. (#7610) 2019-12-18 07:15:49 +01:00
Rolf Bjarne Kvinge 015cbf1efc [msbuild] Use faster string comparison (OrdinalIgnoreCase). 2019-12-17 18:55:16 +01:00
Rolf Bjarne Kvinge ca88b95c0e [msbuild] Tell ILRepack where netstandard.dll can be found.
System.Text.Json references netstandard.dll, and ILRepack needs to be able to find it.
2019-12-17 11:34:27 +01:00
Rolf Bjarne Kvinge 0d299e0eb8 [msbuild] Calculate assemblies to be IL merged differently.
We now need to merge System.Text.Json into the final assembly, which means all
the System.Text.Json dependencies as well (there are quite a few), so adjust
the logic to figure out which assemblies to be merged to include every
library, except:

* MSBuild assemblies
* Resource assemblies
* System assemblies.
2019-12-17 11:34:24 +01:00
Rolf Bjarne Kvinge b7a50608f6 [msbuild] Adjust the Bug60536 test so that it continues to fail as expected after switching json parser.
The Bug60536 is about showing a good error message if the json in an asset
pack is invalid. It turns out that System.Text.Json is a bit more permissive
than System.Json, so the json that was previously failing to parse is now
parsing fine [1]. So introduce something that is certainly invalid json
everywhere, and update the test itself as well to cope with different error
message and error location.

Also remove workaround for xbuild in this test, since xbuild isn't used anymore.

[1]: Technically the json is still invalid, because according to the json spec
it's not valid to end a list of array elements with a trailing comma. The
problem is that System.Json would in some cases allow trailing commas for
lists of array elements, and sometimes not, which means that we have to ask
System.Text.Json to allow trailing commas as well. And when System.Text.Json
is asked to allow trailing commas, it also successfully parses a case of
trailing comma where System.Json didn't, thus the need for coming up with
something even more invalid.
2019-12-17 11:28:42 +01:00
Rolf Bjarne Kvinge a1acbd7d0d [msbuild] Use System.Text.Json instead of System.Json, since only the former is available in .netcore. 2019-12-17 11:28:11 +01:00
Rolf Bjarne Kvinge 32cd69d274 [msbuild] Split long exec command over multiple lines.
Makes it easier to understand what's happening when new arguments are added
(and easier to add comments to specific arguments).
2019-12-17 11:17:01 +01:00
Rolf Bjarne Kvinge c422869c4b
[msbuild] Update tests to NUnit 3.12. (#7597)
Updating the msbuild tasks to use netstandard2.0 requires us to bump NUnit to 3+.

This requires:

* A few code changes due to breaking API changes in NUnit.
* Changes in xharness and a makefile to cope with the new location for the
  NUnit console runner (I added a helper script to make things slightly
  easier).
2019-12-16 23:55:59 +01:00
Rolf Bjarne Kvinge d5135cce25
[msbuild] Update to latest ILRepack. (#7594)
The latest ILRepack has fixes for netstandard we'll need.

Also use package references.
2019-12-16 19:06:25 +01:00
Rolf Bjarne Kvinge 3f84883ebf
[msbuild] Remove xbuild-specific code since we don't support building with xbuild anymore. (#7601) 2019-12-16 19:05:40 +01:00
Rolf Bjarne Kvinge 0ea29935b4
[msbuild] Remove unused files. (#7599) 2019-12-16 19:04:41 +01:00
monojenkins fa7e04052c [d16-5] [vsts-1029041] Add FileType to the list of parameters for altool (#7563)
* [vsts-1029041] Add FileType to the list of parameters for altool

* ValidateAppStoreBundle
* UploadAppStoreBundle

* [vsts-1029041] Pass TargetFrameworkIdentifier to identify target platform
2019-12-12 07:23:34 +01:00
Oleg Demchenko 7cfbe40bcb
Merge pull request #7533 from xamarin/olegoid/vsts-1029041
[vsts-1029041] Add FileType to the list of parameters for altool
2019-12-10 11:56:44 -05:00
Oleg Demchenko 6aabc75583 [vsts-1029041] Pass TargetFrameworkIdentifier to identify target platform 2019-12-03 18:15:09 -05:00
Oleg Demchenko 0fe60500f0 [vsts-1029041] Add FileType to the list of parameters for altool
* ValidateAppStoreBundle
* UploadAppStoreBundle
2019-12-02 16:46:08 -05:00
Sebastien Pouliot 0ee2b271b1
[msbuild] Ensure files we copy are world-readable. Fix #7395 (#7515)
Only execute the extra logic when not running on Windows

ref: https://github.com/xamarin/xamarin-macios/issues/7395
2019-12-02 14:16:49 -05:00
Ema 0fc20af16a [msbuild] Makes DSymUtil task report the Executable as output
The DSymUtil tool not only generates the debug symbol files but also modifies the executable file. Marking that property as Output (and changing it to ITaskItem type) makes Visual Studio on Windows aware of that change. Under certain scenarios this was making the build on VS produce an app bundle that was not fully signed on incremental builds. For instance, the DSymUtil task was run for a framework on an incremental build, but as the executable file of that framework was not modified on Windows the inputs/outputs check for CodesignFrameworks did not fail so that target was skipped. This led to a failure on the CodesignVerify target.

Partial fix for https://developercommunity.visualstudio.com/content/problem/729766/codedesign-exited-with-code-1.html
2019-10-30 18:21:26 -03:00
Ema 68f886caef [msbuild] Makes DSymUtil task report the Executable as output
The DSymUtil tool not only generates the debug symbol files but also modifies the executable file. Marking that property as Output (and changing it to ITaskItem type) makes Visual Studio on Windows aware of that change. Under certain scenarios this was making the build on VS produce an app bundle that was not fully signed on incremental builds. For instance, the DSymUtil task was run for a framework on an incremental build, but as the executable file of that framework was not modified on Windows the inputs/outputs check for CodesignFrameworks did not fail so that target was skipped. This led to a failure on the CodesignVerify target.

Partial fix for https://developercommunity.visualstudio.com/content/problem/729766/codedesign-exited-with-code-1.html
2019-10-30 15:21:19 -03: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 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
Rolf Bjarne Kvinge bdc8e693f9
[msbuild] Provide the correct value for the operating system for tvOS and watchOS to a few tasks. Fixes #6200. (#7226)
The problem with #6200 was that we'd pass -mios-version-min=x.y to the metal
tool even for tvOS apps. This fixes it so that now pass -mtvos-version-min.

Fixes https://github.com/xamarin/xamarin-macios/issues/6200.
2019-10-16 22:14:11 +02:00
monojenkins 08acbf3dcc Fix version numbers in FrameworkList.xml files (#7162)
The existing test only checked that an assembly was mentioned in the file, but not that its version etc matches.
Updated the test and fixed the differences.
2019-10-15 17:50:59 -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
Vincent Dondain a3076f29a3 Merge branch 'xcode11.1' into d16-4 2019-10-07 21:46:13 -04:00
Alexander Köplinger 12831b3c36 Fix version numbers in FrameworkList.xml files (#7161)
The existing test only checked that an assembly was mentioned in the file, but not that its version etc matches.
Updated the test and fixed the differences.
2019-10-04 14:26:28 -04:00
Rolf Bjarne Kvinge 8128976084
[runtime] Split the build differently: build libraries for simulator and device separately. (#7143)
This has a couple of advantages:

* It makes it easier to add a catalyst version of these libraries (because it
  becomes cumbersome to build for catalyst when the build rules assumes we're
  building for both simulator and device).
* It makes it easier to create an xcframework of our libraries, because the
  contents in an xcframework is split like this.
2019-10-03 16:38:44 +02:00
monojenkins d45ad36c66 Bump mono to 2019-08@528103728fc2aedb7b6062e11255d39a0ed3f31c to add missing NS2.1 APIs (#7150)
See https://github.com/mono/mono/issues/17064.

The 2019-08 version of the fix adds a new assembly with NS2.1 APIs that we stubbed out in 2019-06: System.Data.DataSetExtensions.dll
2019-10-02 08:08:41 -04:00
Alexander Köplinger fb1f73ef57 Bump mono to 2019-08@528103728fc2aedb7b6062e11255d39a0ed3f31c to add missing NS2.1 APIs (#7147)
See https://github.com/mono/mono/issues/17064.

The 2019-08 version of the fix adds a new assembly with NS2.1 APIs that we stubbed out in 2019-06: System.Data.DataSetExtensions.dll
2019-10-02 07:59:39 -04:00
Rolf Bjarne Kvinge 7d4b09e3d0
[msbuild] Update a few msbuild tests to Xcode 11 behavior. Fixes #6970. (#7031)
Fixes https://github.com/xamarin/xamarin-macios/issues/6970.
2019-09-19 15:29:44 +02:00
Rolf Bjarne Kvinge 303aa0a649 Merge remote-tracking branch 'origin/xcode11' into master-xcode11 2019-09-13 18:35:18 +02:00
Rolf Bjarne Kvinge f6e0531197 Merge xcode11 into d16-3. 2019-09-12 08:29:02 +02:00
monojenkins 684642a926 [xcode11] [msbuild][xm][xi] Fix building with netstandard libraries (#6959)
* [msbuild] Use task assembly path via a property

Xamarin.Mac.Common.ImplicitFacade.msbuild.targets: $(_NETBuildExtensionsTaskAssembly)

* [msbuild] Fix path to NET.Build.Extensions task assembly

.. which is no longer available for `net46`. Instead use the latest
`net472` path.

The incorrect path effectively disabled the `GetDependsOnNETStandard`
task, causing the issue.

Partially fixes https://github.com/xamarin/xamarin-macios/issues/6552 .

* [msbuild] Fix XM builds which use netstandard libraries.

`Xamarin.Mac.Common.ImplicitFacade.msbuild.targets`:

`ImplicitlyExpandDesignTimeFacades` adds a reference to `netstandard.dll`
by expanding the facades, if any of the references depend on it. Usually,
this gets handled by msbuild SDKs but in case of XM, this doesn't happen
in all cases. So, we need to scan the references for a `netstandard`
dependency.

The `ResolveAssemblyReference` task does this for us and populates
`$(_DependsOnNETStandard)` property. If it does not, then we use
`GetDependsOnNETStandard` task to get the same information.

Issue:
- the target incorrectly uses `$(DependsOnNETStandard)` instead of
  `($_DependsOnNETStandard)`.
- Fixing that means that condition `$(_DependsOnNETStandard) == ''` fails
  whenever `ResolveAssemblyReference` task runs (setting the property
  to `true` or `false`), causing `$(XM_DependsOnNETStandard)` to be unset.
    - thus failing the following logic to expand the facades when `$(_DependsOnNETStandard) == true`

So, we use the `$(_DependsOnNETStandard)` as the default value for
`$(XM_DependsOnNETStandard)`, so that it is correctly set to `true`,
irrespective of how we got that information, allowing us to correctly
expand facades when required.

Partially fixes https://github.com/xamarin/xamarin-macios/issues/6552 .

* [msbuild] Fix XI builds which use netstandard libraries.

`Xamarin.iOS.Common.targets`:

Issue:
- the target incorrectly uses `$(DependsOnNETStandard)` instead of
`($_DependsOnNETStandard)`.
- Fixing that means that condition `$(_DependsOnNETStandard) == ''` fails
whenever `ResolveAssemblyReference` task runs (setting the property
to `true` or `false`), causing `$(XI_DependsOnNETStandard)` to be unset.
- thus failing the following logic to expand the facades when `$(_DependsOnNETStandard) == true`

So, we use the `$(_DependsOnNETStandard)` as the default value for
`$(XI_DependsOnNETStandard)`, so that it is correctly set to `true`,
irrespective of how we got that information, allowing us to correctly
expand facades when required.

Prompted by: https://github.com/xamarin/xamarin-macios/issues/6552
2019-09-10 22:58:24 -07:00
Chris Hamons 34134263cc [msbuild] Disable broken iOS msbuild tests (#6971)
- These tests depend on nib format that Xcode 11 GM broke
- https://github.com/xamarin/xamarin-macios/issues/6970
2019-09-11 01:03:11 -04:00
Ankit Jain 14559e35bd [msbuild][xm][xi] Fix building with netstandard libraries (#6667)
* [msbuild] Use task assembly path via a property

Xamarin.Mac.Common.ImplicitFacade.msbuild.targets: $(_NETBuildExtensionsTaskAssembly)

* [msbuild] Fix path to NET.Build.Extensions task assembly

.. which is no longer available for `net46`. Instead use the latest
`net472` path.

The incorrect path effectively disabled the `GetDependsOnNETStandard`
task, causing the issue.

Partially fixes https://github.com/xamarin/xamarin-macios/issues/6552 .

* [msbuild] Fix XM builds which use netstandard libraries.

`Xamarin.Mac.Common.ImplicitFacade.msbuild.targets`:

`ImplicitlyExpandDesignTimeFacades` adds a reference to `netstandard.dll`
by expanding the facades, if any of the references depend on it. Usually,
this gets handled by msbuild SDKs but in case of XM, this doesn't happen
in all cases. So, we need to scan the references for a `netstandard`
dependency.

The `ResolveAssemblyReference` task does this for us and populates
`$(_DependsOnNETStandard)` property. If it does not, then we use
`GetDependsOnNETStandard` task to get the same information.

Issue:
- the target incorrectly uses `$(DependsOnNETStandard)` instead of
  `($_DependsOnNETStandard)`.
- Fixing that means that condition `$(_DependsOnNETStandard) == ''` fails
  whenever `ResolveAssemblyReference` task runs (setting the property
  to `true` or `false`), causing `$(XM_DependsOnNETStandard)` to be unset.
    - thus failing the following logic to expand the facades when `$(_DependsOnNETStandard) == true`

So, we use the `$(_DependsOnNETStandard)` as the default value for
`$(XM_DependsOnNETStandard)`, so that it is correctly set to `true`,
irrespective of how we got that information, allowing us to correctly
expand facades when required.

Partially fixes https://github.com/xamarin/xamarin-macios/issues/6552 .

* [msbuild] Fix XI builds which use netstandard libraries.

`Xamarin.iOS.Common.targets`:

Issue:
- the target incorrectly uses `$(DependsOnNETStandard)` instead of
`($_DependsOnNETStandard)`.
- Fixing that means that condition `$(_DependsOnNETStandard) == ''` fails
whenever `ResolveAssemblyReference` task runs (setting the property
to `true` or `false`), causing `$(XI_DependsOnNETStandard)` to be unset.
- thus failing the following logic to expand the facades when `$(_DependsOnNETStandard) == true`

So, we use the `$(_DependsOnNETStandard)` as the default value for
`$(XI_DependsOnNETStandard)`, so that it is correctly set to `true`,
irrespective of how we got that information, allowing us to correctly
expand facades when required.

Prompted by: https://github.com/xamarin/xamarin-macios/issues/6552
2019-09-10 00:02:55 -07:00
Rolf Bjarne Kvinge ec09193daf
Build native code with -std=c++14. (#6864)
* Build native code with -std=c++14.

Apple's headers now require -std=c++14 to compile their headers in C++ mode.

This fixes a compile error that would occur with the PhotosUI framework when
compiling code for C++.

* [mmp] Use -std=c++14 when compiling.

* Fix command line output.

* [mmp] Add all source files at the end, so they all get the -x clang argument applied.

* Limit when using c++14 in mtouch according to language.
2019-08-29 08:49:06 -07:00
William Kent 3f3c8bce26 Add support for Apple Development certificates to Xamarin.Mac MSBuild (#6797)
Add Apple Development certificates to Mac DetectSigningIdentity task
2019-08-28 11:30:36 -04:00
Emanuel Fernandez Dell'Oca 616d6544ad [msbuild] Improve altool task by logging execution errors (#6815)
* [msbuild] Improve altool task by logging execution errors
The altool task was just logging the XML output produced by the tool execution but was not logging any build error neither failing in that case.

* [msbuild] Log the altool output when failing to parse it
2019-08-23 08:38:08 -07:00
Emanuel Fernandez Dell'Oca d859ceac6c [msbuild] Fixes publishing targets (#6824)
* [msbuild] Adds missing SessionId property to altool targets
Sets the missing SessionId property on the altool targets to enable running those from Visual Studio.

* [msbuild] Ensure Entitlements are compiled before creating an IPA

When creating an IPA from an archive the `CreateAppBundle` target will be skipped because we already have a bundle and the same will happen with the Entitlements compilation, but we need to re-compile those with the new certificate and profile. Adding `_CompileEntitlements` as a `CreateIpa` dependency will ensure it's run when creating an IPA file from an archive. Nothing changes when creating IPAs from a regular build since at the point the of creating the IPA the `_CompileEntitlements` target was already run, so it will be skipped.
2019-08-23 11:08:22 -04:00
Emanuel Fernandez Dell'Oca c391c6dbdd [xcode11][publishing] Added conditional behavior to CreateIpa and its dependencies (#6753)
* [publishing] Added conditional behavior to CreateIpa and its dependencies

The targets execution needs to change based on the 'IsAppDistribution' property value, which will be set from the IDE.
According to the value of this property, some dependencies should be run or should be skipped.
The strategy adopted is to use the BeforeTargets value because doing this way we will force the conditionals over '$(IsAppDistribution)' to be evaluated each time a target is attempted to be run.
The most intuitive way of doing it is by directly add DependsOnTargets and conditions on the PropertyGroup items, but doing this will not work because the IDE usually runs the targets when the MSBuild project is already loaded, which means that the properties have already been evaluated so they will not be evaluated again, which causes conditional values to be out of date.
The only way of making it work in these cases is by forcing the conditional evaluations of each target execution attempt, and that is accomplished by adding the conditions directly on the Target 'Condition' property.

* [publishing] Simplified targets by using DependsOn + conditions in existent targets

- Using BeforeTargets on `_BeforeCreateIpaForDistribution` made that target run even if `CreateIpa` was skipped because its condition was false, which is wrong. Instead of including that condition into `_BeforeCreateIpaForDistribution` it seems more reasonable to move it to the `CreateIpa` DependsOnTargets property group to avoid maintaining the same condition on both targets in future changes that could lead to errors.
- Removed `_BeforeCreateIpaForBuild` since it was an unnecessary extensibility point and made the `CreateIpa` dependencies more complicated.
- We still need `_BeforeCreateIpaForDistribution` and `_BeforeCreateIpaForDistributionDependsOn` as extensibility point for the publishing workflow on VS.
- Simplified the previous approach by removing unnecessary targets and dependencies when the only thing needed was just the following condition on existent targets: `'$(IsAppDistribution)' != 'true'`. For instance, removed `_BeforeCodeSignForBuild` and included the mentioned condition into `_CreateAppBundle`. The purpose of `_BeforeCodeSignForBuild` was just skipping `_CreateAppBundle` for distribution builds, but it made the targets more complicated to understand and maintain.
- Same thing applies to `_BeforeCollectFrameworksForBuild` and `_BeforeCodesignNativeLibrariesForBuildDependsOn` which were just skipping the `_CompileToNative` target for distribution builds.
2019-08-16 11:00:20 +02:00
Rolf Bjarne Kvinge 1e15472b49
[tests][msbuild] Tweak NativeReferencesNoEmbedding test to work with a locally built mtouch. (#6660)
When building mtouch locally, this will be the mtouch path:

    /path/to/somewhere/xamarin-macios/_ios-build//Library/Frameworks/Xamarin.iOS.framework/Versions/git/bin/mtouch
2019-08-14 13:21:52 +02:00
Timothé Larivière 286f0cb271 Add correct casing for Microsoft.FSharp.targets (#6722)
* Add correct casing for Microsoft.FSharp.targets

* Correct fix
2019-08-14 13:20:32 +02:00
Oleg Demchenko 4d905a8914
Update msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets
Co-Authored-By: Vincent Dondain <vidondai@microsoft.com>
2019-08-07 17:29:12 -04:00
Oleg Demchenko 3b293f5afe [vsts-938452] Add ALToolTaskBase.cs to Xamarin.MacDev.Tasks.Core.csproj 2019-08-07 16:10:32 -04:00
Oleg Demchenko 0fa3511948 [vsts-938452] Revert changes in Xamarin.MacDev.Tasks.Core.csproj 2019-08-07 16:10:21 -04:00
Oleg Demchenko 0b3ab2b777 [vsts-938452] Apply suggestion from Rolf 2019-08-07 16:10:09 -04:00
Oleg Demchenko be654adc70 [vsts-938452] Clean up file names and indentations 2019-08-07 16:09:58 -04:00
Oleg Demchenko 1cc7e073e6 [vsts-938452] Add UploadAppStoreBundle target 2019-08-07 16:09:45 -04:00
Oleg Demchenko b5ea7813a0 [vsts-938452] Add SesssionId to ALToolTaskBase 2019-08-07 16:09:32 -04:00
Oleg Demchenko 112247efb0 [vsts-938452] Change inheritance order of altool-task classes 2019-08-07 16:09:20 -04:00
Oleg Demchenko ffebb9ef5d [vsts-938452] Add altool tasks to Xamarin.iOS.Common.targets 2019-08-07 16:08:52 -04:00
Oleg Demchenko 46dfc93ed9 [vsts-938452] Refactor altool upload and verify tasks to actually work 2019-08-07 16:08:39 -04:00
Oleg Demchenko a610df25ab [vsts-938452] Output altool logs in xml format 2019-08-07 16:08:25 -04:00
Oleg Demchenko 751f171c2c [vsts-938452] Add altool upload and verify draft implementations 2019-08-07 16:08:12 -04:00
Jonathan Peppers 7c2cf9aa52 [msbuild] $(ProduceReferenceAssembly) support (#6458)
Context: http://feedback.devdiv.io/600039
Context: 6321934237/Documentation/guides/MSBuildReferenceAssemblies.md
Context: https://github.com/dotnet/roslyn/blob/master/docs/features/refout.md#msbuild

For Xamarin.Android, we have been doing a bit of work to enable a new
MSBuild/Roslyn feature called "reference assemblies". You can opt into
this by setting $(ProduceReferenceAssembly)=true in a netstandard
project.

The benefit being that if the public API doesn't change in the
netstandard library, the head projects don't need to run `CoreCompile`
or `<Csc/>` during an incremental build.

Unfortunately, this seems to have uncovered a problem in the
Xamarin.iOS MSBuild targets. If you do a build with a XAML-only change,
you get:

    Target "_CompileToNative" in file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets":
    Skipping target "_CompileToNative" because all output files are up-to-date with respect to the input files.
    Input files: /Users/jonathanpeppers/Projects/HelloForms/HelloForms.iOS/bin/iPhoneSimulator/Debug/HelloForms.iOS.exe
    Output files: bin/iPhoneSimulator/Debug/device-builds/iphone11.8-12.2/HelloForms.iOS.app/HelloForms.iOS;bin/iPhoneSimulator/Debug/device-builds/iphone11.8-12.2/mtouch.stamp

Because we are using `$(ProduceReferenceAssembly)` the
`HelloForms.iOS.exe` assembly will have no changes. Only
`HelloForms.dll`, the netstandard project, has changes. We were able
to skip `CoreCompile` in the iOS head project. Faster builds, yeah!

However, we actually need `_CompileToNative` to run, or we won't see
any changes on the device or simulator... It only runs if
`$(TargetPath)` changes.

The fix here is to add new `Inputs`, so `_CompileToNative` runs when
any referenced assemblies change:

    <_CompileToNativeInput Include="$(TargetDir)$(TargetFileName);@(ReferencePath);@(MTouchReferencePath)" />

This fixes incremental builds (or changes) for:

* Any `<ProjectReference/>` that has `$(ProduceReferenceAssembly)`
* Any NuGet package that ships a reference assembly alongside its
"regular" assembly

I also moved the `<ItemGroup>`'s, just so the code made sense --
so we have all the important `<ItemGroup>`'s in one place.

I also updated the `XamarinForms` test to verify things are working.

I added a couple helpers to assist in writing MSBuild tests:

* `IsTargetSkipped` to check if a specific MSBuild target ran
* `Logger.Clear` to clear past MSBuild events within a single test
2019-07-12 21:34:06 +02:00
Jonathan Peppers a51e9f8e88
[xibuild] support for SDK-style projects & Xamarin.Forms test (#6461)
Context: 4ecedac733/src/Shared/BuildEnvironmentHelper.cs (L567-L586)
Context: 1d71d99837/tools/xabuild

When using `xibuild` to build an SDK-style project:

    tools/xibuild/xibuild -- msbuild/tests/MyXamarinFormsApp/MyXamarinFormsAppNS/MyXamarinFormsAppNS.csproj /restore

It was failing with:

    Resolving SDK 'Microsoft.NET.Sdk'...
    Project "msbuild/tests/MyXamarinFormsApp/MyXamarinFormsApp.csproj" is building "msbuild/tests/MyXamarinFormsApp/MyXamarinFormsAppNS/MyXamarinFormsAppNS.csproj" (GetTargetFrameworks target(s)):
    Building with tools version "Current".
    msbuild/tests/MyXamarinFormsApp/MyXamarinFormsAppNS/MyXamarinFormsAppNS.csproj : error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.

Looking at this code, it looks pretty familiar -- it came from xabuild!

xibuild was currently setting `MSBuildSDKsPath` via a config file:

    <msbuildToolsets default="Current">
      <toolset toolsVersion="Current">
        <property name="MSBuildSDKsPath" value="/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/Current/bin/Sdks" />

Reviewing the source code for MSBuild, they don't even look for this
value via MSBuild properties... They just look for Visual Studio
directories and a `MSBuildSDKsPath` environment variable. We don't have
to use this in Xamarin.Android, because we do things a different way.
There was craziness involved to get both Windows & Mac working.

For this to work on Mac, we can just set `MSBuildSDKsPath` when
starting the new MSBuild process.

I cleaned up how `MSBUILD_EXE_PATH` is set so both of these variables
are just set via `ProcessStartInfo.EnvironmentVariables`.

Now I can fully build a Xamarin.Forms project that references a
netstandard library with `xibuild`:

    $ tools/xibuild/xibuild -- msbuild/tests/MyXamarinFormsApp/MyXamarinFormsApp.csproj /restore
    ...
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:15.83

~~ New Tests ~~

I went ahead and added a new Xamarin.Forms project to test and verify
that it builds. It is the Blank Forms app template from latest VS4Mac.

With the changes to `xibuild`, I was able to build with the in-process
MSBuild APIs.
2019-07-01 12:20:32 -05:00
Rolf Bjarne Kvinge 523349bf69 Merge remote-tracking branch 'origin/d16-2' into xcode11-bump-mono-d16-2 2019-06-20 10:27:04 +02:00
Rolf Bjarne Kvinge 14cac96c90
[d16-2] Bump VSMac to 8.1.0.2742 to fix msbuild issues (#6279) (#6361)
* Bump VSMac to 8.1.0.2742 to fix msbuild issues (#6279)

* Bump VSMac to 8.1.0.2742 to fix msbuild issues

This is required to get the support for the msbuild `ToolsVersion`
change from `15.0` to `Current`.

* [tests][msbuild] Fix Binding resources test with updated msbuild

Test failure with updated msbuild and vsmac 8.1:

```
Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildBindingProject(True)
     Binding project build did not create package?
  Expected: True
  But was:  False

at Xamarin.iOS.Tasks.NativeReferencesNoEmbedding.ShouldNotUnnecessarilyRebuildBindingProject (System.Boolean framework) [0x000a0] in <74b8f7d8a53e40109916d305bb4d7403>:0
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 cul
ture) [0x0006a] in <0519fa732e8845b6a809ce9180f541db>:0
```

The test builds the project multiple times. Before the 3rd build, the project
file's timestamp is updated and expects that the binding package will be
rebuilt. But it is not, because the target `_CreateBindingResourcePackage`
doesn't depend on that project file. So, add that to the target inputs.

* [nuget] Use xibuild to run nuget

Fix errors seen during `nuget restore` for tests:

```
Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xammac_tests/xammac_tests.csproj(213,3): error MSB4024: The imported project file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets" could not be loaded. Could not find file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets"
```

* [xibuild] Fix incorrect mscorlib.dll being used (#6068)

* [xibuild] Fix incorrect mscorlib.dll being used

The `GuiUnit_NET_4_5` project, when built with `xibuild` uses the wrong `mscorlib.dll`.

From https://github.com/xamarin/xamarin-macios/issues/5760#issuecomment-472457202 :

```
- mscorlib.dll is being used from mono/4.5 and the other system assemblies are from mono/4.5-api
- GuiNet* project is built with xibuild

What is happening here is:

	xibuild sets[1] `SetToolsetProperty ("TargetFrameworkRootPath", FrameworksDirectory + Path.DirectorySeparatorChar);`
	which points to `/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks`.
	This causes $(FrameworkPathOverride) to be set[2] to `/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks/.NETFramework/v4.5`,
	but that doesn't have a mscorlib.dll, so it gets reset[3] to /Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5/.

	If we don't set TargetFrameworkRoothPath, then we get `FrameworkPathOverride = /Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5-api`,
	causing `_ExplicitReference=/Library/Frameworks/Mono.framework/Versions/5.22.0/lib/mono/4.5-api/mscorlib.dll`(correct one) to be used.
```

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

1. https://github.com/xamarin/xamarin-macios/blob/master/tools/xibuild/Main.cs#L209
2. https://github.com/mono/msbuild/blob/xplat-master/src/Tasks/Microsoft.Common.CurrentVersion.targets#L79
3. https://github.com/mono/msbuild/blob/xplat-master/src/Tasks/Microsoft.Common.CurrentVersion.targets#L84

* Revert "Workaround https://github.com/xamarin/xamarin-macios/issues/5760 in generator csproj"

This reverts commit 9bd927bb7f.

The previous commit for xibuild removes the need for this.

* [xibuild] Handle "incorrectly" cased msbuild property names  (#6202)

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

Fixed to ignore case.

Fixes https://github.com/mono/mono/issues/14765 .
2019-06-19 17:28:01 +02:00
Rolf Bjarne Kvinge 626a859a46
[xcode11] Fix several issues to make the mtouch tests pass. Fixes #6259. (#6332)
* [tests] Minor refactor to get better Xcode version parsing.

* Rename Configuration.XcodeVersion to XcodeVersionString.
* Add Configuration.XcodeVersion a parsed Version instane of XcodeString.

* [tests] Ignore all 'MT0099: Not linking with WatchKit because Xcode 11 beta 1' warnings in tests.

* [tests] Adjust min OS version tests for Xcode 11b1.

* [tests] Adjust tests for changes in 'nm' output.

* [tests] Adjust tests for name changes in Clang.

* [tests] Adjust tests for changes in ld warning format.

* [msbuild] 'metal' and 'metallib' aren't in PATH anymore, so use xcrun to execute them.

* [msbuild] Fix DevicePlatformBinDir for the Metal and MetalLib targets on iOS.

Also set the SDKROOT variable, otherwise metal and metallib don't work
properly, and revert the previous attempt at a fix (use xcrun).

* [tests] Simplify version parsing code to not version parse anymore.

* [tests] Add FIXME for once Apple fixes the WatchKit disappearance.
2019-06-19 07:20:02 +02:00
Ankit Jain e271d5e18d Bump VSMac to 8.1.0.2742 to fix msbuild issues (#6279)
* Bump VSMac to 8.1.0.2742 to fix msbuild issues

This is required to get the support for the msbuild `ToolsVersion`
change from `15.0` to `Current`.

* [tests][msbuild] Fix Binding resources test with updated msbuild

Test failure with updated msbuild and vsmac 8.1:

```
Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildBindingProject(True)
     Binding project build did not create package?
  Expected: True
  But was:  False

at Xamarin.iOS.Tasks.NativeReferencesNoEmbedding.ShouldNotUnnecessarilyRebuildBindingProject (System.Boolean framework) [0x000a0] in <74b8f7d8a53e40109916d305bb4d7403>:0
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 cul
ture) [0x0006a] in <0519fa732e8845b6a809ce9180f541db>:0
```

The test builds the project multiple times. Before the 3rd build, the project
file's timestamp is updated and expects that the binding package will be
rebuilt. But it is not, because the target `_CreateBindingResourcePackage`
doesn't depend on that project file. So, add that to the target inputs.

* [nuget] Use xibuild to run nuget

Fix errors seen during `nuget restore` for tests:

```
Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xammac_tests/xammac_tests.csproj(213,3): error MSB4024: The imported project file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets" could not be loaded. Could not find file "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Mac.CSharp.targets"
```
2019-06-19 07:07:26 +02:00
Rolf Bjarne Kvinge 2f877cfe8b
[msbuild] [tests] Ignore PhotoEditingTests until Apple fixes the PhotosUI framework's header to compile. (#6333)
Partial fix for https://github.com/xamarin/xamarin-macios/issues/6325.
2019-06-17 19:13:40 +02:00
monojenkins 82d0a65400 [msbuild] Lock variables accessed in a Parallel.ForEach callback. (#6188)
Lock variables accessed in a Parallel.ForEach callback, since the callback
must be thread-safe because it's executed in parallel using multiple threads.
2019-06-03 13:16:50 +02:00
monojenkins 3cd018b55c [msbuild] Lock variables accessed in a Parallel.ForEach callback. (#6189)
Lock variables accessed in a Parallel.ForEach callback, since the callback
must be thread-safe because it's executed in parallel using multiple threads.
2019-06-03 12:59:59 +02:00
Ema 1d81c4c1fd [msbuild] Avoid running CollectBundleResources task if there's no Mac available
The IsMacEnabled condition was missing in this specific usage of the CollectBundleResources task. As with any other task that needs to run on a Mac, we should only run it if there's a Mac available or it will end up showing several warnings when building offline from Windows.
2019-05-31 11:47:41 -03:00
Rolf Bjarne Kvinge 64ae36659f
[msbuild] Lock variables accessed in a Parallel.ForEach callback. (#6173)
Lock variables accessed in a Parallel.ForEach callback, since the callback
must be thread-safe because it's executed in parallel using multiple threads.
2019-05-30 23:29:45 -07:00
Chris Hamons 733171280e
[msbuild] Add non-ui version of com.apple.AudioUnit-UI in lists (#6098)
- https://github.com/xamarin/xamarin-macios/issues/6087
- We have a list of supported extensions, we just didn't include the non-ui flavor
2019-05-22 08:14:51 -05:00
Rolf Bjarne Kvinge 8face92f47 [msbuild] Make using the fake watchOS 4.3 SDK disabled by default.
Since we now have support for ARM64_32.
2019-05-22 08:06:30 +02:00
Bernhard Urban d26208422c [mtouch] Add support for arm64_32 2019-05-22 08:04:50 +02:00
monojenkins daf5006281 [d16-2] [msbuild] Add reference to `System.Drawing.Common.dll` to XI projects. (#6035)
* [msbuild] Add reference to `System.Drawing.Common.dll` to XI projects.

Fixes https://github.com/mono/mono/issues/13483 :

```
@akoeplinger: Since we moved types from Mono.Android.dll and
Xamarin.iOS/WatchOS/TVOS.dll to System.Drawing.Common.dll user projects
would fail to compile. We need to add some msbuild logic to add a
reference to the assembly automatically.
```

* [msbuild] Implement the same fix for XM projects as well.

* [msbuild] Update Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_* tests.

We're including a new assembly, which means the
Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_* must be updated
accordingly.

Also modify these tests so that test assert that fails lists the actual
assembly that's missing, i.e. instead of this:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_Executable
         #1
      Expected: 6
      But was:  7

we now print:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_Executable
         References
      Expected: equivalent to < "mscorlib.dll", "MyLibrary.dll", "System.Core.dll", "System.dll", "System.Xml.dll", "Xamarin.iOS.dll" >
      But was:  < "mscorlib.dll", "MyLibrary.dll", "System.Core.dll", "System.dll", "System.Drawing.Common.dll", "System.Xml.dll", "Xamarin.iOS.dll" >

* [tests] Adjust Xamarin.MMP.Tests.AssemblyReferencesTests.ShouldNotAllowReference_ToSystemDrawing.

The test was verifying that referencing System.Drawing.dll and trying to use
System.Drawing.RectangleF would fail to compile (because System.Drawing.dll
shouldn't be resolved in this case).

The addition of System.Drawing.Common.dll breaks this assumption, because now
we ship System.Drawing.RectangleF, so the code that was supposed to fail to
compile works just fine instead.

So modify the test to verify that there's no System.Drawing.dll in the final
bundle.

* Remove workarounds for mono/mono#13483.

* [msbuild] Create a way out if automatically referencing System.Drawing.Common.dll causes problems.

* [msbuild] Adjust variable name and boolean logic according to review.
2019-05-10 16:16:01 +02:00
Rolf Bjarne Kvinge 9c3754b52f [msbuild] Make using the fake watchOS 4.3 SDK disabled by default.
Since we now have support for ARM64_32.
2019-05-10 08:28:43 +02:00
Bernhard Urban 9dd2340972 [mtouch] Add support for arm64_32 2019-05-10 08:28:43 +02:00
Ankit Jain 3a7bdc0a13 [msbuild] Add reference to `System.Drawing.Common.dll` to XI projects. (#6011)
* [msbuild] Add reference to `System.Drawing.Common.dll` to XI projects.

Fixes https://github.com/mono/mono/issues/13483 :

```
@akoeplinger: Since we moved types from Mono.Android.dll and
Xamarin.iOS/WatchOS/TVOS.dll to System.Drawing.Common.dll user projects
would fail to compile. We need to add some msbuild logic to add a
reference to the assembly automatically.
```

* [msbuild] Implement the same fix for XM projects as well.

* [msbuild] Update Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_* tests.

We're including a new assembly, which means the
Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_* must be updated
accordingly.

Also modify these tests so that test assert that fails lists the actual
assembly that's missing, i.e. instead of this:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_Executable
         #1
      Expected: 6
      But was:  7

we now print:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.GetReferencedAssemblies_Executable
         References
      Expected: equivalent to < "mscorlib.dll", "MyLibrary.dll", "System.Core.dll", "System.dll", "System.Xml.dll", "Xamarin.iOS.dll" >
      But was:  < "mscorlib.dll", "MyLibrary.dll", "System.Core.dll", "System.dll", "System.Drawing.Common.dll", "System.Xml.dll", "Xamarin.iOS.dll" >

* [tests] Adjust Xamarin.MMP.Tests.AssemblyReferencesTests.ShouldNotAllowReference_ToSystemDrawing.

The test was verifying that referencing System.Drawing.dll and trying to use
System.Drawing.RectangleF would fail to compile (because System.Drawing.dll
shouldn't be resolved in this case).

The addition of System.Drawing.Common.dll breaks this assumption, because now
we ship System.Drawing.RectangleF, so the code that was supposed to fail to
compile works just fine instead.

So modify the test to verify that there's no System.Drawing.dll in the final
bundle.

* Remove workarounds for mono/mono#13483.

* [msbuild] Create a way out if automatically referencing System.Drawing.Common.dll causes problems.

* [msbuild] Adjust variable name and boolean logic according to review.
2019-05-10 01:20:52 +02:00
Rolf Bjarne Kvinge 19318368f0
[tests][msbuild] Remove deprecated values from csprojs. (#5995) 2019-05-06 14:40:48 +02:00
Sam 72afd997d6 Add more details to MSBuild errors for provisioning profiles (#5984) 2019-05-06 08:27:16 +02:00
monojenkins 5f6c7bb05e Add more details to MSBuild errors for provisioning profiles (#5987) 2019-05-06 07:28:54 +02:00
Rolf Bjarne Kvinge 8a33276ea8 [msbuild] Add CoreLocation to the frameworks needed in MyiOSFrameworkBinding. Fixes #5974. (#5982)
Fixes these test failures:

    1) Test Failure : Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").FrameworksEmbeddedProperly(True)
         #RunTarget-ErrorCount
    	linker command failed with exit code 1 (use -v to see invocation)
    	Native linking failed, undefined symbol: _CLLocationCoordinate2DMake. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
    	Native linking failed. Please review the build log.
      Expected: 0
      But was:  3

    2) Test Failure : Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildFinalProject(True)
         #RunTarget-ErrorCount
    	linker command failed with exit code 1 (use -v to see invocation)
    	Native linking failed, undefined symbol: _CLLocationCoordinate2DMake. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
    	Native linking failed. Please review the build log.
      Expected: 0
      But was:  3

Fixes https://github.com/xamarin/xamarin-macios/issues/5974.
2019-05-03 17:21:28 +02:00
Rolf Bjarne Kvinge 79f1186d8f
[msbuild] Add CoreLocation to the frameworks needed in MyiOSFrameworkBinding. Fixes #5974. (#5982)
Fixes these test failures:

    1) Test Failure : Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").FrameworksEmbeddedProperly(True)
         #RunTarget-ErrorCount
    	linker command failed with exit code 1 (use -v to see invocation)
    	Native linking failed, undefined symbol: _CLLocationCoordinate2DMake. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
    	Native linking failed. Please review the build log.
      Expected: 0
      But was:  3

    2) Test Failure : Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildFinalProject(True)
         #RunTarget-ErrorCount
    	linker command failed with exit code 1 (use -v to see invocation)
    	Native linking failed, undefined symbol: _CLLocationCoordinate2DMake. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
    	Native linking failed. Please review the build log.
      Expected: 0
      But was:  3

Fixes https://github.com/xamarin/xamarin-macios/issues/5974.
2019-05-03 17:20:07 +02:00
Alexander Köplinger 99ea097abf Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-24 23:28:00 +02:00
Chris Hamons ee09409baa
[msbuild][mac] Fix forcing provisioning profile when entitlements set (#5912)
- https://github.com/xamarin/xamarin-macios/issues/5061
2019-04-22 13:11:07 -05:00
Alexander Köplinger 0da0bcaaae Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-17 11:29:35 +02:00
William Kent dc8e07f678 Add macOS Xcode archive support (#5862)
* Initial commit of ArchiveTaskBase for macOS

* Fix namespace

* Add concrete Archive task

* Add Archive target to Xamarin.Mac.Common.targets

* Remove TODOs for non-applicable items

* Add more properties to archive Info.plist

* Add more parameters to Archive task

* Set the ArchiveDir output parameter

* Move ITunesSourceFiles parameter

* Add test

* Fix msbuild mistakes preventing archive from working

* Reorder ApplicationProperties to be at top like iOS

* Add note

* Improve error handling

* Fix archive to be loadable in Xcode

* 4 spaces to tabs

* More space -> tab
2019-04-15 15:20:18 -05:00
Alexander Köplinger db86c8cc88 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-11 20:28:57 +02:00
Manuel de la Pena 5cfc33e059
[MSBuild] Fix the codesign of f# app extensions. (#5884)
We need to import the iOS common after the core f# ones to ensure they do
not override the wrong ones.

Fixes: https://github.com/xamarin/xamarin-macios/issues/3684
2019-04-11 00:43:58 +02:00
Alexander Köplinger 067cbf0a28 Merge remote-tracking branch 'upstream/master' into mono-2019-02
# Conflicts:
#	tools/mmp/driver.cs
2019-04-05 11:19:11 +02:00
Vincent Dondain 86d1b42ad2 Merge branch 'xcode10.2' into master-merge-xcode10.2 2019-04-03 13:57:31 -04:00
Alexander Köplinger 9e437e77f1 Merge remote-tracking branch 'upstream/master' into mono-2019-02 2019-04-02 13:12:20 +02:00
Rolf Bjarne Kvinge b292a713ef
[msbuild] Add test case for #5129. (#5821) 2019-04-01 08:14:48 +02:00
Alexander Köplinger ca50ae504c Add System.Drawing.Common.dll to Xamarin.Mac-Full-FrameworkList.xml.in 2019-03-14 15:49:25 +01:00
Chris Hamons b777aba9f6
[msbuild] Xamarin.Mac Notary Support (#5754)
* Add --timestamp to hardened XM builds and --timestamp=none to rest
2019-03-13 10:54:01 -05:00
Vincent Dondain 85b720246a
[msbuild][tests] Clarify FrameworkListTest failure message (#5689) 2019-03-05 13:54:03 -05:00
Michiel Sioen afbe2ca9ef [msbuild] In 'GenerateDebugSymbols', verify that the folder we're touching into exists (#5706)
- Previously, for `Device|Debug` when passing `--dsym=false` to the mtouch extra arguments you would get this [MSB3375 failure](https://gist.github.com/VincentDondain/dce853be2acbce16011adf43a200eb09#file-gistfile1-txt-L5600).
- We are now checking that the folder we're trying to touch into exists, preventing the build failure.
2019-03-05 11:49:19 -05:00
Chris Hamons 2df9e4cdd3
[mac][msbuild] Add MigrateToNewXMTFI to convert TFI to new Xamarin.Mac.NET (opt-in) (#5654)
- https://github.com/xamarin/xamarin-macios/issues/5480
- Related: https://github.com/NuGet/NuGet.Client/pull/2572

To allow nuget to target XM Full we need to have a unique TFI (TargetFrameworkIdentifier).

However, that's a really scary change to force, so let's opt-in for now. You can set

<MigrateToNewXMIdentifier>true</MigrateToNewXMIdentifier> in your project or

MigrateToNewXMIdentifier=true msbuild project.csproj

to try it out. We can convert the opt-in to an opt-out with sufficient validation \ releases.
2019-02-28 16:33:25 -06:00
Vincent Dondain f8d00ee167
[xm][msbuild] Fix full profile FrameworkList file (#5674)
* Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/801867
  System.Memory.dll not being copied anywhere when Roslyn package is referenced
  The issue was that the XM FrameworkList was shared for the 2 profiles and there are differences.
  The Full profile for instance doesn't have `System.Memory` and that causes some issues with Nuget package references.
* Updated tests to report issues against the XM Full and Mobile Framework lists
* Now using 2 separate XM FrameworkList files (updated makefile) since the list of assemblies is different and that's expected by the mono team.
2019-02-27 12:38:38 -05:00
Chris Hamons 5680a39c77
[xm] Support UseHardenendRuntime in code signing (#5536)
- Solves SDK portion of https://github.com/xamarin/xamarin-macios/issues/4288
2019-02-22 09:06:58 -06:00
Emanuel Fernandez Dell'Oca c4a1f42bec [msbuild] Fixes NativeExecutable MTouch output prop for VS (#5576)
Since the Output property was being set on each call to the MTouch task despite it changed or not VS was generating that file on Windows on each run, which breaks incremental builds. Now, we're setting it only if the executable file changed or was just created.

Bug 785284 - .dSym is not properly generated unless configuration is Release
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/785284
2019-02-18 09:11:21 -05:00
Rolf Bjarne Kvinge fa09467f8a
[msbuild] Add space to arguments when adding a newline at the end as well. (#5533)
Example (previous behavior):

    args.Add ("-a");
    args.AddLine ("-b")
    args.Add ("-c");

would result in:

    -a-b
    -c

which is obviously not correct.

New result:

    -a -b
    -c

which is much better.
2019-02-01 20:31:13 +01:00
Rolf Bjarne Kvinge 703058f99b
[msbuild] Use AddLine when adding --interpreter to mtouch arguments. (#5532)
So that it matches the rest if the arguments.
2019-02-01 20:21:08 +01:00
Ema 87c77db369 [msbuild] Fixes Microsoft.NET.Build.Extensions.Tasks.dll path
Replaces the hardcoded path to Microsoft.NET.Build.Extensions.Tasks.dll by the MicrosoftNETBuildExtensionsTasksAssembly property. The assembly is in a different location in dev16.

Also removed the old condition that only applied to VS 2015 and early builds of 2017 where the assembly did not exist.

Bug 778800 - Certain iOS projects are failing to build against dev16 seemingly due to a netstandard resolution issue
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/778800
2019-01-25 19:21:57 -03:00
Vincent Dondain 9d37f9583f
[msbuild/tests] Ensure our FrameworkList files have correct assemblies (#5367)
One mono bump (6f2ebedb74 (diff-e801bb766cbaad95b50b1487b865f971)) changed our `Xamarin.iOS-FrameworkList.xml.in` (and the tvOS and watchOS ones) and added 2 files

```
<File AssemblyName="System.Buffers" Version="4.0.99.0" />
<File AssemblyName="System.Memory" Version="4.0.99.0" />
```

Around the same time this change was made in the IDE: e355f65870/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/TargetFramework.cs (L260)
That means that VSMac, when creating a new cache file listing the assemblies, won’t scan the assemblies in those directories `/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS`.
This resulted in an incomplete cache file missing most assemblies leading to the IDE showing red checkmarks for known and installed assemblies.

Ideally the FrameworkList files we ship should have a list of all the assemblies with PublicKeyToken and friends (the framework shouldn't be lazy and expect the IDEs to generate that file for us).

This commit ships a test using the same logic as the IDE to populate the FrameworkList file. The test will report any missing assembly and print the xml element that should be added to the file.
E.g: `<File AssemblyName="FSharp.Core" Version="3.98.4.0" PublicKeyToken="b03f5f7f11d50a3a" ProcessorArchitecture="MSIL" />`
Then it's only a matter of copy/pasting that (:

Note: even though this is the msbuild tests for iOS land I'm also scanning the Xamarin.Mac files here for simplicity.

We also scan all assemblies in `/Facades`.

Discussed in slack but adding all the facades assemblies doesn't compromise the project in the IDE (e.g: we still can't add incorrect assemblies) and it's required for some NuGet conflict resolution.
See: ac8fd9e60a
2019-01-11 13:59:22 -05:00
Rolf Bjarne Kvinge 7b2a32c812
[msbuild] Fix APFS check if root file system isn't APFS. (#5361)
Fixes this:

    Errors and Failures:
    1) Test Error : Xamarin.iOS.Tasks.CodesignAppBundle("iPhone","Debug").CodesignAfterModifyingAppExtensionTest
       System.Exception : Could not determine whether / is APFS or not. 'df -t apfs /' returned 1 and said:
      at Xamarin.iOS.Tasks.TestBase.get_IsAPFS () [0x00051] in <c0cbc86394444f8e9cb85adb1eab6fea>:0
      at Xamarin.iOS.Tasks.TestBase.EnsureFilestampChange () [0x00001] in <c0cbc86394444f8e9cb85adb1eab6fea>:0
      at Xamarin.iOS.Tasks.CodesignAppBundle.CodesignAfterModifyingAppExtensionTest () [0x0007d] in <c0cbc86394444f8e9cb85adb1eab6fea>:0
      at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <96207d0baa204f48a53ad6be05f5ecba>:0
2019-01-09 16:33:40 +01:00
Emanuel Fernandez Dell'Oca 7e41ef7d3e Fixes spacing issues in MSBuild tasks (#5338) 2019-01-03 14:03:08 -05:00
Rolf Bjarne Kvinge 3bb1fc11a8
[msbuild] Sleep before and after touching files on non-APFS file systems. (#5298)
Hopefully fixes these tests:

    Xamarin.iOS.Tasks.TargetTests.RebuildLibrary_TouchBundleResource: Expected: not 2018-12-18 17:15:05.000
    But was: 2018-12-18 17:15:05.000

    Xamarin.iOS.Tasks.TargetTests.RebuildLibrary_TouchEmbeddedResource: Expected: not 2018-12-18 17:15:07.000
    But was: 2018-12-18 17:15:07.000

    Xamarin.iOS.Tasks.TargetTests.RebuildLibrary_TouchStoryboard: Expected: not 2018-12-18 17:15:09.000
    But was: 2018-12-18 17:15:09.000

Additionally change existing sleeping code to not sleep when running on APFS.
Should make test runs slightly faster.
2018-12-20 09:50:53 +01:00
Rolf Bjarne Kvinge f9ff8d8e07
[msbuild] Fix typo in assert message. (#5296) 2018-12-20 07:36:48 +01:00
Rolf Bjarne Kvinge 2b9d9fb667
[msbuild] Declare which frameworks XStaticArTest.framework and XStaticObjectTest.framework need. (#5297)
Fixes these test failure:

    Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").FrameworksEmbeddedProperly(True): #RunTarget-ErrorCount
        linker command failed with exit code 1 (use -v to see invocation)
        Native linking failed, undefined Objective-C class: MDLTransform. The symbol '_OBJC_CLASS_$_MDLTransform' could not be found in any of the libraries or frameworks linked with your application.
        Native linking failed. Please review the build log.
    Expected: 0
    But was: 3

    Xamarin.iOS.Tasks.NativeReferencesNoEmbedding("iPhone").ShouldNotUnnecessarilyRebuildFinalProject(True): #RunTarget-ErrorCount
        linker command failed with exit code 1 (use -v to see invocation)
        Native linking failed, undefined Objective-C class: MDLTransform. The symbol '_OBJC_CLASS_$_MDLTransform' could not be found in any of the libraries or frameworks linked with your application.
        Native linking failed. Please review the build log.
    Expected: 0
    But was: 3
2018-12-20 07:35:34 +01:00
Emanuel Fernandez Dell'Oca 2cc7fb1987 [msbuild] Fixes incremental build issues with frameworks from VS (#5249)
* [msbuild] Adds output property for unpacked resources

This output property will be used by VS to create/touch output files on Windows only for the unpacked resources and not for all the resources found.

Partial fix for bug 662636 - *.dylib libraries are signed during full rebuild, but not the second time
https://devdiv.visualstudio.com/DevDiv/_queries/edit/662636

* [msbuild] Adds output property with copied frameworks to MTouchTaskBase

This property is needed from VS to know Frameworks where changed as a result of the mtouch execution. The lack of this information was causing MSBuild to skip the CodesignFrameworks target (from Windows) on incremental builds if the frameworks were copied to the app bundle by mtouch.

Partial fix for bug 662636 - *.dylib libraries are signed during full rebuild, but not the second time
https://devdiv.visualstudio.com/DevDiv/_queries/edit/662636
2018-12-19 07:55:01 +01:00
Rolf Bjarne Kvinge 3704379ba5
[msbuild] Find source files in the Xamarin.MacDev repo as well to improve dependency tracking. (#5278)
This makes 'make' rebuild the msbuild assemblies when only something in the
Xamarin.MacDev repository changes.
2018-12-18 07:48:40 +01:00
Chris Hamons d7c2a45ca9
Add 'NoBindingEmbedding' style binding project support (#5167)
- Existing binding projects embed the native libraries within the assembly as managed resource
- This does not scale well and has performance implications
- This PR creates a new property, NoBindingEmbedding which when true processes the building and consumption of binding projects differently.
- Existing binding projects are not affected, they will continue as is
- I've written a full XM test suite and ported a subset to iOS. Since iOS only supports checked in projects, and I didn't want to make the existing situation worse by adding more, I only wrote tests that could use the existing test projects.
    -When we complete some form of msbuild testing reform, we'll revisit these tests.
- Remove two files in MyiOSFrameworkBinding that are not used (we use copies elsewhere)
- Remove unnecessary sleep and fix broken touch command
- Output failing test log to console instead of test output
    - VSfM does not handle thousands of lines of test failure message well
- Add ability to generate binding projects with LinkWith
2018-12-12 09:55:57 -05:00
Rolf Bjarne Kvinge f91e8fb811
Use a full path to xibuild. (#5140)
* Use a full path to xibuild.

Use a full path to xibuild everywhere, since it's easier than making sure PATH
is correct every time we want to invoke xibuild.

Also remove the xbuild-in-place script, it's not used anymore.

* Fix xibuild path lookup.

* [xammac_tests] Remove unneeded csproj changes.
2018-11-20 12:14:16 -05:00
Jeffrey Stedfast 530f848ac9 [msbuild] Fixed compilation of SceneKit assets in library projects (#5130)
The problem is that AppBundleDir never gets defined for library projects.

Luckily, _AppBundleName and AppBundleExtension are always defined and
all we need is the directory name (i.e. MyApp.app), so this will work
just fine.

Fixes issue #5129
2018-11-18 16:35:02 -05:00
Ankit Jain f865694f86 Move tests to use new tool xibuild and thus fix msbuild tests (#5128)
* xibuild: New wrapper tool to run msbuild or managed executables

MSBuild supports fallback paths for projects imported using
`$(MSBuildExtensionsPath)`, but these must be specified explicitly in
the app.config of the main executable. There was a PR to allow use of
properties for this in the app.config, but that was not accepted
upstream.

This is required for being able to:

1. build projects with msbuild against the in-tree XI/XM build output
2. and to run nunit tests against the same.

For this we introduce a new tool, `xibuild`, based on XA's `xabuild`.
This supports the fallback paths to be specified via the environment variable
`MSBuildExtensionsPathFallbackPathsOverride`[1].
It essentially operates in 3 modes:

1. `xibuild -c /path/to/foo.exe`
	Generates /path/to/foo.exe.config with the fallback paths inserted into that.

2. `xibuild -- /v:diag /path/to/project.csproj`
	Runs msbuild with the arguments after `--` with a custom app.config based on
	`MSBuild.dll.config`, with the fallback paths correctly inserted.
	This is in a temporary file and the original config file is not touched.

3. `xibuild -t -- /path/to/managed_tool.exe args`
	Generates `/path/to/managed_tool.exe.config` based on `MSBuild.dll.config` with
	the fallback paths inserted, and runs `managed_tool.exe` with the arguments.
	The default is to overwrite the config file.
	But there is also a switch to merge it with an existing config file.

--
1. Value of the environment variable $MSBuildExtensionsPathFallbackPathsOverride
is prepended to any existing list of search paths in `MSBuild.dll.config`, IOW,
it takes precedence. So, the order of lookup becomes:

  - Value of the property `$(MSBuildExtensionsPath)`
  - Value of the environment variable `$MSBuildExtensionsPathFallbackPathsOverride`
  - /Library/Frameworks/Mono.framework/External/xbuild on macOS

* Integrate use of `xibuild` with the tests

Update all uses of `msbuild` and invocations of tools like nunit that
might depend on using the in-tree builds to use `xibuild`.

* xibuild: Move help descriptions to OptionSet itself.
2018-11-16 14:24:35 -05:00
Jeffrey Stedfast 6ebf136073
[msbuild] Pass ProjectGuid and ProjectTypeGuids to Archive task (#5118)
This is part of https://devdiv.visualstudio.com/DevDiv/_workitems/edit/705977
2018-11-15 17:13:27 -05:00
Emanuel Fernandez Dell'Oca e840eb31d3 [msbuild] Removes CompileEntitlements target inputs (#5096)
Since we don't require projects to contain an Entitlement.plist file we cannot use that as input, because if that file does not exist the CompileEntitlements target will be skipped. This target runs the CompileEntitlements task that generates a new Entitlements file, and that file is required to deploy the app to a device because it contains the application-identifier entitlement.

Fixes #5094
2018-11-07 08:33:18 +01:00
Vincent Dondain f389c03970 [msbuild] Don't log notices as errors (#5067)
- Fixes #5065: [Xcode10.1]Could not get traitsetID for iPhone11,6 error while building with Xcode10.1 and new iOS device
  (https://github.com/xamarin/xamarin-macios/issues/5065).
- `actool` in Xcode 10.1 now outputs some `com.apple.actool.notices` (we might not have hit that before) and those make the task fail because we log them as errors (we shouldn't).

* Lower notice to LogMessage

Update other LogMessage to output "tool notice :"
2018-11-01 14:08:31 -04:00
Emanuel Fernandez Dell'Oca 2922becfd2 [msbuild] VS Incremental build fixes (#5054)
Most of these changes are needed from VS to make incremental builds work.

The problem here is VS runs MSBuild on Windows and remotes (most of) the task executions to the Mac. Since MSBuild is running on Windows the inputs and outputs are checked there, but the output files won't be created on Windows unless those are explicitly declared as output ITaskItems of a task. VS don't copy every file created on the Mac back to Windows because that will increase the build time unnecessarily.

For instance, the _GenerateFrameworkDebugSymbols target was using the Info.plist file created by the dsymutil tool as output, but that file was not declared as ITaskItem output of the DsymUtil task so VS didn't know that file should be created on Windows.

This doesn't mean every task should have an output property declaring ITaskItems, but if you're writing a target that will use certain files as output those files should be output of one of the tasks that target is running.

Partial fix for https://dev.azure.com/devdiv/DevDiv/_workitems/edit/710309.
2018-10-31 15:05:07 -04:00
Rolf Bjarne Kvinge c69c74b3d3
Clone files if possible whenever it makes sense. (#5049)
Cloning is faster when supported, and it also saves disk space.
2018-10-29 16:09:30 +01:00
Sebastien Pouliot eaa6435e89
[msbuild] Avoid an NRE in BtouchTask when an invalid extra argument is provided (#5041)
The task itself should not throw. An invalid argument is an error that
should (and is) reported by `btouch` itself (and the task picks it up).
This makes the error reporting much more useful and the way an exception
is reported, from Windows, is also confusing
```
MessagingRemoteException: An error occured on client Build4110732 while executing a reply for topic xvs/Build/4.11.0.732/execute-task/ClassLibrary1/6e85b94002fBTouch ArgumentNullException: Value cannot be null.
```

Unit tests added.

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/656983
2018-10-26 13:18:05 -04:00
Jeffrey Stedfast d836c8867d [msbuild] Always set IOSDebugOverWiFi to true for WatchOS apps/extensions (#5035)
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/712824
2018-10-24 20:11:17 -04:00
Sebastien Pouliot 99641c7fcd
[msbuild] Avoid possible NullReferenceException in ScnToolTaskBase. Fixes #4039 (#5006)
`EnvironmentVariables` can be null (not empty) and cause the NRE in the
attached test case.

It's not clear that the extra logic is needed if we were using `xcrun`.
There's an enhancement for this https://github.com/xamarin/xamarin-macios/issues/4634

reference: https://github.com/xamarin/xamarin-macios/issues/4039
2018-10-18 14:03:17 -04:00
Rolf Bjarne Kvinge 745c18cc73 Merge remote-tracking branch 'origin/master' into msbuild-port 2018-10-11 07:31:58 +02:00
Ankit Jain 73fbb53856 [msbuild] Enable nuget package conflict resolution (#4945)
Fixes https://github.com/mono/mono/issues/10602 .

From the issue:
```
We need to enable this to support the system assemblies conflict
resolution which we now rely on for any new packages to enhance
developers experience and get us out of dependency on specific package
versions.
```
2018-10-10 20:14:31 -04:00
Jo Shields 6f2ebedb74 Bump to mono:2018-06 (#4277)
* Bump to mono:2018-06

* Bump mono

* Updates compression to work with the public span

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Fixes pointer check logic in Deflater

* Bump mono

* Bump Mono

* [runtime] always use `mono_jit_set_aot_mode` (#4491)

`mono_jit_set_aot_only` is deprecated and accidentally broke with
https://github.com/mono/mono/pull/7887

This should fix device tests with `mono-2018-06`

* Testing with Zoltan's patch

* Include libmono-system-native on Xamarin.Mac

* Bump Mono

Commit list for mono/mono:

* mono/mono@7bcda192a0 Bump llvm to release_60/fc854b8ec5873d294b80afa3e6cf6a88c5c48886. (#9786). (#9804)
* mono/mono@23e95ec7ad Apply F# portable pdb debug fix for pinvokes & bump (#9797)
* mono/mono@295f6d32af [2018-06] [MacOS] On Mac, use the copyfile API to copy files (#9696)

Diff: 7d5f4b6136...7bcda192a0

* Revert 4bacab3d5c, it doesn't fix the ios aot problems.

* Bump mono

* [tests] Adjust the MT0137 test for mcs change in behavior.

Starting with mono 5.16 mcs will now add assembly references when the assembly
is only used in attributes (this was already the case for csc in both 5.14 and
5.16, so it seems to be a compatibility change).

Adjust the MT0137 test accordingly.

* [msbuild] Fix parsing of json parser errors to handle trailing periods in the error message.

Fixes this test:

    1) Test Failure : Xamarin.iOS.Tasks.Bug60536.TestACToolTaskCatchesJsonException
         ColumnNumber
      Expected: 2
      But was:  0

* Bump mono

* [builds] Install the old llvm binaries into the LLVM36 directory and make the 32 bit builds use that.

* Bump mono

* Bump mono

* [jenkins] Don't give VSTS a fake branch. (#4667)

Something in VSTS changed, and now fake branch names don't work anymore.

So instead use real branch names (and for pull requests I've created a
'pull-request' branch we can use).

* Assembly.LoadFile accepts only absolute path

* [linker] Add new Facade (System.Threading.Tasks.Extensions).

Fixes these MTouch test failures:

    1. Xamarin.Linker.SdkTest.iOS_Unified :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    2. Xamarin.Linker.SdkTest.tvOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

    3. Xamarin.Linker.SdkTest.watchOS :   Facades
      Expected:
      But was:  < "System.Threading.Tasks.Extensions" >

* [mono-sdks] Necessary changes to unify the LLVM provisioning for both iOS and Android. (#4732)

* Bump Mono

* [mtouch] add mixed-mode support (#4751)

* [mtouch] add --interp-mixed option

When enabling this option, mtouch will AOT compile `mscorlib.dll`.  At
runtime that means every method that wasn't AOT'd will be executed by
the runtime interpreter.

* [mtouch] Add support to --interpreter to list the assemblies to (not) interpret.

* [msbuild] Simplify interpreter code to use a single variable.

* Fix whitespace.

* [mtouch] Move mtouch-specific code to mtouch-specific file.

* [msbuild] An empty string is a valid value for 'Interpreter', so make it a non-required property.

* [mtouch] Add sanity check for aot-compiling interpreted assemblies.

* Bump Mono

* [linker] Updates SDKs facades list

* Bump mono

* [msbuild] Adds facades which might override default nuget version to framework list

The collision resolver task reads them from here https://github.com/dotnet/sdk/blob/master/src/Tasks/Common/ConflictResolution/FrameworkListReader.cs

* Bump to a VSfM version that can build XM Classic projects.
2018-10-10 11:02:28 -04:00
Xamarin Jenkins User dabd7720d0 [master] [msbuild] Implement support for faking the watchOS 4.3 SDK. Fixes #4810. (#4955)
* [msbuild] Implement support for faking the watchOS 4.3 SDK. Fixes #4810.

The App Store requires the arm64_32 architecture when building with Xcode 10.

Unfortunately we don't support arm64_32 quite yet, so we need to make the App
Store think watch extensions were built with Xcode 9.4 in order to pass
validation.

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

* [msbuild] Remove debug spew.
2018-10-09 13:27:04 -04:00
Rolf Bjarne Kvinge bc07227ffa [msbuild] Fix SceneKit asset compilation. Fixes #3766. (#4851) (#4948)
* [msbuild] Fix SceneKit asset compilation. Fixes #3766.

It seems SceneKit assets must be compiled into a directory whose parent
directory is named like the app.

In addition the `--resource-folder-path` argument is required.

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

* [msbuild] Use AppBundlePath to get correct .app[ex] variant.

* [msbuild] Fix XM builds.

* [msbuild] Use AppBundleDir instead of AppBundlePath.
2018-10-09 09:26:39 -04:00
Chris Hamons a50180d20b [macos][msbuild] Cache actool results like XI (#4892) (#4915)
- https://github.com/xamarin/xamarin-macios/issues/3584
- Prevents a 2 second pause on every single launch
- Test added but commented out due to msbuild build machine issue :(
2018-10-04 09:44:22 -04:00
Chris Hamons 8325b083dc
[macos][msbuild] Cache actool results like XI (#4892)
- https://github.com/xamarin/xamarin-macios/issues/3584
- Prevents a 2 second pause on every single launch
- Test added but commented out due to msbuild build machine issue :(
2018-10-02 12:53:19 -05:00
Rolf Bjarne Kvinge 8077b509d0
[msbuild] Implement support for faking the watchOS 4.3 SDK. Fixes #4810. (#4873)
The App Store requires the arm64_32 architecture when building with Xcode 10.

Unfortunately we don't support arm64_32 quite yet, so we need to make the App
Store think watch extensions were built with Xcode 9.4 in order to pass
validation.

Fixes https://github.com/xamarin/xamarin-macios/issues/4810.
2018-09-26 13:02:38 +02:00
Rolf Bjarne Kvinge 0d65ed9357
[msbuild] Fix SceneKit asset compilation. Fixes #3766. (#4851)
* [msbuild] Fix SceneKit asset compilation. Fixes #3766.

It seems SceneKit assets must be compiled into a directory whose parent
directory is named like the app.

In addition the `--resource-folder-path` argument is required.

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

* [msbuild] Use AppBundlePath to get correct .app[ex] variant.

* [msbuild] Fix XM builds.

* [msbuild] Use AppBundleDir instead of AppBundlePath.
2018-09-24 18:42:04 +02:00
Vincent Dondain 2174ec41a2 Merge branch 'xcode10' 2018-09-18 14:12:39 -04:00
Vincent Dondain 91a52a17f5 Merge branch 'xcode10' into d15-9-merge-xcode10 2018-09-14 12:53:17 -04:00
Rolf Bjarne Kvinge ab50c94add
[XM] Only use bgen, not bmac[-mobile-mono]. Fixes #3675. (#4785)
We don't need to use a custom mono to run the generator anymore, so stop doing
it.

Unfortunately we can't remove the custom mono, since we're now using it for
another purpose (AOT-compiling XM apps).

Fixes https://github.com/xamarin/xamarin-macios/issues/3675.
2018-09-13 15:27:34 +02:00
Sebastien Pouliot f9cc0ec6d6
[msbuild] Set 'CopyNuGetImplementations' to true for app extensions. Fixes #4235 and #4237. (#4512) (#4648) (#4773)
In Xamarin.iOS.Common.targets, just before the _CompileToNative target, we
modify the mtouch references to ensure that we get the lib assemblies for
nugets, and not the ref references:

9e31d07ecc/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets (L784-L791)

This logic removes nuget references, and then re-adds any copy-local dll
references.

This works fine in executable projects, but not in library projects (aka
extensions), because nugets aren't copied for library projects:

cf4b0a12cf/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets (L86)

So we need to set the CopyNuGetImplementations variable to 'true' for our
library projects.

Fixes https://github.com/xamarin/xamarin-macios/issues/4235.
Fixes https://github.com/xamarin/xamarin-macios/issues/4237.

* [tests] Redirect MSBuildExtensionsPath to MSBuildExtensionsPathFallbackPathsOverride when running msbuild for package reference tests.

This fixes a problem where nuget restore would fail for projects with
PackageReferences, because a variable would be empty and msbould would try to
write to /:

    nuget restore ../MyAppWithPackageReference/MyAppWithPackageReference.csproj
    MSBuild auto-detection: using msbuild version '15.0' from '/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin/'.
    Restoring packages for /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/msbuild/tests/MyAppWithPackageReference/MyAppWithPackageReference.csproj...
    Committing restore...
    Generating MSBuild file /MyAppWithPackageReference.csproj.nuget.g.props.
    Path / is a directory

This will become unnecessary when PR #4111 is merged.

* Add Xamarin.Mac test showing that fix is not needed (?!?)

* Add AppExtension test with packagereference

* Make extension actually have json code generated

* Fix ProjectTypeGuids of checked in extension projects, as they were not openable in VSfM

* XM extension test now correctly fails

* Now that we have a failing test, fix XM same as rest of platforms

* Disable XM tests due to msbuild redirect sadness

* Disable iOS tests as well due to #4110

* Disable iOS tests by using the Ignore attribute.

Disable tests by using the Ignore attribute, because just commenting out the
TestCase attributes makes the test fail:

    1) NotRunnable : Xamarin.iOS.Tasks.ProjectReferenceTests.BasicTest
       No suitable constructor was found
2018-09-10 08:29:23 -04:00
Sebastien Pouliot ce207d263f
Order additional arguments after response file (#4607) (#4612) (#4769)
- https://github.com/xamarin/xamarin-macios/issues/4594
- There were being adding _before_ the response file which meant options that were overriding defaults were not being honored
2018-09-07 08:52:38 -04:00
Sebastien Pouliot f428a8b8fb
Allow Xamarin.Mac.FSharp.targets top find Microsoft.FSharp.targets on Windows (#4341) (#4745) 2018-09-05 14:12:58 -04:00
Sebastien Pouliot 47fa99d425
[msbuild] pass --target-platform=<platform> to copySceneKitAssets (#4630) (#4660) (#4743)
The copySceneKitAssets program has a poor command-line options
parser that cannot handle --target-platform and its argument
being 2 separate arguments, they have to be combined with an '='.

Fixes https://github.com/xamarin/xamarin-macios/issues/4467
2018-09-04 13:50:38 -04:00
Don Syme af4f0f9a70 Allow Xamarin.Mac.FSharp.targets top find Microsoft.FSharp.targets on Windows (#4341) 2018-09-04 08:35:28 -04:00
Vincent Dondain 6cfc8b5a60
[msbuild] Change MtouchHttpClientHandler default (#4172)
If the Http Client value isn't set in the csproj, we should default to `NSUrlSessionHandler` which is also what the Xamarin.iOS Analysis rules try to enforce.
2018-08-29 15:16:19 -04:00
Rolf Bjarne Kvinge 5a2a10d2a0 [msbuild] Set 'CopyNuGetImplementations' to true for app extensions. Fixes #4235 and #4237. (#4512) (#4648)
* [msbuild] Set 'CopyNuGetImplementations' to true for app extensions. Fixes #4235 and #4237.

In Xamarin.iOS.Common.targets, just before the _CompileToNative target, we
modify the mtouch references to ensure that we get the lib assemblies for
nugets, and not the ref references:

9e31d07ecc/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets (L784-L791)

This logic removes nuget references, and then re-adds any copy-local dll
references.

This works fine in executable projects, but not in library projects (aka
extensions), because nugets aren't copied for library projects:

cf4b0a12cf/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets (L86)

So we need to set the CopyNuGetImplementations variable to 'true' for our
library projects.

Fixes https://github.com/xamarin/xamarin-macios/issues/4235.
Fixes https://github.com/xamarin/xamarin-macios/issues/4237.

* [tests] Redirect MSBuildExtensionsPath to MSBuildExtensionsPathFallbackPathsOverride when running msbuild for package reference tests.

This fixes a problem where nuget restore would fail for projects with
PackageReferences, because a variable would be empty and msbould would try to
write to /:

    nuget restore ../MyAppWithPackageReference/MyAppWithPackageReference.csproj
    MSBuild auto-detection: using msbuild version '15.0' from '/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin/'.
    Restoring packages for /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/msbuild/tests/MyAppWithPackageReference/MyAppWithPackageReference.csproj...
    Committing restore...
    Generating MSBuild file /MyAppWithPackageReference.csproj.nuget.g.props.
    Path / is a directory

This will become unnecessary when PR #4111 is merged.

* Add Xamarin.Mac test showing that fix is not needed (?!?)

* Add AppExtension test with packagereference

* Make extension actually have json code generated

* Fix ProjectTypeGuids of checked in extension projects, as they were not openable in VSfM

* XM extension test now correctly fails

* Now that we have a failing test, fix XM same as rest of platforms

* Disable XM tests due to msbuild redirect sadness

* Disable iOS tests as well due to #4110

* Disable iOS tests by using the Ignore attribute.

Disable tests by using the Ignore attribute, because just commenting out the
TestCase attributes makes the test fail:

    1) NotRunnable : Xamarin.iOS.Tasks.ProjectReferenceTests.BasicTest
       No suitable constructor was found
2018-08-23 10:04:39 -04:00
Sebastien Pouliot 5d782041d4
[msbuild] pass --target-platform=<platform> to copySceneKitAssets (#4630) (#4660)
The copySceneKitAssets program has a poor command-line options
parser that cannot handle --target-platform and its argument
being 2 separate arguments, they have to be combined with an '='.

Fixes https://github.com/xamarin/xamarin-macios/issues/4467
2018-08-21 13:24:29 -04:00
Jeffrey Stedfast 2d25af6412 [msbuild] pass --target-platform=<platform> to copySceneKitAssets (#4630)
The copySceneKitAssets program has a poor command-line options
parser that cannot handle --target-platform and its argument
being 2 separate arguments, they have to be combined with an '='.

Fixes https://github.com/xamarin/xamarin-macios/issues/4467
2018-08-20 08:40:11 -04:00
Rolf Bjarne Kvinge a619226b36
[msbuild] Set 'CopyNuGetImplementations' to true for app extensions. Fixes #4235 and #4237. (#4512)
* [msbuild] Set 'CopyNuGetImplementations' to true for app extensions. Fixes #4235 and #4237.

In Xamarin.iOS.Common.targets, just before the _CompileToNative target, we
modify the mtouch references to ensure that we get the lib assemblies for
nugets, and not the ref references:

9e31d07ecc/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets (L784-L791)

This logic removes nuget references, and then re-adds any copy-local dll
references.

This works fine in executable projects, but not in library projects (aka
extensions), because nugets aren't copied for library projects:

cf4b0a12cf/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets (L86)

So we need to set the CopyNuGetImplementations variable to 'true' for our
library projects.

Fixes https://github.com/xamarin/xamarin-macios/issues/4235.
Fixes https://github.com/xamarin/xamarin-macios/issues/4237.

* [tests] Redirect MSBuildExtensionsPath to MSBuildExtensionsPathFallbackPathsOverride when running msbuild for package reference tests.

This fixes a problem where nuget restore would fail for projects with
PackageReferences, because a variable would be empty and msbould would try to
write to /:

    nuget restore ../MyAppWithPackageReference/MyAppWithPackageReference.csproj
    MSBuild auto-detection: using msbuild version '15.0' from '/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin/'.
    Restoring packages for /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/msbuild/tests/MyAppWithPackageReference/MyAppWithPackageReference.csproj...
    Committing restore...
    Generating MSBuild file /MyAppWithPackageReference.csproj.nuget.g.props.
    Path / is a directory

This will become unnecessary when PR #4111 is merged.

* Add Xamarin.Mac test showing that fix is not needed (?!?)

* Add AppExtension test with packagereference

* Make extension actually have json code generated

* Fix ProjectTypeGuids of checked in extension projects, as they were not openable in VSfM

* XM extension test now correctly fails

* Now that we have a failing test, fix XM same as rest of platforms

* Disable XM tests due to msbuild redirect sadness

* Disable iOS tests as well due to #4110

* Disable iOS tests by using the Ignore attribute.

Disable tests by using the Ignore attribute, because just commenting out the
TestCase attributes makes the test fail:

    1) NotRunnable : Xamarin.iOS.Tasks.ProjectReferenceTests.BasicTest
       No suitable constructor was found
2018-08-20 13:43:48 +02:00
Rolf Bjarne Kvinge da436c479b [msbuild] Exclude some code in Metal tasks when building the tests.
Exclude some code in Metal tasks when building the tests to avoid the
significant complexity it would be to add the required source files to the
mtouch test project.
2018-08-20 12:59:55 +02:00
Sebastien Pouliot b5ef7b134b
Merge branch 'xcode10' into xcode10-rebase-15.8 2018-08-17 14:53:03 -04:00
Vincent Dondain c5169120bf
[msbuild] Update 'metal' binary path for Xcode 10 (#4601)
- Fixes #4576: [xcode10] 'Metal Game' fails to build. (https://github.com/xamarin/xamarin-macios/issues/4576)

In Xcode 10 Apple moved the "metal" binary from `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/usr/bin/metal` to `/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metal`.
2018-08-17 10:24:02 -04:00
Chris Hamons 1db19858ef Order additional arguments after response file (#4607) (#4612)
- https://github.com/xamarin/xamarin-macios/issues/4594
- There were being adding _before_ the response file which meant options that were overriding defaults were not being honored
2018-08-14 08:57:29 -04:00
Vincent Dondain eec95e881c Merge branch 'd15-8' into xcode10-rebase-15.8 2018-08-13 21:04:56 -04:00
Chris Hamons ecfc5ce917
Order additional arguments after response file (#4607)
- https://github.com/xamarin/xamarin-macios/issues/4594
- There were being adding _before_ the response file which meant options that were overriding defaults were not being honored
2018-08-13 13:09:31 -05:00
Rolf Bjarne Kvinge 42645d52b0 [tests][msbuild] Seems like we need to copy System.Reflection.Metadata.dll locally, since the MSBuild dlls need it. 2018-07-31 11:48:15 +02:00
Jeffrey Stedfast 415d55dd2d [msbuild] Make PropertyListEditor.Value a property like it should be (#4522) 2018-07-30 19:35:42 -04:00
Sebastien Pouliot 6ba08239a7
Bump mono to fix (2nd part) watchos calling convention (#4514) 2018-07-27 08:27:09 -04:00
Rolf Bjarne Kvinge 516aab9143 Merge remote-tracking branch 'origin/master' into msbuild-port 2018-07-27 09:43:14 +02:00
Jeffrey Stedfast 5e5e5382eb [msbuild] Xcode10 changed the copySceneKitAssets command-line arguments (#4469) (#4499)
Fixes https://github.com/xamarin/xamarin-macios/issues/4467
2018-07-25 08:23:29 -04:00
Rolf Bjarne Kvinge 373c313a3e [msbuild] Don't put gcc/linker flags in the response file, since Mono.Options doesn't support escaping quotes. Fixes vsts#649776. (#4495) (#4498)
Mono.Options doesn't (yet) support escaped quotes when parsing response files,
which becomes a problem because escaped quotes are necessary when passing
paths with spaces as gcc/linker flags.

So don't write gcc/linker flags in the response file, and instead pass them as
normal command line arguments, and to be on the safe side, do the same thing
for all extra arguments passed to mmp/mtouch.

Also add tests.

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/649776.
2018-07-24 22:22:02 -04:00
Jeffrey Stedfast 21936948bb [msbuild] Xcode10 changed the copySceneKitAssets command-line arguments (#4469)
Fixes https://github.com/xamarin/xamarin-macios/issues/4467
2018-07-24 14:05:07 -04:00
Rolf Bjarne Kvinge 26b500ab27
[msbuild] Don't put gcc/linker flags in the response file, since Mono.Options doesn't support escaping quotes. Fixes vsts#649776. (#4495)
Mono.Options doesn't (yet) support escaped quotes when parsing response files,
which becomes a problem because escaped quotes are necessary when passing
paths with spaces as gcc/linker flags.

So don't write gcc/linker flags in the response file, and instead pass them as
normal command line arguments, and to be on the safe side, do the same thing
for all extra arguments passed to mmp/mtouch.

Also add tests.

Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/649776.
2018-07-24 19:49:33 +02:00
Rolf Bjarne Kvinge b3b51d4359
Merge pull request #4224 from rolfbjarne/xcode10-jenkinsfile
Cherry-pick changes from master to implement support for building on internal Jenkins.
2018-06-14 06:07:30 -07:00
Rolf Bjarne Kvinge e11c0019b9 [msbuild] Ignore tests that run into an Apple regression. 2018-06-14 11:14:33 +02:00
Sebastien Pouliot bbbea580a3
[msbuild] Fix detecting already signed executables. (#3743) (#4231)
The MSBuild tasks will codesign an executable if the executable's timestamp is
later than `_CodeSignature/CodeResources`'s timestamp (or if
`_CodeSignature/CodeResources` doesn't exist).

Unfortunately, the codesign executable modifies both of those files, and the
executable last. This means that even just after running codesign, the
executable's timestamp might be later than `_CodeSignature/CodeResources`'s
timestamp (due to HFS+'s one-second timestamp resolution, this might happen
all within the same second, which means that this is a random issue: the
problem only occurs if the executable was modified at least a second later
than `_CodeSignature/CodeResources`.)

So make sure to touch `_CodeSignature/CodeResources` after running codesign,
so that the next time a build occurs (with no modifications), we don't resign
needlessly.

Fixes this (random) test failure when running the MSBuild tests:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications
         #1: ../MySingleView/bin/iPhoneSimulator/Debug/MySingleView.app/MySingleView
      Expected: 2017-11-30 10:04:20.000
      But was:  2017-11-30 10:04:22.000

Fixes https://github.com/xamarin/maccore/issues/592.
2018-06-12 15:55:57 -04:00
Sebastien Pouliot 2d6ce7459d
Bump to use Xcode 10 beta 1 (#4179)
* Bump to use Xcode 10 beta 1

* Update Versions.plist

* Add a dependency on Xcode 9.4.

* [msbuild] Fix build with Xcode 10 beta 1. (#4182)

Many years ago (in Xcode 7 according to code comment)
Developer/Platforms/iPhoneOS.platform/Developer/usr disappeared, and we coped
by looking at Developer/usr instead (and also the subsequent code to locate
the bin directory was based on the location of the usr directory).

Developer/Platforms/iPhoneOS.platform/Developer/usr reappeared in Xcode 10
beta 1, but it seems useless (for one it doesn't contain a bin directory), so
in order to try to keep things sane don't look for this directory in Xcode 10
and instead go directly for Developer/usr (which is what we've been using as
the usr directory for years anyway).

Fixes this problem when building apps with Xcode 10 beta 1:

      /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(626,3): error : Could not locate SDK bin directory [/Users/rolf/Projects/TestApp/test-app.csproj]

* [runtime] Build 32-bit mac executables using Xcode 9.4.

* [mtouch] Work around broken tvOS headers in Xcode 10 beta 1.

* [mtouch] Work around build problem with Apple's simd headers in Objective-C++ mode.

* Use version-agnostic paths to sdk directories.

* [tests][xtro] Add todo files (from unclassified) and adjust ignore files to avoid errors

* [macos][security] Re-enable SSL[Get|Set]AlpnProtocols. Fixes #4001 (#4022)

* [macos][security] Re-enable SSL[Get}Set]AlpnProtocols. Fixes #4001

This was fixed in macOS 10.13.4

https://github.com/xamarin/xamarin-macios/issues/4001

* [tests][monotouch-tests] Disable a few test cases (one crasher, other failures). Causes to be verified later

* [xharness] Fix permission dialog suppression in Xcode 10.

* [xharness] Ignore 32-bit macOS tests by default.

* [tests] Execute mmp regression tests with Xcode 9.4 since many of them are 32-bit and needs porting to 64-bit.

* [mmptest] Ignore 32-bit XM tests if we don't have a 32-bit-capable Xcode.

* [registrar] Add workaround for broken headers in Xcode 10 beta 1 (radar 40824697).

* [mtouch] Restrict another workaround for an Xcode 10 beta 1 bug to a specific Xcode version to remove it asap.

* [tests] Fix some protocol changes (public or not) find by introspection tests

* [tests][intro] Fix DefaultCtorAllowed failures

* [Intents] Obsolete several Intents classes in watchOS.

Several existing Intents classes have been marked as unavailable in watchOS in
the headers in Xcode 10 beta 1, and corresponding tests are now failing.

So obsolete the managed wrapper types, and fix tests accordingly.

* Fix xtro wrt previous Ietents/intro changes

* [tests] Minor adjustments to mtouch tests to work with Xcode 10.

* [msbuild] Update tests to cope with additional files produced by the Core ML compiler.

* [msbuild] Xcode 10 doesn't support building watchOS 1 apps, so show a clear error message explaining it.

Also update tests accordingly.

* [coreimage] Stub new filters and exclude ?removed? ones from tests

* Update GameplayKit and SpriteKit NSSecureCoding _upgrade_ and fix other non-public cases (in tests)

* [tests] Ignore some GameKit selectors that don't respond anymore (but seems to be available, at least in header files)

* [tests] Fix intro 32bits testing for filters resutls

* [msbuild] Slightly change error message to be better English.
2018-06-08 18:45:24 -07:00
Rolf Bjarne Kvinge 1ea012df41 [msbuild] Fix build with Xcode 10 beta 1. (#4182) (#4187)
Many years ago (in Xcode 7 according to code comment)
Developer/Platforms/iPhoneOS.platform/Developer/usr disappeared, and we coped
by looking at Developer/usr instead (and also the subsequent code to locate
the bin directory was based on the location of the usr directory).

Developer/Platforms/iPhoneOS.platform/Developer/usr reappeared in Xcode 10
beta 1, but it seems useless (for one it doesn't contain a bin directory), so
in order to try to keep things sane don't look for this directory in Xcode 10
and instead go directly for Developer/usr (which is what we've been using as
the usr directory for years anyway).

Fixes this problem when building apps with Xcode 10 beta 1:

      /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(626,3): error : Could not locate SDK bin directory [/Users/rolf/Projects/TestApp/test-app.csproj]
2018-06-05 16:16:51 -04:00
Rolf Bjarne Kvinge 10bf145871
[msbuild] Fix build with Xcode 10 beta 1. (#4182)
Many years ago (in Xcode 7 according to code comment)
Developer/Platforms/iPhoneOS.platform/Developer/usr disappeared, and we coped
by looking at Developer/usr instead (and also the subsequent code to locate
the bin directory was based on the location of the usr directory).

Developer/Platforms/iPhoneOS.platform/Developer/usr reappeared in Xcode 10
beta 1, but it seems useless (for one it doesn't contain a bin directory), so
in order to try to keep things sane don't look for this directory in Xcode 10
and instead go directly for Developer/usr (which is what we've been using as
the usr directory for years anyway).

Fixes this problem when building apps with Xcode 10 beta 1:

      /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(626,3): error : Could not locate SDK bin directory [/Users/rolf/Projects/TestApp/test-app.csproj]
2018-06-05 13:48:25 -04:00
Jeffrey Stedfast 6a3481db52 [msbuild] Log the name of the ibtool/actool log file if we cannot parse it (#4115)
Improves diagnostics for https://github.com/xamarin/xamarin-macios/issues/4096
2018-05-23 17:45:57 -04:00
Ankit 16e512af5d Revert "[msbuild] Add forward compatibility with symlinks support (#648)"
This can be reverted as we have now moved to msbuild assemblies, and
they already have this property.

This reverts commit d45f52f1c1.
2018-05-22 14:19:39 -04:00
Ankit 526f009e64 [tests] Fix Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject
msbuild has the path in it's original form (with windows slashes).

```
 Test Failure : Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject
     #3
  String lengths are both 42. Strings differ at index 3.
  Expected: "bin/iPhoneSimulator/Debug/MySingleView.app"
  But was:  "bin\\iPhoneSimulator\\Debug\\MySingleView.app"
  --------------^

at Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject () [0x00054] in /Users/ankit/dev/xamarin-macios/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs:394
```
2018-05-22 14:19:39 -04:00
Ankit 9e53fd5345 [tests] Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll
msbuild just copies the output assembly from obj to bin. So, the test
needs to `touch` the file in `obj` to trigger a rebuild.
2018-05-22 13:40:22 -04:00
Ankit b883c4fe42 [tests] Don't use WriteLine in TestHelpers.Loggers as msbuild adds that
.. itself.
2018-05-22 13:40:22 -04:00
Ankit 18f7168845 [tests] Fix DetectAppManifest_ExecutableProject_NoPList
`ProjectInstance.GetPropertyValue` returns empty string if the property
doesn't exist.

https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.execution.projectinstance.getpropertyvalue?view=netframework-4.7.2#Microsoft_Build_Execution_ProjectInstance_GetPropertyValue_System_String_
2018-05-22 13:40:21 -04:00
Ankit a5670f2707 [msbuild] Port the tasks and tests to use new msbuild API
Mono's msbuild does not have implementation assemblies for the older
APIs (think `Microsoft.Build.Engine`), and so as part of the port to
msbuild we switch over to using the newer APIs.

With this commit, we are buildable again (with lots of test failures!).
2018-05-22 13:40:12 -04:00
Ankit 256035e11d [msbuild] Update xbuild assembly references to msbuild ones
.. and switch from v4.0 to the new .Core assemblies.
2018-05-22 13:26:55 -04:00
Ankit c7b051436f [msbuild] Replace all invocations of xbuild with msbuild
- And map xbuild properties to msbuild ones for fallback paths

`XBUILD_FRAMEWORK_FOLDERS_PATH -> TargetFrameworkFallbackSearchPaths`

`MSBuildExtensionsPath -> MSBuildExtensionsPathFallbackPathsOverride`

Note:
Earlier with xbuild, the order of lookup for (example)
`MSBuildExtensionsPath` was:

	1. The value of $(MSBuildExtensionsPath), which we were setting to
	the in-tree path

	2. /Library/Frameworks/Mono.framework/External/xbuild on osx

	3. $prefix/lib/mono/xbuild (default location)

And with the above changes, it will be:

	1. The value of $(MSBuildExtensionsPath), which we are no longer
	setting, so the default path : $prefix/lib/mono/xbuild

	2. The in-tree path, via $(MSBuildExtensionsPathFallbackPathsOverride)

	3. /Library/Frameworks/Mono.framework/External/xbuild on osx

Since, XI/XM targets are used via fallback path
`/Library/Frameworks/Mono.framework/External/xbuild`, the default
location doesn't matter. And the order of the remaining two remains the
same.

The same thing applies to the target frameworks also.
2018-05-22 13:24:29 -04:00
Chris Hamons 1e6851ec67
[msbuild] Unbreak netstd2 project msbuild support (#4109)
- https://github.com/xamarin/xamarin-macios/issues/4067
- Broken by 371a1d54e7
- The refactor into Xamarin.Mac.TargetFrameworkFix.targets was incorrect, and the ItemGroup needed
to be run after GetReferenceAssemblyPaths, not after FixDesignTimeFacades.
- This would have been caught by existing tests, but they were not enabled due to msbuild redirect issue.
2018-05-22 10:39:59 -04:00
Emanuel 0416ea042a [xvs-xm-bindings] Adds IsMacEnabled property to skip targets from VS when not connected to a Mac 2018-05-11 21:11:36 -03:00
Emanuel Fernandez Dell'Oca 63985c7f89 Copy Xamarin.Mac.ObjCBinding.CSharp.props to output dir
This is needed from VS because we grab all the files from the output directory to generate the msbuild.zip that contains all the targets and props
2018-05-11 21:11:36 -03:00
Jeffrey Stedfast c00654af82 [msbuild] Updated MetalTaskBase to use the new -m{os}-version-min argument (#4049)
Fixes issue #4019
2018-05-10 08:57:33 -04:00
Bernhard Urban 394117885c
[runtime] add support for mono runtime interpreter (#3058)
* [runtime] build interp-, icalltable- and ilgen libraries so they can be consumed in interpreter configuration

* [mtouch] add --interpreter configuration support

* [xharness] Add support for removing defines from cloned project files.

* [xharness] Run monotouch-test, mscorlib and mini tests with the interpreter too.

They're ignored for now, which means we won't run them on the bots.

* [mtouch] We're using dlsym when using the interpreter.

* [xharness] enable mini regression tests with interpreter on CI
2018-05-04 23:59:31 +02:00
Sebastien Pouliot 9208e9a0a4 Add xcode9.4 support into 15.7
The PR is not final and cannot be merged until the final Xcode 9.4
release from Apple is available.

Since there's no macOS specific changes (at least up to beta 2) we can
directly merge into the _normal_ milestone branch and avoid having
separate branches to maintain for XI and XM (until 15.8).
2018-05-03 13:55:11 -04:00
Vincent Dondain bb98da4a47
[msbuild/mac] Skip reference assemblies passed to mmp (#3991)
- Similar to issue #3199: Could not AOT the assembly System.Runtime.CompilerServices.Unsafe.dll (MT3001)
  (https://github.com/xamarin/xamarin-macios/issues/3199)
- Test case: https://www.dropbox.com/s/49jxl8iftmlymes/Issue3199Test3.zip?dl=0

Problem
=======

Given a Nuget Package added via the "package reference" mechanism and the said package having netstandard `lib` **and** `ref` folders;
`mmp`, if given `--aot:all` was getting reference assemblies and couldn't AOT them as those assemblies are only facades.

Solution
========

Skipping the assemblies that have `/ref/` in their path seems like the simplest and yet most functional solution to the problem.

As it turn out, there is some logic already in place that copies the `lib` assemblies to the destination folder. It seems equivalent to marking them as "Local Copy".
What this does is that it makes those assemblies available to msbuild via `@(ReferenceCopyLocalPaths)`. This gives us the opportunity to safely remove the `ref` assemblies from `@(ReferencePath)`.

*Note: `mmp` is getting the assemblies to reference via a combination of `@(ReferencePath)` and `@(ReferenceCopyLocalPaths)`.*
2018-04-27 16:20:35 -04:00
Bernhard Urban 643f1fbc03 [runtime] integrate mono 2018-02 (#3402)
* Bump mono to 2017-12

Commit list for mono/mono:

* mono/mono@4116105b8b [monodroid] Build linker-analyzer tool for monodroid
* mono/mono@34634352e1 [interp] Fix build when disabled (2)
* mono/mono@4b62c55e7d [runtime] Fixes issue when compiling with -no_weak_imports
* mono/mono@9a2543e8c0 Merge pull request #6275 from vargaz/2017-12-6191
* mono/mono@a68cfd2ffa Merge branch '2017-12' into 2017-12-6191
* mono/mono@84f05e8817 [interp] disable weak-fields.exe (#6191)
* mono/mono@ea6f8ab201 [aot] Fix aot+llvm after the weak field changes. (#6248)
* mono/mono@17f4b4286f [threads] Fix leak of gchandle to MonoInternalThread
* mono/mono@4f130913c6 [mini] isalnum() respects encoding in python3, we only want to have ASCII chars (#6199) (#6265)
* mono/mono@dd1faf6f54 [android] Android NDK does not contain API level/platform 12
* mono/mono@febbfd1e3e [interp] Fix build when disabled (#6224)
* mono/mono@0c5a524e50 [tests] Disable weak-fields.exe on FullAOT as well
* mono/mono@ec4a957151 Bump version to 5.10 (#6157)
* mono/mono@58618dea1e [tests] Disable weak-fields.exe on ARM
* mono/mono@a21fb19fc7 [mcs] Don't emit tuple names for a private types
* mono/mono@db05a2523c [llvm] Update the llvm backend to work with the 2017-12-01-31d7f39423874d52922c06484f2c2af216844b4d branch of the mono llvm fork. (#6143)
* mono/mono@2bab8fa49e [Profiler] Fix parsing bug when `jit` is enabled
* mono/mono@5bdaef7e5f [runtime] Add support for weak fields. (#5972)
* mono/mono@d107f0852c [jit] Fix the DISABLE_JIT build. (#6152)
* mono/mono@e2e34c157c [linker-analyzer] Fix error reporting
* mono/mono@0ae98538f6 Merge pull request #6148 from alexrp/profiler-stress-msbiology
* mono/mono@f714138216 [acceptance-tests] Disable the msbiology test completely.
* mono/mono@ce96441a10 [mem access] don't do regular store if it's already handled by the unaligned case
* mono/mono@465e2036d3 [w32handle] Don't enter GC SAFE around calls to w32handle_wait_{one,multiple} (#6132)
* mono/mono@f079d5f961 [interp] move interp functions into a callback
* mono/mono@13d221bf40 [mini] Add missing try holes
* mono/mono@f408d2c4c4 [log] Rework MONO_TRACE_* to allow for nested io-layer masks (process, file, handle, etc.) (#6138)
* mono/mono@c12b749434 Merge pull request #6134 from alexrp/master
* mono/mono@225071a2a5 [llvm] Fix the build. (#6142)
* mono/mono@c8bf8c287a     [runtime] Replace the C and perl versions of the genmdesc tool with a python version. (#6140)
* mono/mono@3635db23fc Cleanup unused MONO_DISABLE_SHM env var (#6141)
* mono/mono@9c2c689a61 Mini h cleanup (#6072)
* mono/mono@dcbc55c615 [msvc] Update csproj files (#6137)
* mono/mono@73c6a2ee50 Merge pull request #6135 from YuriyGS/DataGridViewCell-Border
* mono/mono@26de079c89 [profiler] Correctly encode counter type/unit/variance values.
* mono/mono@be6c2af639 Additional cell paddings in TextBoxCell:  - 1 pixel for right and bottom to compensate cells CellBounds overlapping;  - one more pixel for top, right and bottom to have one pixel gap between text and border. Left border had a good gap already (why?). No call DrawText for cell if there is no rectangle at all.
* mono/mono@384a163cfa Drawing row & column divider and take it into account for drawing borders. Implemented paint for all missing border styles.
* mono/mono@0c873d207a AdjustCellBorderStyle - implemented edge/non-edge header/non-header row and column border styles fixed. Fixed singleVerticalBorderAdded and singleHorizontalBorderAdded flags for the AdjustCellBorderStyle method call.
* mono/mono@2bd75f83ea Outset and SingleHorizontal border styles fixed
* mono/mono@0239710580 [profiler] Ensure the profilers behave sensibly when loaded during AOT compilation.
* mono/mono@0c88bc2ca3 Merge pull request #6115 from alexrp/profiler-lls-fix
* mono/mono@804979969a Merge pull request #6110 from alexrp/master
* mono/mono@370fd7bb86 un-commented HmacSha256Signature bug 35661
* mono/mono@c5d3bf2428 [msvc] Update csproj files (#6131)
* mono/mono@33afa19ce3 [mcs] Implements C#7.1 default literal
* mono/mono@425c62c5da [interp] disassembler for mint instructions should return a string instead of printing char by char (#6114)
* mono/mono@c79c456bd8 Merge pull request #6043 from kumpera/wasm-p2
* mono/mono@58d94f4f7f [loader] Don't assert on abstract methods in get_method_constrained (#6109)
* mono/mono@b4eb34de9b Merge pull request #6121 from akoeplinger/bump-msbuild
* mono/mono@38cc502132 [ci] Make bockbuild step fatal for run-test-mac-sdk.sh
* mono/mono@8d1ef54321 [ci] Skip System.Runtime.CompilerServices.Unsafe tests on arm32 too
* mono/mono@c36f5afb58 [profiler] Add an assertion to the log profiler to catch the thread resurrection case.
* mono/mono@22d22ff3d5 [profiler] Remove tools_thread checks when raising profiler thread events.
* mono/mono@cd46e14ee4 [profiler] Use thread_exited profiler event for recording thread end events.
* mono/mono@832e161fc9 [profiler] Add thread_stopping and thread_exited profiler events.
* mono/mono@8d487ae8e2 Bump bockbuild to upgrade expat library (#6093)
* mono/mono@c92f638d2e [interp] small improvment for error reporting in interp compile method callback
* mono/mono@7ed2c02d0c [aot] encode interp_in wrappers with proper signature
* mono/mono@fcfaf09acb [interp] fix copy/paste-typo in n2m macro magic
* mono/mono@ccc1bd2c18 [aot] add more signatures for interp_in wrapper needed for iOS
* mono/mono@afea7b6c79 [System] Add corefx tests for System.CodeDom (#5623)
* mono/mono@eb11cee53c Bump msbuild to xplat-master branch
* mono/mono@0927d51418 [runtime] Implement a few ModuleBuilder getters (#5787)
* mono/mono@b3fad3f0f8 [msvc] Update csproj files
* mono/mono@f5fc773512 [w32handle] Pass MonoW32Handle to more places (#5570)
* mono/mono@87500ea50a [profiler] Improve nodefaults usage.
* mono/mono@ea10d2f2f8 Bump API snapshot submodule
* mono/mono@6be02ed6c7 Don't run System.Runtime.CompilerServices.Unsafe tests due to JIT crash on i386
* mono/mono@3b00c67e0a Bump API snapshot submodule
* mono/mono@82151ac4fa [corlib] Adds Span/Memory tests
* mono/mono@2ab06befe9 [profiler] Make it possible to trigger heapshots from the M.P.L library.
* mono/mono@dcf567ff64 [mcs] Populate referencecontainer member-cache correctly. Fixes #60860
* mono/mono@c1fd42eac8 Merge pull request #6097 from mono/slluis-patch-1
* mono/mono@984f648466 [sdks] Use runtime logging features to intercept Console.{Out,Error} and runtime logs for instrumentation (#6083)
* mono/mono@20de41832a Merge pull request #6078 from alexrp/profiler-docs
* mono/mono@41a3571272 [acceptance-tests] Run shorter version of GCStress on PRs and update targets (#6106)
* mono/mono@198147add4 Fix MonoContextSimdReg usage on non-glibc Linux amd64(#6007)
* mono/mono@b25e55028b Merge pull request #6101 from DavidKarlas/gcrootFromStart
* mono/mono@a84fa6652f [msvc] Update csproj files (#6105)
* mono/mono@6ed4adc2d8 [System][Test] Only Xamarin.iOS has a synchronization context by default.
* mono/mono@22f0977132 [ci] Update acceptance-tests
* mono/mono@22adb80c21 Update roslyn tests
* mono/mono@5f7452f384 Merge pull request #5273 from vladimir-kazakov/xmlenc-from-corefx
* mono/mono@f3706fac10 [profiler] Report GC roots outside of heapshots unless the nodefaults option is given.
* mono/mono@46c997fdf7 Bump API snapshot submodule
* mono/mono@82bca175c4 [LogProfiler] Removed GcRoot events logging from start GcRoots should only be reported/captured during heapshot. We already set callback when heapshot collection starts and unset it when heapshot is finished. Which means after 1st heapshot is taken we don't log them outside heapshot. Hence we shouldn't be logging them from start...
* mono/mono@e51565c7e5 [msvc] Update csproj files (#6100)
* mono/mono@9ed8574570 XMLENC from .NET Core.
* mono/mono@031405e9cc [corlib] Fix flaky ThreadPoolTests.AsyncLocalCapture test (#6099)
* mono/mono@e8e92e5323 [genproj] Support setting /langversion in csproj (#6096)
* mono/mono@d29cc4770a [bcl] Remove the test for ExecutingAssembly.EntryPoint, it behaves in different ways on different configurations. (#6095)
* mono/mono@b736b420b5 Fix invalid enum values in LogGCEvent
* mono/mono@ec117584a2 [corlib] Update exception message to match .net
* mono/mono@4f0fd2a59b [mini] Align stack when resuming to catch handler
* mono/mono@3325bdfbd5 [mini] Add counter for try holes memory usage
* mono/mono@78933c423f [mini] Add missing try holes
* mono/mono@98d3906a39 [mini] Fix clause try hole checking
* mono/mono@5ef930b5f8 [bcl] Build some assemblies with -warnaserror (#5295)
* mono/mono@7b4dfeebc4 Merge pull request #5836 from marek-safar/corefx-bump
* mono/mono@edc590a3d3 Bump API snapshot submodule
* mono/mono@4535442e84 [ci] Switch .pkg PR build to pipeline script as well (#6092)
* mono/mono@484a9089a8 [corlib] Disable test check which is timezone dependent
* mono/mono@e663bd7c92 Exclude any Mono marked corefx tests
* mono/mono@5eb884bab8 Fixes wrong argument name
* mono/mono@431e36f731 Bump mcs bootstrap version
* mono/mono@1cc3bc58be Bump corefx
* mono/mono@ecd85dc839 [build] Support api-snaphot assembly references
* mono/mono@5c2a49f4b6 Add back some more legacy profiler APIs (#6044)
* mono/mono@00e2b06f2f Bump cecil & linker to latest. (#6081)
* mono/mono@c2fceeaf39 [tests] Adjust ifdefs to get the expected behavior for Xamarin.Mac/Modern tests. (#6086)
* mono/mono@19a7107a03 [tests] Adjust ifdefs to get the expected behavior for Xamarin.Mac's cryptography tests. (#6091)
* mono/mono@9107efe94d [api-diff] Only delete .cs files in the api diff
* mono/mono@7ed25b0be4 [msvc] Update csproj files (#6087)
* mono/mono@011d28de46 Bump roslyn
* mono/mono@16cf089281 [profiler] Clean up the AOT profiler a bit.
* mono/mono@0f985ed885 [profiler] Skip lines not starting with +/- in coverage filter files.
* mono/mono@76872edd27 [profiler] Use a new suppression file for the coverage profiler.
* mono/mono@d1748f7c58 [profiler] Remove coverage options from the help text in the log profiler.
* mono/mono@7c8f5e02b2 [profiler] Don't document the nocalls option.
* mono/mono@9b0c6fc45d [profiler] Exit when printing the usage info.
* mono/mono@0d123027b0 [profiler] Remove the iomap profiler.
* mono/mono@c7f9875f27 [man] Rewrite the profiler-related man pages.
* mono/mono@cbe30987b0 [samples] Clean up the profiler sample and add a simple makefile.
* mono/mono@0abcdc9c60 [mprof-report] Include domain and context reports in the default set.
* mono/mono@8ab10ff01d [profiler] Document the AOT profiler file format.
* mono/mono@53084a4098 [profiler] Add a comment to profiler-events.h about backwards compatibility.
* mono/mono@80788a3c50 [docs] Improve profiler API documentation.
* mono/mono@908d10de6c [exdoc] Don't transform newline characters to spaces.
* mono/mono@528e793ce3 [exdoc] Support Doxygen-style code blocks.
* mono/mono@aa19b6aa18 [exdoc] Support more Doxygen-style formatting.
* mono/mono@5d2febd966 [exdoc] Don't insert unnecessary tab characters.
* mono/mono@076632c3e9 Remove CodeDomConfigurationHandler from machine.config (#6070)
* mono/mono@718247da6f [bcl] Remove an ObjCRuntime reference from the TimeZone tests, it shouldn't be needed any more, and it prevents the tests from compiling on the monotouch profile. (#6079)
* mono/mono@f1f3ae49f0 [sdks] Fix Android pick of mono runtime (#6080)
* mono/mono@9d6f430994 Merge pull request #6067 from lambdageek/bug-60545-fixup-ginst
* mono/mono@8aed7ab89c [aot] Add generic instances referenced by MONO_PATCH_INFO_METHOD_RGCTX patches. Fixes #60771. (#6075)
* mono/mono@c8cd5a5710 Use image set to store and allocate MonoClass representing arrays and pointers whose elements types may contain generic instances from other images. This can be true for array element classes which are generic instances (List<NonCorlibTyp>[]) or arrays (List<NonCorlibTyp>[][]).
* mono/mono@ddace393cf [bitcode] Disable test_0_float_return_spill in bitcode to get green tests. (#6073)
* mono/mono@27eed3574d [ci] MSBuild related fixes (#6071)
* mono/mono@8e09c454f4 [wasm] Rewrite m2n-gen in C#
* mono/mono@6549011576 [wasm] Address review issues.
* mono/mono@8ea4864f30 [sdks] Add an ios test runner. (#6063)
* mono/mono@9a882ab9cf [class] Make some class setup methods mistakes less costly to make (#6048)
* mono/mono@d3c7faa750 [ci] Add Jenkins pipeline script for building OSX and Windows packages (#6065)
* mono/mono@7e9074b54c [loader] inflate constrained result if constraining an inflated generic method
* mono/mono@ef0f3a53f3 [msvc] Update csproj files (#6066)
* mono/mono@1f59d0958f [bcl] Add an .exclude file to disable some corlib tests when running with the mono sdk. (#6064)
* mono/mono@e5248979fe [sdks] Update Android for integration with XA (#6058)
* mono/mono@6beed5f791 [System.Net.Http]: Fix "Content-Length: 0" logic for requests without body.
* mono/mono@a178a5273a [runtime] Move mono_aot_can_dedup into aot-runtime
* mono/mono@2c160ed9a7 [mcs] C# 7.2 ref struct feature
* mono/mono@73bd521c07 Bump NuGet.BuildTasks (#6004)
* mono/mono@a6e7c1f81c [tools] Fix .apps generated by MacPack not running when Mono 5 is installed on macOS (#6024)
* mono/mono@fab0ce54d3 [System.Windows.Forms] FileDialog internationalization (#6052)
* mono/mono@21ba3d0d9d [corlib] Move System.Runtime.InteropServices.RuntimeInformation to co… (#6060)
* mono/mono@3259e04ace [loader] Rework get_method_constrained (Fixes #60545)
* mono/mono@92f20ae75d [tests] Mono test for contravariant constrained.callvirt
* mono/mono@0bbc3e8c15 [runtime] Cleanup mono_runtime_get_main_args
* mono/mono@009b508174 Fix the ios build with recent xcode/osx, add comments about possible targets. (#6056)
* mono/mono@dae27ef2ba Fix CryptoConfig.CreateFromName on XM Modern (#6029)
* mono/mono@a985310287 Disable a new test, it's crashing the interpreter
* mono/mono@e5a8111a64 [mcs] Better typed-ref deconstruction for indexers. Fixes #60680
* mono/mono@1d7ec6a3d7 Bump API snapshot submodule
* mono/mono@7a22e06622 Bump cecil
* mono/mono@b44333823d XmlReaderSettings.EnableLegacyXmlSettings should always be false on mono. Fixes bug-60621 (#6014)
* mono/mono@f1a22f31a7 [runtime] Fix test makefrag to accomodate moved tests
* mono/mono@c498a00479 [bcl] Fix the ResolvePathBeforeDirectoryExists test on the mobile profile.
* mono/mono@c2ea774d4c Revert "[touchup] Use HANDLE_FUNCTION_RETURN_OBJ instead of HANDLE_FUNCTION_RETURN_VAL (no change in behavior)"
* mono/mono@9c64c7d390 Merge pull request #6030 from luhenry/corefx-switch-to-c
* mono/mono@29d2176893 Merge pull request #6045 from chamons/bump_master_cecil
* mono/mono@e608ed2386 [touchup] Use HANDLE_FUNCTION_RETURN_OBJ instead of HANDLE_FUNCTION_RETURN_VAL (no change in behavior)
* mono/mono@24fc118eef [sdks] Cleanup wasm targets (#6025)
* mono/mono@18fb8563fb [touchup] Remove redundant code
* mono/mono@5cf1aada52 Merge pull request #6017 from monojenkins/update-csprojs
* mono/mono@421f8553fb Merge pull request #6042 from Unity-Technologies/winrt-time-zone-adjustment-rules
* mono/mono@e3862cb004 Bump cecil
* mono/mono@937fcd1023 [wasm] Unbreak EH
* mono/mono@9a143f99ca [wasm] Fix signature of Monitor::Enter icall.
* mono/mono@82e9c5ccd7 [sdks] Adjust debug spew to help debug GC issues.
* mono/mono@1b9e3ec070 [sdks] Add code to run corlib test suite.
* mono/mono@04d0d026b8 [sdks] Remove debug spew from new nunit driver and add option to run a single test.
* mono/mono@3d80b0b50e [wasm] Don't abort on thread creation, simply fail it.
* mono/mono@0d10ad9a26 [wasm] clock_gettime fails on with EINVAL. gtod works just fine.
* mono/mono@c8ed7a1715 [wasm] Current version of libc abort on getpwnam.
* mono/mono@426109e9c9 [wasm] Rework incremental test runner to work more closely to how nunit works WRT setup steps.
* mono/mono@9e8a648fa7 [wasm] Build the runtime with ASSERTIONS=2 for now to get better crash  diagnostics.
* mono/mono@cb8d515c00 [wasm] Update the wasm m2n tramps.
* mono/mono@d9224b10b2 [interp] Make assertions more usable.
* mono/mono@48c111e123 [wasm] Add better implementation of mono_w32file_get_volume_information.
* mono/mono@fed2587457 [wasm] Return actual stack bounds instead of phony values.
* mono/mono@0d6f22f04c [wasm] Mono relies waaaay too much on mmap returning zero'ed memory, so just do it.
* mono/mono@7cb492db00 [util] Properly Initialize the last entry of a superblock instead of relying on mmap returning zero'd memory.
* mono/mono@88e9d00c52 [corlib] Add wasm source lists for test suite.
* mono/mono@07d07ad907 [wasm] Switch to an incremental nunit test runner to make sure the main thread gets pumped regularly.
* mono/mono@491f4b651f The return value of GetDynamicTimeZoneInformationEffectiveYears in the successful case is ERROR_SUCCESS (0). Adjust failure case to be for return values non 0.
* mono/mono@af08374ef2 [msvc] Update csproj files
* mono/mono@3e1eeec6c3 [System.IO] Directory.Exists() now resolves the full path first. Fixes #60267
* mono/mono@2bb178c7a8 [runtime] Increase the BCL imt trampoline count (fix tests)
* mono/mono@1f4bd60284 [lldb] update interp main loop function name
* mono/mono@4d02be3abf [interp] only access arguments on frame if there are any for sure
* mono/mono@5bc422d733 [interp] end of a clause can point _after_ the last instruction
* mono/mono@d416f570bd Merge pull request #6003 from kumpera/profiler-compat-mode
* mono/mono@b488cacd50 [corefx] Bump corefx to pick switch of System.Native to C
* mono/mono@0435b2ba16 Merge pull request #6027 from lewurm/fix-DefaultThreadCurrentCultureIsIgnoredWhenCultureFlowsToThread
* mono/mono@8a82b292fb Update GdipGetImageDimensions tests to pass against Windows GDI+ (#6008)
* mono/mono@51a8a45906 Fix big endian build problem
* mono/mono@ae9cef9103 [corlib] fix DefaultThreadCurrentCultureIsIgnoredWhenCultureFlowsToThread test
* mono/mono@375471820c [corlib] Don't capture the execution context when UnsafeRegisterWaitForSingleObject is used. Fixes #60029 (#6013)
* mono/mono@c0f6935b45 [sre] Don't warn about duplicate token for MonoArrayMethod
* mono/mono@8b7df777bb [test] Regression test for 60238
* mono/mono@bcaca2dbaf [bcl] Add a Mono.Runtime.Tests assembly which can be used to run the JIT regression tests using nunit. (#6015)
* mono/mono@401ed4d16c [System.Process] Consider `open`'s exit code when using it to start a process. Fixes #19503 (#6010)
* mono/mono@2cc1ae3b29 Provide a special implementation of ReadToEnd for CStreamReader so that it echoes input characters correctly when TermInfoDriver is initialized instead of suppressing them. Fixes bug #40699.
* mono/mono@ca8b8bd346 [runtime] Add Dedup Support to MkBundle (#5484)
* mono/mono@50fa04c136 [runtime] Implement runtime support for inflated wrapper and generic dedup (#5349)
* mono/mono@115b290143 [runtime/corlib] Improve MissingMethodExceptions by including message… and signature. Fixes #60505
* mono/mono@43a23e71e5 Bump API snapshot submodule
* mono/mono@6910dd4bc0 [System.Data] Add missing Microsoft.SqlServer.Server APIs
* mono/mono@c58ab6f4cb more readable assignment
* mono/mono@93ad6575a5 [metadata] make get_darwin_locale thread-safe
* mono/mono@3318b29704 Merge pull request #5985 from YuriyGS/bug60514
* mono/mono@67160915c9 [profiler] Restore 'counters' and 'sampling-real' options
* mono/mono@52d836f5e2 Fix icall parameters to use managed boolean type. (#6006)
* mono/mono@2255c54966 [external] bump nunit-lite in order to include fix for racy FinallyDelegate
* mono/mono@0bba45f06e [interp] fix build on windows (#6000)
* mono/mono@a5248e5e11 [bcl] bringing back InetAccess test category
* mono/mono@a6c2080c24 Merge pull request #5759 from luhenry/w32process-refactor-mono_w32process_get_fileversion_info
* mono/mono@26b76cb879 [profiler] Make profiler arg parsing more compatible with previous version.
* mono/mono@c445fa3262 [runtime] Initialize the min_align field of ptr classes, since they have the 'inited' field set, so mono_class_init_sizes () might not be called for them. Fixes #60634. (#5999)
* mono/mono@0257dcde58 [tests] Add disabled regression test for #49308 (#5997)
* mono/mono@33eb71ae07 [System] Fix DeflateStream crash with high concurrency on Read/Write/Close (#5994)
* mono/mono@bf1b5dced0 [sdks] Remove passing AndroidRunner instance to C# and back (#5988)
* mono/mono@2f308109e1 Fix path to embedded glob.c implementation.
* mono/mono@d1ece840fe [mdbdump] Include guid in xml dump
* mono/mono@5f35ea4b68 [msvc] Update csproj files (#5995)
* mono/mono@05fae5f1fa Add ignoring features option into genproj
* mono/mono@2503f874ca Enable concurrent GC as default mode for Windows MSVC mono sgen builds.
* mono/mono@f23ce4f37e [corlib] Add more tests, embed linker descriptor xml in test assembly
* mono/mono@9afe9e1445 [interp] disable block_guard_restore_aligment_on_exit.exe on CI (#5991)
* mono/mono@d59f8a64ae [jit] Avoid nullifying LDADDR instructions in load_simd_vreg_class (), they could have references if explicit-null-checks are enabled. Fixes #60539. (#5979)
* mono/mono@af818a1709 [msbuild] Change the version used in bockbuild to just '15', instead .. (#5986)
* mono/mono@356c5aaef8 Using padding and border width
* mono/mono@4e43805a1e [Tests] Make Mono.Data.Sqlite tests more robust. (#5982)
* mono/mono@78be18ab99 Merge pull request #5917 from lambdageek/centrinel-ann
* mono/mono@295625bbb0 [sdks] Change how we run test suites on the app (#5894)
* mono/mono@00035e5b68 Include <config.h> in C files that include mono headers
* mono/mono@70807d5198 [coop handles] Mark handles macros with Centrinel SUPPRESS macros
* mono/mono@7d3dc331b5 Mark _MonoObject and managed object typedefs with MONO_RT_MANAGED_ATTR
* mono/mono@d244f6d2c7 Define MONO_RT_MANAGED_ATTR and MONO_RT_CENTRINEL_SUPPRESS macros
* mono/mono@ee20fc0ad9 Remove Boehm specific code path in GC aware hash tables as it can now push/mark roots.
* mono/mono@e348c56a01 [coop] Convert ves_icall_System_Environment_GetCommandLineArgs icall to use coop handles
* mono/mono@4b80cb6861 [bcl] Add .NET 4.7.1 reference assemblies (#5974)
* mono/mono@e45d72f4a8 Merge pull request #5969 from luhenry/backport-master-950ea65c3ba571cd139dc34b48d7101a2e894993
* mono/mono@a9e1c60a63 Merge pull request #5970 from lambdageek/bug-60245
* mono/mono@b78e9b5e98 [interp] disable Test.System.Threading.ThreadTest.TestUndivisibleByPageSizeMaxStackSize (#5966)
* mono/mono@69ec805ff3 [test] FieldInfo.{Get,Set}Value tests for ContextBoundObject
* mono/mono@cd2fd4d81d [remoting] Check for transparent proxy in ves_icall_MonoField_{Get,Set}ValueInternal
* mono/mono@40be6362c6 [System] Add missing ConfigureAwait (#5963)
* mono/mono@ea060b586d [Tests] Fix flaky IO tests due to parrallel execution on Mac bots.  (#5965)
* mono/mono@a45569fe37 [System] Fix NullReferenceException in Win32EventLog (#5949)
* mono/mono@198481639f [interp] clear stack on resuming into the main loop (#5959)
* mono/mono@865e344512 [System]: Override `SslStream.FlushAsync ()` to call the async version on the underlying stream. (#5960)
* mono/mono@a60b50417a [Facades] Use same assembly company/product/copyright attributes as other BCL assemblies (#5961)
* mono/mono@4e01b276ae [interp] enable it by default in configure (#5925)
* mono/mono@a62a7e7e96 Merge pull request #5924 from kumpera/wasm-sdk-integration
* mono/mono@a2649fe604 ignore quick syntax to exclude files in removecomments.sh for local-dist (#5958)
* mono/mono@e3d3433b76 Detect platform tizen and link profiler statically similar to Android.
* mono/mono@de771964ee Add missing build dependency to fix correct parallel build order.
* mono/mono@3c4b261617 [corlib] corefx tests from System.Threading.* and System.Text.RegularExpressions (#5762)
* mono/mono@3e9c2af62a [profiler] Improve NUnit xml reporting (#5954)
* mono/mono@83f9f3a813 Merge pull request #5950 from lateralusX/lateralusX/disable-join-thread-in-detach
* mono/mono@286e62e84d [runtime] Handle ENOTCONN/EHOSTDOWN in mono_w32error_unix_to_win32 (). Print a warning instead of asserting, there are lots of error codes we don't handle, map them to ERROR_NOT_SUPPORTED for now. Fixes #60422. (#5927)
* mono/mono@c3be0663c1 [System] Ignore tests that fail on device until the corresponding bugs have been fixed. (#5951)
* mono/mono@5ed0fab147 [wasm] Fix test driver and mono's JS support library.
* mono/mono@ec78917e10 Bump API snapshot submodule
* mono/mono@c5fa794e98 [bcl] Updates referencesource to 4.7.1
* mono/mono@e2a7e328d3 [mcs tests] clean up interp target
* mono/mono@43f03233f3 [interp] enable Mono.Debugger.Soft tests on CI
* mono/mono@acf3607795 Temporary disable adding thread to joinable threads on none Windows platforms.
* mono/mono@1a79065f8c Ensuring TextBox is properly updated upon setting/clearing password character. (#5947)
* mono/mono@035ad2f118 [mcs tests.make] control with TEST_WITH_INTERPRETER if `run-test` target uses the interpreter
* mono/mono@30fd079c90 [mcs make] introduce TEST_RUNTIME_FLAGS, analogously to TEST_RUNTIME vs. RUNTIME
* mono/mono@879f4bc60f [corlib] annotate failing tests when running in interpreter
* mono/mono@591ab6d34b [interp] properly resolve MonoType of MonoClassField via mono_field_get_type ()
* mono/mono@6f7025ba00 [interp] check interruption request flag properly after allocating an object
* mono/mono@88970711ff [interp] allow MONO_CALL_STDCALL calling convention on cee_calli insn
* mono/mono@292f8ac3c5 [interp] use checked variant of method_get_header and throw exception if there is an error
* mono/mono@dfca26c32f [interp] allow unsigned i8 in pinvoke signature
* mono/mono@9e6c430e5e Have Boehm mark handle stacks rather than using GC tracked memory. Unify handle memory across all GCs.
* mono/mono@29826908fc [interp] Make the interpreter use the JIT exception handling code. (#5943)
* mono/mono@5a88e085f3 [corlib] Fixes NullFullNameForSpecificGenericTypes for mobile profiles
* mono/mono@f58ba94f8c Add g_ptr_array_capacity to retrieve current size of GPtrArray. Allows clients to know if future additions will cause (re)allocations. (#5931)
* mono/mono@733b4a4c9f [ServiceModel.Web] Fix test by adding WebHttpBehavior to WebChannelFactory endpoint on MOBILE
* mono/mono@dc023c2fe0 Fix bug 57938 - FullName not returning null for certain generic types (#5920)
* mono/mono@f6e21efe14 [ci] Coverage-imposed build flags should take top priority (#5940)
* mono/mono@4272b68b76 [interp] Throw exception in case of field access failure
* mono/mono@8f3a51860d [interp] Enable some tests
* mono/mono@14d137029b [interp] Don't sigsegv on field lookup failure
* mono/mono@36d588d62f [interp] Don't assert on ldtoken failure
* mono/mono@5d056c0184 [interp] Fix error propagation from interp invoke
* mono/mono@4c8bff917c [interp] Avoid translating methods while holding a low level lock, make a copy of InterMethod instead, do the translation with the copy, and copy the results back inside the lock. (#5935)
* mono/mono@5fffc1b8cf [interp] Change 'class' to 'klass'
* mono/mono@174bea7caf Replace 'class' identifier usage with 'klass' to avoid compile errors in C++
* mono/mono@81feabe4c6 Consider Facades in Provides: too. Version number challenges remain. (#4874)
* mono/mono@c43d73cfd7 [System.Windows.Forms] Fixes #60435. DataGridViewRow.CreateCellsInstance method is never invoked
* mono/mono@151fa5590f Internationalization support for System.Windows.Forms: (#5886)
* mono/mono@fb0fe43283 [sdb] Make get_this_addr () work with the interpreter. (#5937)
* mono/mono@fa898df0fc [Tests] Fix zip tests on iOS devices. (#5939)
* mono/mono@5143b5a461 [Test] Fix System.IO.Compression.FileSystem tests on iOS devices. (#5938)
* mono/mono@9b9159cb4a [interp] Use xdomain wrappers as with normal jit
* mono/mono@5a1fa0f3df [interp] Don't rethrow current frame exception after an icall
* mono/mono@e2b59a234f [interp] Set correct stack type for icall return
* mono/mono@ae8d913b00 [interp] Fix constructor call on transparent proxies (#5934)
* mono/mono@01e767447b [sdks] Address reviewer suggestion.
* mono/mono@d1349d274f [wasm] Add test runner that executes the mini test suite.
* mono/mono@a0687c199c [wasm] Build the wasm profile is it was configured in.
* mono/mono@db00ae8496 [wasm] Update port to work with master.
* mono/mono@675b190455 [wasm] Workaround for emcc 1.37.22 that miscompiles the inline assembly.
* mono/mono@6f229c1a1b [sdk] Fix wasm build.
* mono/mono@5b118b84e5 [interp] disable appdomain-unload (crashes too often) and add comment (#5922)
* mono/mono@fa7623e0f3 [tests] Allow overriding Mono arguments for JIT and AOT scenarios.
* mono/mono@8ed81c060c Revert "[configure] Test AOT+LLVM if mono was configured to support both. (#5880)"
* mono/mono@033ccb6635 [System.Security] Simplify monodroid test excludes (#5919)
* mono/mono@3df4b8f7f6 [corlib] Add more Assembly*Attribute tests (#5918)
* mono/mono@80a20870af [sdk] Use single : in android target that doesn't get appended to.
* mono/mono@55cae500f5 [wasm] Add wasm-interp target to build the wasm interpreter based runtime.
* mono/mono@f124b4d1b8 Merge pull request #5912 from kumpera/bunch-of-changes-for-sdks
* mono/mono@b73480af34 [Tests] Ensure that only a subset of the System.Security tests are ran on mobile platforms.
* mono/mono@d49e8c32c4 [mkbundle] Enhanced mkbundle cygwin/mingw fallback support. (#5867)
* mono/mono@e0607c34f0 Debugger support for the interpreter (#5902)
* mono/mono@08bb8da2cc [System.Web] Reference source import (#5909)
* mono/mono@bea6d82e80 Unlock `sgen-fin-weak-hash.c`: - Unlock simple counters - Unlock the usage of `next_fin_stage_entry` and `fin_stage_entries` within `add_stage_entry ()`
* mono/mono@2bf3e7e3a9 Prepare `unlocked.h` for the upcoming changes: - add the `volatile` qualifier to all pointer parameters - add `UnlockedWritePointer ()`
* mono/mono@b259c836ab [jit] Move the code handling the MonoLMFExt structures from exceptions-<ARCH>.c to mini-exceptions.c, its the same on all platforms. (#5907)
* mono/mono@35acde58d4 Use getrandom() instead of /dev/urandom on Linux (#5851)
* mono/mono@32d2f28518 [sgen] Collect major after user requested minor collections
* mono/mono@9a879a1b11 [interp] disable broken test cases on CI (#5914)
* mono/mono@0dbdcf2e77 [Mono.Posix] Fix some socket tests on monodroid (#5915)
* mono/mono@8992f0fd05 [runtime] Remove the no_raise argument from mono_register_jit_icall_full (), no icalls call mono_raise_exception () anymore. Rename the 'is_save' argument to 'no_wrapper'. Allow inlining wrappers for all icalls. (#5897)
* mono/mono@92477b9583 [jit] Remove unused mono_interruption_checkpoint_from_trampoline_deprecated () JIT icall. (#5895)
* mono/mono@82579ce9ce Merge pull request #5879 from kumpera/wasm-work-p6
* mono/mono@d208927a5f [sdks] Add notes for the BCL build.
* mono/mono@c133304b95 [android] Fix compilation with recent ndk and sdk target < 16.
* mono/mono@6b3e68486a [sdks] Update bcl target to include wasm profile.
* mono/mono@cc9cb3f6d7 [sdks] Fix autogen invocation and respect Make.config options.
* mono/mono@79ef4d8eef [configure] Test AOT+LLVM if mono was configured to support both. (#5880)
* mono/mono@110888fd66 [interp] Enable more runtime tests for interpreter
* mono/mono@d5028868d3 Merge pull request #5685 from urisimchoni/callspec-ut
* mono/mono@da53cb0e08 [runtime] Rename mono_raise_exception_with_context_deprecated () back to mono_raise_exception_with_context (), its ok to use since it starts unwinding from the CTX argument which points into managed code. (#5896)
* mono/mono@fdcf7da3f4 [amd64] Remove the unused MonoLMF.rip field. (#5904)
* mono/mono@ff078951a5 [w32process] Reduce mmap allocation by mapping file only once
* mono/mono@9fdc0045ad [runtime] Avoid creating callbacks.interp_get_remoting_invoke if the interpreter is not enabled at runtime. (#5905)
* mono/mono@96361e3913 [arm64] Throw OverflowException instead of the more general ArithmeticException.
* mono/mono@ddd07a749f [System.Web] LoginTextLayout from reference source
* mono/mono@dd033ae341 Duplicate friend assembly names and add needed null terminator.
* mono/mono@1c15c3ebd3 Match amd64/arm64 in the way of handling exceptions within trampolines (#5891)
* mono/mono@f5915baa5d [sdks] Fix android configure with latests NDK
* mono/mono@cfba305b7e [corlib][Test] Ignore FileTest.SymLinkLoop until bug #59239 is fixed. (#5889)
* mono/mono@a043b26831 [System.Web] EmptyControlCollection from reference source (#5884)
* mono/mono@f871b90d5e [sdks] Fix Android build.
* mono/mono@ac4095a1ea [sdks] Improve path handling and include local conf file
* mono/mono@2856f523f6 [wasm] Add missing tramp
* mono/mono@4a28d3595c [runtime] fix prev commit build for Linux x64
* mono/mono@6b8b32b6fc [runtime] Fix unit test.
* mono/mono@e1b75723d7 Bugfix: 1.5 stop bits for serial port should set the posix stop bit flag (#5873)
* mono/mono@f2e658cdca [build] Add wasm profile
* mono/mono@6d9d804d62 [System.Web] TableFooterRow from reference source (#5882)
* mono/mono@0a320dbb95 [aot] Error out when using the coverage profiler + aot, its not supported. Fixes #60175. (#5881)
* mono/mono@adbf98b977 [System.Web] CompilationMode from reference source (#5878)
* mono/mono@1f1a1574c2 [System.Web] ScrollBars from reference source (#5869)
* mono/mono@6e529aafcc [System.Web] ObjectDataSourceEventHandler from reference source (#5868)
* mono/mono@5802f03926 [System.Web] WizardStepType from reference source (#5870)
* mono/mono@8e617d38da [System.Web] TableHeaderRow from reference source (#5866)
* mono/mono@aa39bf69f2 [System.Web] IndexedString from reference source (#5872)
* mono/mono@c17cc609da [System.Web] ImageClickEventArgs from reference source (#5871)
* mono/mono@59c42eacf4 [mono/unit-tests] add callspec unit tests for different classs same prefix
* mono/mono@e4b94aa495 [metadata] Avoid matching class with prefix name
* mono/mono@ec038ebb76 [mono/unit-tests] callspec unit testing
* mono/mono@c14b08013c [Microsoft.CSharp] Adds more tests
* mono/mono@b0919d93f9 [sdks] Source drop from xamarin/mono-sdks (#5876)
* mono/mono@55df935275 Merge pull request #5874 from vargaz/fix-60255
* mono/mono@eb9238c05e [jit] Throw the more specific OverflowException instead of ArithmeticException in the ldiv/lrem emulation functions. Fixes #60255.
* mono/mono@067809c50e Add an automated test that will fail if the list of feature names in CompilerServices.RuntimeFeature is changed (#5854)
* mono/mono@a348c12719 Bump roslyn
* mono/mono@5c75f593de Merge pull request #5764 from Unity-Technologies/save-resume-tramp-amd64-xmm-arg-regs
* mono/mono@13a9fb6c7a Merge pull request #5844 from vargaz/fix-60288
* mono/mono@b0983b83cd [mono] Update denied assemblies list
* mono/mono@82e2421819 Build fixes for none Windows desktop platforms.
* mono/mono@e3c239ccdc [arm] Add support for unlimited size/number of arguments to the dyn call code. Part of the fix for #59184. (#5840)
* mono/mono@0f045b1ded [System.Data] Cleanup after #4893 (PR) (#5841)
* mono/mono@00af82567c Bump corlib version for MonoIO coop handle changes.
* mono/mono@1ba4211147 [coop-handles] System.IO.MonoIO.Read
* mono/mono@498eb7dc58 [coop-handles] System.IO.MonoIO.GetCurrentDirectory
* mono/mono@72b5a0e99e [coop-handles] System.IO.MonoIO.get_InvalidPathChars
* mono/mono@6cdc5531dc [coop-handles] System.IO.MonoIO.FindNextFile
* mono/mono@b73d5302b1 [coop-handles] System.IO.MonoIO.FindFirstFile
* mono/mono@52786872cd [coop-handles] System.IO.MonoIO.Write
* mono/mono@77fd6e0846 [coop-handles] System.IO.MonoIO.SetFileAttributes
* mono/mono@16ebef70ed [coop-handles] System.IO.MonoIO.SetCurrentDirectory
* mono/mono@85f4b5b167 [coop-handles] System.IO.MonoIO.ReplaceFile
* mono/mono@8ea394429c [coop-handles] System.IO.MonoIO.RemoveDirectory
* mono/mono@847aec7167 [coop-handles] System.IO.MonoIO.Open
* mono/mono@0de5f20375 [coop-handles] System.IO.MonoIO.MoveFile
* mono/mono@e57d26ebaf [coop-handles] System.IO.MonoIO.GetFileStat
* mono/mono@794f17ef8b [coop-handles] System.IO.MonoIO.GetFileAttributes
* mono/mono@89647e4d20 [coop-handles] System.IO.MonoIO.DeleteFile
* mono/mono@26aaf7617d [coop-handles] System.IO.MonoIO.CreateDirectory
* mono/mono@477d5f3f70 [coop-handles] System.IO.MonoIO.CopyFile
* mono/mono@26ccf75f06 [msbuild] Add symlink to csc.exe in msbuild bin dir
* mono/mono@2b15f1e6b2 [runtime] Fix Windows build break due to renamed mono_error_raise_exception (#5849)
* mono/mono@4b702c8d6a [corlib] Updated LinkerDescriptor
* mono/mono@9502de7852 Merge pull request #5846 from kumpera/wasm-work-p5
* mono/mono@14a6854c79 [scripts] Build 64-bit package by default
* mono/mono@bc3ba3cb5d [arm] Make the generic trampoline call mono_thread_force_interruption_checkpoint_noraise () and throw the exception itself instead of calling the obsolete mono_interruption_checkpoint_from_trampoline (). (#5838)
* mono/mono@79d96a5a8d Fix WCF Windows Linux cross WCF-comunication via NetTcpBinding (without any security Transport|Message). (#5842)
* mono/mono@03ea90cf1f [bcl] Optimize Process.GetCurrentProcess ().MainModule. (#5843)
* mono/mono@cc67bfdcfc [runtime] Allow valuetypes larger than 1MB created by csc/mcs. Fixes #60288.
* mono/mono@f2e1f58a80 [interpreter] Fix the DISABLE_REMOTING build.
* mono/mono@77b4cd11d1 Only null check target for delegate if method is not static. (#5833)
* mono/mono@91a10ffd01 [runtime] Mark mono_raise_exception()/mono_reraise_exception() as external only. Add new _deprecated internal versions. (#5839)
* mono/mono@5edb2a54db [runtime] Improve diagnostics about methods that failed to LLVM-compile by including the typename in the message. (#5706)
* mono/mono@d60877b0f3 Fix tarball build
* mono/mono@2124bda984 Merge pull request #5830 from alexischr/wrench-tests
* mono/mono@7cde4806fd Merge pull request #5632 from luhenry/threads-rework-shutdown
* mono/mono@299ad0f1fd Merge pull request #5825 from BrzVlad/fix-interp-appdomain
* mono/mono@f5ee4a398c Add MacSDK test script
* mono/mono@dc732f0166 [jit] Fix #59182 for the coop case as well. (#5824)
* mono/mono@e9899e4bb1 [interp] Enable appdomain tests
* mono/mono@70cff6b6b0 [interp] Rethrow abort exceptions at end of catch
* mono/mono@043ee9f13d [interp] Interruption checkpoint during branches
* mono/mono@7483082d9a [interp] Handle remoting calls in delegates
* mono/mono@ea73165ca8 [interp] Add lmf when doing icalls
* mono/mono@ee98142c15 [interp] Don't generate remoting wrapper for normal calls
* mono/mono@111a6ed2ff [interp] Fix tls jit pointer fetch
* mono/mono@44b21bca28 Fix bug #58400 - incorrect implementation of LocalPath for file URLs (#5779)
* mono/mono@c26e069703 [interp] remove setjmp/longjmp unwinding machinery
* mono/mono@5e6893ad48 [interp] remove unused ves_exec_method
* mono/mono@15bb34e6d6 Merge pull request #5785 from BrzVlad/fix-59153
* mono/mono@30b5ea7cd9 [MonoError] Add goto_if_nok to reduce duplicated code (#5834)
* mono/mono@f5aca1da30 [tests.make] Filter out comments from test.dll.sources for TEST_FILES
* mono/mono@a8dab358d9 [interp] do not attempt to transform method of open generic class
* mono/mono@1df82c2d51 [threads] Also abort background threads on shutdown
* mono/mono@0b40428d59 [threads] Let mono_thread_detach_internal remove thread from threads
* mono/mono@1538798867 Merge pull request #5778 from alexischr/bug-56003
* mono/mono@61559965a1 [System.Data] move to corefx (#4893)
* mono/mono@ce596ec25c Save and resume full 128-bits of xmm argument registers in trampoline. Add definition of MonoContextSimdReg on amd64 for Windows platform and use for size/offset calculations.
* mono/mono@c50b4ef9c7 [msvc] Update csproj files (#5832)
* mono/mono@5a7d6e3d9a Fix spiller when the dest membase optimization intereferes with lvreg caching. Fixes #20562 (#5747)
* mono/mono@0f9bbb90fb [runtime] Rename atomic functions from the win32 style naming to mono_atomic_<op>_<type>, with a consistent signature on all platforms, including Windows implementation. (#5767)
* mono/mono@1e29ed0d7e [System.Core] Remove duplicated test classes (#5829)
* mono/mono@8af88bd0e6 Update root gitignore (#5831)
* mono/mono@ceec5e9786 [coverage] Fix the printing of nested generic instances. Fixes #60224.
* mono/mono@9cce09b0a2 [runtime] Workaround for verifier bug #59967
* mono/mono@c763b4a250 Bump Roslyn
* mono/mono@6caf00b09c [bcl] Remove AssertExtensions helper classes (#5828)
* mono/mono@cfedbd7aa2 replace min with MIN
* mono/mono@eb5fa1fced fix code-style issues
* mono/mono@bbb109bd03 limit max possible threads in ThreadPool (SetMaxThreads). Fixes bug-60027
* mono/mono@dbb0872f49 [corlib] Adds ValueTuple tests
* mono/mono@0ccfa87a91 [System.URI] Don't reset host string processing on Unicode paths. Fixes #56003
* mono/mono@df37bb7a7c [mini] Don't attempt to compile method of open generic class
* mono/mono@0b60a62ee7 [interp] use POP_VT macro
* mono/mono@6684e29f7a [interp] check stack_type in cee_ldobj
* mono/mono@7777d78b16 [System.Net] Tweak tests for watchOS
* mono/mono@71997d296f [llvm] Fix the returning of vtypes using a hidden argument in bitcode, in some cases, we forgot to generate the code to return the value, causing random data to be returned. Fixes #59956. (#5786)
* mono/mono@17d86bd264 [msvc] Update csproj files (#5823)
* mono/mono@5440d5718b [runtime] Avoid an assertion in mono_profiler_get_coverage_data () if the method doesn't have a body. (#5777)
* mono/mono@e7736ca5cc [ppdb] Add a log message when an assembly has no ppdb debug directory. (#5795)
* mono/mono@1d0e803fbb [runtime] Don't crash when method/assembly with no code coverage does not have debug symbols
* mono/mono@3d00ea31a7 [sre] Register a canonical reflected method for a methodspec token. (Fixes #60233) (#5813)
* mono/mono@4bd3aa2158 [bcl] Update PlatformDetection helpers
* mono/mono@e87cc4822c Bump xunit dependency
* mono/mono@618ef61ae9 [eglib] check if result is set
* mono/mono@464c5916d5 [bcl] Fix test assembly build for monodroid profile (#5808)
* mono/mono@afb822af07 Merge pull request #5803 from BrzVlad/fix-small-warning
* mono/mono@bdababe715 [bcl] Add dependency on .exclude.sources to test assembly (#5804)
* mono/mono@9c2a4ff286 [mini regressions] enable aot-tests.cs & gshared.cs on more configurations (#5791)
* mono/mono@2a294c432e [interp] do not run mcs/tests on ARM on CI
* mono/mono@87694b9ed0 [mcs/tests] make test harness output more verbose on V=1
* mono/mono@d12dda34e4 [mcs/tests] add interp target
* mono/mono@f2bab1910d [linker] update referenced source files
* mono/mono@8e3867013a Bump linker
* mono/mono@9ff18d1dca [msvc] Update csproj files (#5805)
* mono/mono@2d63c93d06 [interp] use correct code base pointer and set native_offset
* mono/mono@acb5f68e3e [interp] avoid leaking MonoMethodHeader data structure by freeing or avoiding it
* mono/mono@d055f9e21f [interp] fix minor leaks around wrappers
* mono/mono@d9922895d4 [monodroid] Enable a number of tests (#5799)
* mono/mono@d8d4307293 [sgen] Fix warning
* mono/mono@c399c787c8 [I18N] Add more encoding tests
* mono/mono@25ad948e02 [corlib] Add corefx System.Text.Encoding tests
* mono/mono@83af047720 [corlib] Add tests for EncoderFallback
* mono/mono@e8ad2487f3 [corlib] Use Latin1Encoding from referencesource
* mono/mono@4c4d3dcdc5 [I18N] Remove commented code from ucm2cp.c
* mono/mono@73eed5d415 [I18N] Fix wrong charIndex in encoder fallback
* mono/mono@8593149b0b [build] Add code coverage mode (#5789)
* mono/mono@606f40e708 [corlib] Fix SRE.SaveTest error during teardown on Windows
* mono/mono@66f11a1699 Merge pull request #5715 from BrzVlad/fix-alpine-context
* mono/mono@dd1a39dbc6 [amd64] Get xmm registers only when on glibc
* mono/mono@c89a3e55b7 [Mono.Posix] Use TestHelper code from monodroid repo (#5793)
* mono/mono@a1cc4dfedb Merge pull request #5788 from BrzVlad/fix-handle-track-sp
* mono/mono@23d2615f3d Merge pull request #5782 from YuriyGS/bug60115
* mono/mono@3a8e4fcfd4 Merge pull request #5781 from lateralusX/lateralusX/fix-thread-suspend-windows
* mono/mono@d4b2024871 [coop handles] Add comment to prevent hard to debug bugs
* mono/mono@69b9f11b6f [coop handles] Fix monotonic handle check race with stw in mono_handle_new
* mono/mono@1f1edce576 [coop handles] Add log entry about successor handle
* mono/mono@dc2d1c291f [coop handles] Fix monotonic check
* mono/mono@23d2ee726d Merge pull request #5753 from alexrp/wsl-fixes
* mono/mono@1dcaf8fddc Added validation on acceptable date interval when update SelectionRange property. Fixed loss of focus when the user presses the arrow buttons and shift.
* mono/mono@efdf035cfb [arm64] use DMB ISH barrier instead of undefined barrier option
* mono/mono@8dead2a644 [arm64] update definitions for barrier option of DMB
* mono/mono@959eb46e17 [mono-context] Work around a WSL bug when fetching XMM registers.
* mono/mono@d73e8be1de [mcs] Fixes parsing tuple name inside generic type in method header block
* mono/mono@f53ce8e180 Fix random failures in sgen stress tests on Windows due to `mono_thread_is_gc_unsafe_mode assert.
* mono/mono@8eb2c02d7e [acceptance-tests] Reenable ms-test-suite test after Mono bug was fixed (#5776)
* mono/mono@1c4d741a02 [corlib/Test] Check for "Israel Standard Time" zone on Windows.
* mono/mono@ce19b84529 [corlib] Remove a broad try/catch.
* mono/mono@b86c084cbc [corlib] Use full years for transition rule start/end ranges.
* mono/mono@6d4821b282 fix formatting issues
* mono/mono@55fb7bcda1 fix bug-60031 Thread doesn't throw ThreadStateException when it should
* mono/mono@308ce3f5c3 [tests] Remove test from runtime-invoke.cs
* mono/mono@7a452797f1 [tests] Re-enable appdomain-thread-abort.exe (#5736)
* mono/mono@db8183c9d8 [debugger] Fix LineNumbers test (#5744)
* mono/mono@43757d67ef [msvc] Fix MONO_CORLIB_VERSION to match configure.ac (#5770)
* mono/mono@81f7d591d7 Merge pull request #5741 from alexischr/bug-60028
* mono/mono@663754bf46 [mini helpers] fix disassembly on aarch64
* mono/mono@4fe87bd820 [corlib] Adds more tests
* mono/mono@03474ba9e2 Fixed unhandled exceptions in EndPointListener.cs (#5724)
* mono/mono@abd4a6a57b Merge pull request #5746 from kumpera/fix_56194
* mono/mono@286aa03847 [interp] remove wrong checks, as cee_mkrefany and cee_refanyval only take one argument on the stack
* mono/mono@d8bd874fe4 [interp] assume `this' always to be platform pointer size
* mono/mono@49b29bfce8 [interp] flag mint_box instruction if value type stack should be popped too
* mono/mono@1f580e17b8 [interp] bail out on __arglist and propagate MonoError properly in transformer
* mono/mono@3468d54fbb [interp] set stack type properly for ldelem_vt
* mono/mono@b05f478376 [interp] add i1, i2 & r8 support for CEE_STELEM
* mono/mono@34592c5233 [interp] resolve generic types properly in mint_box, mint_ldobj and mint_cpobj
* mono/mono@6c60d2fce0 [interp] pass field instead of pre-calculated size for ld*fld.vt
* mono/mono@373ebd547d [tramps] add missing fp reg and check for the future
* mono/mono@fa92fa86c2 [interp] fix offsets in switch insn dump (only affects debug output)
* mono/mono@3a8cb50b07 [interp] fix compiler warning
* mono/mono@ed10891d9b [interp] replace printf with g_print
* mono/mono@d071235ffa [lldb] update expression in script
* mono/mono@16a67c6f6e Merge pull request #5689 from lateralusX/lateralusX/windows-native-unwind-codeview-support
* mono/mono@e47b1865c2 [runtime] Allow throwing pending exceptions from protected wrappers.
* mono/mono@0ae4504681 [runtime] Remove a mono_error_raise_exception () call from mono_remoting_wrapper (), its not needed since mono_remoting_wrapper () is called through a wrapper.
* mono/mono@12ca539f85 [jit] Call mono_llvm_raise_exception () directly from a bitcode jit icall. (#5752)
* mono/mono@42816aaa92 [interp] fix offset calculation for exvar slots in locals
* mono/mono@ad4ed79c9a [test] Add Type.GetType("", ...) tests
* mono/mono@0c61eb1b12 [reflection] Throw TLE for Type.GetType("", true) (Fixes #59664)
* mono/mono@e004f1ed5e [reflection] Use MonoError for mono_reflection_parse_type_checked
* mono/mono@95ab8ab08f [runtime] Ensure the field type is resolved before using it in RuntimeHelpers::InitializeArray. Fixes #56194
* mono/mono@8f324cdfc2 [ASan] introduce MONO_NO_SANITIZE_ADDRESS macro and mark sgen pin object scanning function as such
* mono/mono@8cf8b32972 [runtime] Use mono_set_pending_exception () in ves_icall_System_Threading_Thread_Sleep_internal (). (#5748)
* mono/mono@f02e158d3c [runtime] Remove unused mono_gc_out_of_memory () function. (#5750)
* mono/mono@4718035ee6 [mcs] Adds workaround for compiled enum types used as fields of other types. Fixes #59080
* mono/mono@1c9cf1f1c0 [interp] fix LMF popping during exception handling
* mono/mono@8e9c90b37e [interp] remove InterpMethod entry in hash table on free_method callback
* mono/mono@428d0606ab [System.Windows.Forms] Proper operation order. Fixes #59393. (#5734)
* mono/mono@344a3ec4e1 [interp] use GC aware memcpy for storing value types to fields
* mono/mono@75415afa76 [bcl] Fix csi to work on Mono (#5737)
* mono/mono@c4bee6af4d Merge pull request #5726 from alexrp/master
* mono/mono@8e9ae0cb07 [w32socket] Ignore errors for IP_MTU_DISCOVER on WSL.
* mono/mono@15c0640201 Merge pull request #5714 from alexischr/update_bockbuild
* mono/mono@4058c2be43 [utils] Add check for ANDROID_UNIFIED_HEADERS to mono-compiler.h (#5742)
* mono/mono@d2e60f48b6 [msvc] Update csproj files (#5745)
* mono/mono@c9fc371e31 [corlib] Use temp directory for assemblies in SaveTest.Save() (#5727)
* mono/mono@64b4a63a87 [corlib] Throw exception on using disposed Timer object. Fixes #60028
* mono/mono@90a68e6591 [corlib] Fixes make dist (#5735)
* mono/mono@aef03761fa Updated with review feedback.
* mono/mono@70abfb795a [profiler] Clean up the makefile and address some issues with it.
* mono/mono@56b3c007f4 [runtime] Don't insta-fail when a faulty COM type is encountered. (#5616)
* mono/mono@9eed0cb99e Update Bockbuild
* mono/mono@e77153a623 Adding basic codeview support on Windows x64 full AOT builds.
* mono/mono@925c2dc632 Adding native unwind info support in Windows x64 full AOT builds.
* mono/mono@72c86fe6cc [corlib] Makes GetReferencedAssemblies test more reliable
* mono/mono@f0ce7bc289 Merge pull request #5327 from marek-safar/corefx-bump
* mono/mono@410bb8a57e [runtime] Fix Empty generic enumerator equality
* mono/mono@f165a0dc3f Bump API snapshot submodule
* mono/mono@74a87af7f5 [appletls] Trust SecTrustResult.Proceed as well. Fixes #58411.
* mono/mono@a984f20e23 Initial set of Ward sgen annotations (#5705)
* mono/mono@411a37af27 Bump corefx
* mono/mono@3e9d7d6e9c [mcs] Fixes codegen for pattern probing with value-type variables
* mono/mono@caa9ed689f [aot] Don't error out if a method fails to JIT in full-aot mode. This was a regression caused by 9302c31f81abd2f5bbf9a8ddd27993e1ece55db2. Fixes #59832. (#5686)
* mono/mono@baac94e4b7 [runtime] Coverage profiler fixes (#5698)
* mono/mono@44e0631618 [corlib] Fixes array enumerator to match .net behaviour
* mono/mono@012f861023 [jit] In native-to-managed wrappers, emit the initlocals code for vtypes after the code for CEE_JIT_ATTACH, since the init code can make calls to methods like memset () which can go through the trampoline code. Fixes #59182. (#5678)
* mono/mono@b2a11ac756 Add new profile for monodroid tools (#5699)
* mono/mono@f77270c633 [monodroid] Fix Mono.Posix tests build (#5697)
* mono/mono@135dbb9c6d [mcs] Allows shadowing of probing pattern variables
* mono/mono@b683b3dc74 [System] Ignore FtpWebRequestTest.DownloadFile2_v6 test when IPv6 isn't available (#5695)
* mono/mono@dbf70d1083 Merge pull request #5693 from lateralusX/lateralusX/disable-stack-overflow-win-x64
* mono/mono@f0f4a22ae1 [coverage-profiler] Collect coverage data at IL seq point locations. (#5667)
* mono/mono@f86145e558 Merge pull request #5664 from lateralusX/lateralusX/mkbundle-windows-toolchains
* mono/mono@d7c22488d7 Bump version to 5.9.0 (#5692)
* mono/mono@ef7a4c0620 Prepare Mono for Android NDK with unified headers (#5680)
* mono/mono@4f673eac74 [System.Net.Http] Updates range check from 3741d16503a973a99c724bdab9a255a5f07a3637
* mono/mono@66205238fc Merge pull request #5636 from BrzVlad/fix-xmm-scan
* mono/mono@1004d95b6b [mcs] Implements C# 7.2 readonly structs
* mono/mono@4db06151be Disable none-working stack overflow implementation on Windows x64 full AOT.
* mono/mono@1bcf21e048 [w32file] Push win32 specific error to win32 specific implementation (#5665)
* mono/mono@abcca89bd4 [mcs] Adds minor langversion support
* mono/mono@56247cecbd Merge pull request #5656 from lateralusX/lateralusX/dynamic-static-windows-build
* mono/mono@3d47b20c62 [interp] fix using conv.u with string
* mono/mono@3aeeae6230 [jit] Fix using conv.u with string.
* mono/mono@adaf7fd65b [mcs] Allow properties and indexers of by-ref values to be set without setter
* mono/mono@9369ed6e23 [runtime] Store implmap_idx as a guint32 to avoid overflows if the implmap table has more than 64k rows. Fixes #59881.
* mono/mono@199d4da9ac Merged changes in master libmonoruntime into PR.
* mono/mono@216b92db17 Updated with review feedback.
* mono/mono@0f3ca07b42 Update msvc README file.
* mono/mono@8ae01a69f2 Add missing dependency for libmini.
* mono/mono@4c144cfacf Align libgc vcxproj with makefile.
* mono/mono@1091bd94fd Align libgcmonosgen vcxproj with makefile.
* mono/mono@8d22c47199 Align eglib vcxproj with makefile.
* mono/mono@975d820a75 Align libmonoruntime vcxproj with makefile.
* mono/mono@df03eb3fac Align libmonoutils vcxproj with makefile.
* mono/mono@6cb544f91d Fix libmini targets and filters.
* mono/mono@17392d380c Added labels to eglib and libmonoutils.
* mono/mono@05a3f528f7 Fix libmonoruntime targets and filters.
* mono/mono@fde8978893 Fix libmonoutils targets and filters.
* mono/mono@43e9ddc1fc Fix eglib targets and filters.
* mono/mono@52418d713f Drop use of def files for x86, x64 mono-2.0-sgen|boehm.dll Windows build.
* mono/mono@52e98abd6e Restructure of mono.sln and build properties to better fix static/dynamic library support.
* mono/mono@92576e31d2 Merge all static runtime libs into libmono-static.
* mono/mono@233bbcaaa3 Review feedback + drop VS2013 support.
* mono/mono@098e88f3a8 Merge pull request #5668 from kumpera/wasm-work-p4
* mono/mono@02a9ceaebb [ci] Small improvements for run-jenkins and collect-coverage. (#5669)
* mono/mono@edbc5c2334 Merge pull request #5675 from mono/glib-debug-symbols
* mono/mono@7751545573 Bump mono-extensions to fix build break (#5677)
* mono/mono@d8be089964 Bump NuGet.BuildTasks to get new updates and switch to `dev` branch (#5566)
* mono/mono@f99b88b812 Add glib to the list of packages with debugging symbols.
* mono/mono@bfc76bafbf [profiler] log profiler: limit method instrumentation to selected methods (#5517)
* mono/mono@30cddad5fb [jit] Fix the saving of the 'cfg->ret_var_set' flag when inlining, it was set to FALSE before it was saved, causing invalid code to be generated in some cases when doing nested inlining. Fixes #59608. (#5654)
* mono/mono@34866ac4c2 [mcs] Initial by ref returns and variables support
* mono/mono@56779410e8 Major improvement of Visual Studio toolchain and Windows SDK support in mkbundle.
* mono/mono@fe1eeb0724 [wasm] We can't free memory in wasm as it uses the malloc mmap backend.
* mono/mono@22187e8df1 [wasm] Add new missing signature.
* mono/mono@6f20e306e0 [wasm] Disable test that doesn't work with WASM
* mono/mono@f84533a8de [amd64] Save missing register
* mono/mono@c334db5e2c [arm64] Scan simd registers on apple
* mono/mono@ef8bc5028e [runtime] Avoid indirection when building MonoContext on darwin
* mono/mono@c889057d64 [arm64] Add the full neon regs to the context
* mono/mono@161c807083 [amd64] Add XMM registers to MonoContext on linux

Diff: ce89e4c5fa...4116105b8b

https://bugzilla.xamarin.com/show_bug.cgi?id=40699
https://bugzilla.xamarin.com/show_bug.cgi?id=49308
https://bugzilla.xamarin.com/show_bug.cgi?id=56003
https://bugzilla.xamarin.com/show_bug.cgi?id=56194
https://bugzilla.xamarin.com/show_bug.cgi?id=58400
https://bugzilla.xamarin.com/show_bug.cgi?id=58411
https://bugzilla.xamarin.com/show_bug.cgi?id=59080
https://bugzilla.xamarin.com/show_bug.cgi?id=59182
https://bugzilla.xamarin.com/show_bug.cgi?id=59184
https://bugzilla.xamarin.com/show_bug.cgi?id=59239
https://bugzilla.xamarin.com/show_bug.cgi?id=59393
https://bugzilla.xamarin.com/show_bug.cgi?id=59608
https://bugzilla.xamarin.com/show_bug.cgi?id=59664
https://bugzilla.xamarin.com/show_bug.cgi?id=59832
https://bugzilla.xamarin.com/show_bug.cgi?id=59881
https://bugzilla.xamarin.com/show_bug.cgi?id=59956
https://bugzilla.xamarin.com/show_bug.cgi?id=59967
https://bugzilla.xamarin.com/show_bug.cgi?id=60028
https://bugzilla.xamarin.com/show_bug.cgi?id=60029
https://bugzilla.xamarin.com/show_bug.cgi?id=60175
https://bugzilla.xamarin.com/show_bug.cgi?id=60224
https://bugzilla.xamarin.com/show_bug.cgi?id=60233
https://bugzilla.xamarin.com/show_bug.cgi?id=60255
https://bugzilla.xamarin.com/show_bug.cgi?id=60267
https://bugzilla.xamarin.com/show_bug.cgi?id=60288
https://bugzilla.xamarin.com/show_bug.cgi?id=60422
https://bugzilla.xamarin.com/show_bug.cgi?id=60435
https://bugzilla.xamarin.com/show_bug.cgi?id=60505
https://bugzilla.xamarin.com/show_bug.cgi?id=60539
https://bugzilla.xamarin.com/show_bug.cgi?id=60545
https://bugzilla.xamarin.com/show_bug.cgi?id=60634
https://bugzilla.xamarin.com/show_bug.cgi?id=60680
https://bugzilla.xamarin.com/show_bug.cgi?id=60771
https://bugzilla.xamarin.com/show_bug.cgi?id=60860

* [integration] bump maccore

* Test fix for issue with stateful script loading

* Install only selected files to mimic Mono NO_INSTALL flag

* Exclude lines with comments from profile source files

* Bump 2017-12 mono

* Bump mono

* Bump Mono

* Update linker sources location

* More linker updates

* More build fixes

* Bump to mono:2018-02

* [tests] reflect category rename of NotWorkingInterpreter to NotWorkingLinqInterpreter

see 746a3d0214

* [tests] update regular expression for extracting mono version

* version specifier can have up to four tuples
* single tuples can be more than a single digit

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@01e35bc383 ignore LocalId test on XAMMAC_4_5 too
* mono/mono@4e374e8cea [2018-02] [reference-assemblies] Fix public key for some newer v4.7.1 facades (#6865)
* mono/mono@94a8a589c8 Add stubs for Interop.NetSecurityNative
* mono/mono@fd7c5cdac6 [2018-02] [System.Data] Add missing API (fixes 6767) (#6825)
* mono/mono@942dd07c65 [ci] Add setting artifacts.json status
* mono/mono@f403697225 [ci] Add Windows .msi PR build (#6815)
* mono/mono@20ada1bc3b [2018-02] [runtime] Add a 'frame_addr' field to MonoStackFrameInfo, which is equal to either interp_frame or ctx->sp. (#6813)

Diff: 3320f45d98...01e35bc383

* Fix debug spew

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@f3c1fcd7c9 [System]: Revert my latest WebResponseStream changes. (#6887)
* mono/mono@268f2ac419 Bump bockbuild to get new gtk+ repo location
* mono/mono@ebb26ab546 Bump bockbuild to add gtk# generator fix (#6883)

Diff: 01e35bc383...f3c1fcd7c9

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@7126712f86 [System]: Set NetworkStream.ReadTimeout in WebConnection.InitConnection(). (#6898)
* mono/mono@07a5c686e0 Handle arguments of type ArgVtypeOnStack in the dyn call code. Part of the fix for #59184.
* mono/mono@bc64a17db8 [bcl] Fix more assembly identity mismatches (#6870)

Diff: f3c1fcd7c9...7126712f86

https://bugzilla.xamarin.com/show_bug.cgi?id=59184

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@e9fa8a306d WebConnection.Connect() needs to probe all IP addresses.

Diff: 7126712f86...e9fa8a306d

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@93705443b6 bump nunit-lite
* mono/mono@5f626db882 [debugger] disable StepOutAsync test because it's flaky
* mono/mono@6cb693c4b5 Bug 60088 - Assertion at ../../../../external/mono/mono/mini/debugger-agent.c:4765, condition `array->len == 1' not met Problem was that I didn't consider `async void` method when adding that assert (#7105)
* mono/mono@e96f9fbb4a [2018-02] [sdks] Fix for XA integration (#7104)
* mono/mono@6559a504ed [ci] Disable monodoc tests on Windows for now
* mono/mono@c62864c98e Disable some PngCodecTest that have trouble on CI right now
* mono/mono@c5accf5ebc Bump aot file format version because of 7cac757e60cd61aa070f7e0fffca225364f58c0c. (#7082)
* mono/mono@470256aca5 Add denied assembly versions from previous ms extensions nugets
* mono/mono@f0f76abc30 Emit the weak field indexes table using the MONO_AOT_TABLE code, so it works with separate aot data files/bitcode.
* mono/mono@e7e28f4b9d Pass null-terminated string for logging
* mono/mono@00dec1f0c0 [2018-02] Fix ios sdk. (#7027)
* mono/mono@e0c46d9114 Bump mono/NUnitLite (#7006)
* mono/mono@ba542c0b1e [2018-02] Update F# to 4.1.33
* mono/mono@72aea0056b Revert mkbundle defaulting behavior made in ca8b8bd346
* mono/mono@0dfa4f85a9 Unlock loader lock on error paths
* mono/mono@d956447d56 [System.Data] Add missing api
* mono/mono@4aa717dc82 [2018-02] [runtime] Make icall tables loadable. (#6944)
* mono/mono@d8e28e14a5 Merge pull request #6952 from monojenkins/backport-pr-6890-to-2018-02
* mono/mono@176f127c1b disable test_42_arm64_dyncall_vtypebyval
* mono/mono@764b03fcab nuget-hash-extractor: Add msbuild extensions nuget to list of nugets to
* mono/mono@1df45be2e9 nuget-hash-extractor: Add support for handling nuget with multiple

Diff: e9fa8a306d...93705443b6

* Bump mono min version to avoid nuget restore issue

https://github.com/mono/mono/issues/6788

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@b242e82ba4 Add ldflags for bitcode (#7144)
* mono/mono@9c9d5d9e22 Fix the Android xattr check to not disable it on all other platforms. (#7146)
* mono/mono@f8ed9bcd12 [2018-02] [corlib] Fix RuntimeFeatureTest.NoNewFeaturesAdded on mobile (#7151)
* mono/mono@578cfcd146 [2018-02] [sdks] Fix for XA integration (#7109)

Diff: 93705443b6...b242e82ba4

* Bump Touch.Unit

Commit list for spouliot/Touch.Unit:

* spouliot/Touch.Unit@4ac4e32 [TouchRunner] do not use FinallyDelegate in Runner, because it requires remoting API to be available (#49)

Diff: b5b227e80b...4ac4e32500

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@daace66339 [2018-02] [xbuild] add property that is available in msbuild (#7202)
* mono/mono@fd18515516 Bump bockbuild for https://github.com/mono/bockbuild/pull/62 (#7206)
* mono/mono@c68cc6a4f4 Emit the same instances in hybrid aot mode as in full aot mode.
* mono/mono@4169af750b Disable partial sharing during JITting, its only been tested in full aot mode, and doesn't seem to work with JITted methods. Fixes https://github.com/mono/mono/issues/7085.
* mono/mono@ed22f9fa84 Add hybrid aot tests.
* mono/mono@d389ff9ff6 Remove reflection calls for value has to be set
* mono/mono@d1f461c5a3 Expand "ignore" functionality (#7154) (#7176)
* mono/mono@4e29f2ef9a [jit] Handle more cases for gsharedvt constrained calls.

Diff: b242e82ba4...daace66339

* bump system mono to include xbuild workaround for fsharp

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@33b47292c3 bump nunitlite
* mono/mono@df0a29e779 Merge mxe-Win32 and mxe-Win64 targets since we are building both in XA anyway
* mono/mono@6ccf73c8c8 Pass only the imt argument if both imt and rgctx arguments are required.
* mono/mono@d6b6fc61f1 Bump bockbuild to get curl error changes
* mono/mono@8249522f23 Fix the test name.
* mono/mono@2623bc3045 Magic interfaces requires the complex stelemref to handle arrays. Fixes gh #6266
* mono/mono@3be3714b6e add another signature for interp_in wrappers

Diff: daace66339...33b47292c3

* unbump touch.unit

* bump touch.unit

Commit list for spouliot/Touch.Unit:

* spouliot/Touch.Unit@1c41c75 Revert "[TouchRunner] do not use FinallyDelegate in Runner, because it requires remoting API to be available (#49)" (#50)
* spouliot/Touch.Unit@4ac4e32 [TouchRunner] do not use FinallyDelegate in Runner, because it requires remoting API to be available (#49)

Diff: b5b227e80b...1c41c75983

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@769bf9ef25 nuget-hash-extractor: Add msbuild extensions nuget version from vs15.6 msbuild branch
* mono/mono@878a54030a nuget-hash-extractor: Change the nuget repo name to use for
* mono/mono@a849f9a6e8 Fix path clobbering when trying to shadow copy siblings
* mono/mono@d9aa6f4083 Use attribute(deprecated) instead of attribute(error). (#7369)
* mono/mono@c0b76ff9ae Don't throw NotImplementedException in Dispose()
* mono/mono@5cef19dcd2 [2018-02][runtime] Don't assert in mono_class_is_assignable_from on iface gtd (#7290)
* mono/mono@ffe180c47f Make it build.
* mono/mono@c627c1b4b6 Bump linker.
* mono/mono@d0e7df4717 [System]: Enable some System.Net.Requests tests from CoreFX. (#7339)
* mono/mono@28c171a337 [2018-02] [System]: Use new `WebCompletionSource` instead of `TaskCompletionSource`. (#7298)
* mono/mono@0c8f0774ce Merge pull request #7336 from monojenkins/backport-pr-7321-to-2018-02
* mono/mono@6a1b416592 Fix gdb not being used for native stacktraces in some cases
* mono/mono@078760db9b [2018-02] [TermInfo] support new file format terminfo2 introduced with ncurses6.1 (#7308)
* mono/mono@ffc643d10c Fix VirtualMachine.CreateEnumMirror () so it works with types from non-root domains.
* mono/mono@6ed6a1b568 Check if we are exceeding the worker count limit

Diff: 33b47292c3...769bf9ef25

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@fa1ec4ac4d [packaging] Support setting the FULL_VERSION number via env vars (#7414)
* mono/mono@30aadcaa3a [2018-02] [metadata] split IL generation code into seperate compilation units. (#7375)
* mono/mono@214321dee5 [msbuild] Bump to track msbuild's mono-2018-02 branch (#7395)
* mono/mono@413f2fb976 Reenable HttpRequestIgnoreBadCookies in monotouch. (#7391)
* mono/mono@020ac2de89 Problem building on Arch linux #7200 https://github.com/mono/mono/issues/7200 Three styles: 1. LIBS="$LIBS -lfoo" -- common and probably works 2. LIBS+="-lfoo" -- was here and does not work 3. LIBS+=" -lfoo" -- should work (#7383)

Diff: 769bf9ef25...fa1ec4ac4d

* Update linker tests using reflection not to be caught by linker reflection heuristic

* More linker reflection checks updates

* Fixes Bug59015 test to check for method is was intented to

* [mmptest] fix linker test in link-safe-1

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@279d7e230f [2018-02] [threads] Fix race between abort socket syscall and thread shutdown (#7521)
* mono/mono@2ce1d5f3d5 Comment/stub out some unused icalls to prevent problems with AOT.
* mono/mono@668baf1915 [acceptance-tests] Actually disable gcsuppressfinalize.exe test
* mono/mono@2201952d9a WebRequestStream now throws correct exception on cancellation (#7074).
* mono/mono@4d3e9d53b2 Fix resolution of interfaces in classes implementing IEnumerator. Fixes #59400
* mono/mono@2476d2ac06 Move the check for open constructed types later in mono_jit_compile_method_with_opt (), this function can receive gshared methods in llvmonly mode. (#7504)
* mono/mono@91fe1eb5f5 Fix generated file when passing --bundled-header (#7510)
* mono/mono@bb0c123e74 Use runtime template for iOS
* mono/mono@e965e1647d Use runtime template for Android
* mono/mono@a652297384 Create common runtime compilation template
* mono/mono@685d39238a Have RELEASE be empty when CONFIGURATION != 'release'
* mono/mono@3648ace2b9 Move common targets
* mono/mono@b62bfdcb55 An array is not an IEnumerator`1
* mono/mono@9f2841c3a0 An array is not an IEnumerator`1
* mono/mono@6f90188e9f Add IEnumerator`1 to MonoDefaults struct
* mono/mono@84027bddaa Remove compiler config sections for types which cannot be instantiated
* mono/mono@66f19a974a Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted
* mono/mono@99b7f59ddc [2018-02] Fix for gcc 4.4; nominal support for older. (#7435)
* mono/mono@f28abdbebd Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic object identifier
* mono/mono@2dc56b5a60 [2018-02] [corlib] Ignore TimeZoneTest.TestCtors on iOS under certain conditions due to an Apple bug. (#7428)
* mono/mono@58d02a9603 [acceptance-tests] Disable gcsuppressfinalize.exe test that started failing

Diff: fa1ec4ac4d...279d7e230f

https://bugzilla.xamarin.com/show_bug.cgi?id=59400

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@ed56e90aca [2018-02] [Facades] Add missing Facades that exist in .NET 4.7.1 (#7551)
* mono/mono@57e18b15d0 [sgen] Fix the clearing of bits in the gc descriptor bitmap when using weak fields. Fixes #7378.

Diff: 279d7e230f...ed56e90aca

* [linker] update facades list for .NET 4.7.1

see https://github.com/mono/mono/issues/7573

* Force libMonoPosixHelper usage in test to work around mono linker improvements

- https://github.com/mono/mono/issues/7516
- These tests will be refactored \ improved in https://github.com/xamarin/xamarin-macios/issues/3713

* [msbuild] fix creation ouf output dependency (#3747)

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@d67d75a4f3 Disable delegate-15.exe in the full-aot profile.
* mono/mono@6036b45bce Avoid calling mono_class_vtable () for open constructed types.
* mono/mono@9136f4c1a0 only target macOS, HOST_DARWIN includes iOS etc. as well
* mono/mono@abb82546d7 [2018-02] [Facades] Make System.Net.Http.Rtc.dll a net_4_x only facade (#7595)
* mono/mono@6af13f6e83 Add icall to configure MERP options / enable it
* mono/mono@c684567bd7 Add optional Microsoft Telemetry unmanaged dumper
* mono/mono@4ab5e8a495 Update source file location from commit d4816ef1abcfc5b3dea41a87fe5a7a4c4a3781ed

Diff: ed56e90aca...d67d75a4f3

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@3577465fcd add LL suffix to constant in order to prevent overflowing on 32bit systems
* mono/mono@7d9e106c03 1000ns = 1us and 1us = 10ticks
* mono/mono@3931767dca reduce compiler warnings
* mono/mono@deb3474e7c add regression test for github issue 7646
* mono/mono@27c7a4b01e use utimes if available in order to set subsecond information on access and write time
* mono/mono@da5b39d785 factor setfiletime
* mono/mono@7f69ff87b5 use CONVERT_BASE in more places
* mono/mono@e33bf27c9a replace SECMULT with TICKS_PER_SECOND
* mono/mono@79030a3284 remove unused mono_w32file_get_times ()
* mono/mono@e74d4a6e31 Merge pull request #7686 from mono/backport-gh-7584
* mono/mono@c2fe39f13e Revert "Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413"
* mono/mono@0d8de253cb [System.Net] Replace use of obsolete `SupportsIPv6` property.
* mono/mono@e9c512092d Increase the buffer size in emit_exception_debug_info ().
* mono/mono@08a7043b66 [2018-02] [System]: Introduce `WebCompletionSource\u003cT\u003e` and use it in `WebOperation`. (#7641)
* mono/mono@cb89a1575c Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413
* mono/mono@1a0508a58c Handle multiple segments in IsolatedStored::GetFileNames. Fixes bxc #11771

Diff: d67d75a4f3...3577465fcd

* Bump system mono

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@c17d8c6dcd remove WildcardConnect () on WatchOS
* mono/mono@e29f146ab3 [2018-02] [sgen] Use current nursery size when computing allowance (#7648)
* mono/mono@535bfc5d84 Add csc-dim as a prototype if default interface implementation
* mono/mono@5b66de0bf0 [2018-02] [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify building of support library (#7688)
* mono/mono@a6c7b9eca4 [msbuild] Bump msbuild to pick up fix for issue #7184 (#7666)

Diff: 3577465fcd...c17d8c6dcd

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@67a2468db9 support increment and decrement of nint/nuint (#7790)
* mono/mono@da0e172ae5 improve error message and add another interp_in signature (#7789)
* mono/mono@1c9d8aad07 [sdks] Fix the ios sdk build. (#7801) (#7824)
* mono/mono@c6fc176f5c Fix Android build for toolchain (#7818)
* mono/mono@c9bf7a3878 Disable the interpreter on ios device builds. (#7795)
* mono/mono@d37075a949 [System] Disable a test file to resolve compilation error
* mono/mono@42fc0bd51f Bump corefx to bring a fix for #7696
* mono/mono@2487301faf Fix Android build for mxe (#7782)
* mono/mono@0d6be4da5e [sdks] Fix Android build on Linux (#7777)
* mono/mono@ebbed2bb87 Revert "Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)" (#7751)
* mono/mono@e5bad88ebb Fix Android build (#7769)
* mono/mono@238c21cf77 Fix a race condition that was exposed by #7358 (see #7668).
* mono/mono@2fbd5a16a3 [runtime] Fix file handle leak with dedup+aot (#7721)
* mono/mono@a13c12ac99 [2018-02] [loader] Don't load framework Facade assemblies that are older than expected. (#7708)
* mono/mono@bdf405fae4 Merge pull request #7726 from mono/backport-new-boottime-2018-02
* mono/mono@ce612bb49e Fix partially shared constrained calls in llvmonly mode.
* mono/mono@0a3d40ac60 Avoid aot-ing the bcl libs twice in make fullaotcheck/llvmonlycheck.
* mono/mono@07d5a031d4 [runtime] Don't use clock_gettime on WatchOS and tvOS.
* mono/mono@ff546b9d8b [runtime] Don't use clock_gettime in MacOS.
* mono/mono@9922d1af20 [runtime] Fix mono_msec_boottime () so it compiles on older ios versions, clock_gettime () is only available from ios 10. (#7671)
* mono/mono@875240538e [mono-time] Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413

Diff: c17d8c6dcd...67a2468db9

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@b250b4a657 [2018-02] [sdk] sync ios and android changes from master into `2018-02` (#7831)
* mono/mono@77fc4cfa2e Remove suspicious mono_gchandle_free
* mono/mono@3984508a04 [icall] remove DISABLE_PROCESS_HANDLING (#7827)

Diff: 67a2468db9...b250b4a657

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@dcdd956e1b [perfcounters] fix alignment issue on 32bit
* mono/mono@811e3b4dcd [sdks] Fix LLVM build for XA (#7919)
* mono/mono@25aba4e86e [2018-02] [sdks] Fix LLVM build on Linux for XA + Fix MXE usage on non-Darwin platforms (#7912)
* mono/mono@ae7f365c06 [sdks] Fix usage of MXE for XA (#7898)
* mono/mono@cda8574a88 [jit] Add signature checking for CALLI. (#7880)
* mono/mono@a6b0e1ccbe [2018-02] [sdks] Pass LLVM_SRC from XA to use `xamarin-android/external/llvm` + Pass IGNORE_PACKAGE_MXE from XA + Only checkout specific MXE and LLVM commit when cloning (#7895)
* mono/mono@7ee378c904 [sdks] Pass MXE_SRC from XA to use `xamarin-android/external/mxe` (#7890)
* mono/mono@511ca9f507 Whitelist illinkanalyzer in macOS package (#7862)
* mono/mono@88b5266376 Merge pull request #7851 from monojenkins/backport-pr-7849-to-2018-02
* mono/mono@4aa9fd41b8 [msbuild] Bump to pick up updates (#7846)
* mono/mono@4bf541a969 [System] Makes TLS providers linker friendly
* mono/mono@6c324b91b2 [corlib] Restores ConcurrentDictionary serialization support.

Diff: b250b4a657...dcdd956e1b

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@2c564f83f2 [System]Fix memory leak in the web stack related to `Task.Delay` (partial fix of #7356).
* mono/mono@3c52f0a4a9 [SDKS] Fix Android SDK build on Linux (#8023)
* mono/mono@c5f99aa4dc [interp] do not bake object reference into code stream
* mono/mono@1e35db0ae2 [interp] fix i4<>i8 conversion for builtin types, it was inverted (#7986)
* mono/mono@88f5058a33 [sdks] Fix MXE_PREFIX for XA (#8010)
* mono/mono@0d5eb5c9bb [sdb] Add reference counting for single step requests, they can be accessed concurrently by the single step processing code and the event request clearing code. Fixes #7137. (#7972)
* mono/mono@723f194cdc [2018-02] [sdks] Add provisioning for Android SDK and NDK (#7979)
* mono/mono@a5e4482376 [System] Disable SocketTest.AcceptBlockingStatus (#7977)
* mono/mono@95cc49a65c [2018-02] [Facades] Add System.Memory facade to mobile profiles (#7967)
* mono/mono@dea448aa83 Disable building btls/ and support/ on the bcl build, they are not needed.
* mono/mono@21cef8b793 [runtime] Add a --disable-btl-lib configure option to disable the building of the btls lib, but compile the managed code with btls support.
* mono/mono@0ba54d6bdd [ppc] use ucontext_t
* mono/mono@c3e00ab9bc [runtime] Add regression test for nested famility visibility.
* mono/mono@30b5b2b188 [runtime] Fix class visibility check for protected nested classes. Fixes #7657.
* mono/mono@29adf3012f Bump API snapshot submodule
* mono/mono@d6fde73640 [corlib] Update linker descriptor with missing types
* mono/mono@572c33ae18 [corlib] Enable machine.config dependant version of CryptoConfig for net_4_x profile only

Diff: dcdd956e1b...2c564f83f2

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@19cc4c427a [runtime] Fix --disable-btls.
* mono/mono@e88bfbcbce [mcs] Implements C# 7.2 conditional ref expression
* mono/mono@7048fb45ab [sdks] Use wget in place of curl, it's installed by default on Linux (#8058)

Diff: 2c564f83f2...19cc4c427a

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@0fac09cf89 [sdks] Fix arguments passed to llvm on Linux (#8109)
* mono/mono@02d69477dd [mcs] Fixes codegen when probing reference type expression is known to pass and pattern variable has to be created (#8085)
* mono/mono@54f51bf701 [interp] use same domain as transform phase to register debug data for a method
* mono/mono@0ca09346e3 [SDKS] fix Linux (and possibly other OSes) build for Android (#8044)
* mono/mono@f5989de3b4 [mcs] Implements C# 7.2 stackalloc span conversion in conditional expression
* mono/mono@8ad8623646 [interp] workaround undefined behaviour in r8 to u1 cast

Diff: 19cc4c427a...0fac09cf89

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@363790b1ec [corlib] Implements CryptoConfig::AddAlgorithm on all profiles
* mono/mono@bf838da659 [w32file] Fix memory leak (#8114)
* mono/mono@c530c5182f [2018-02] Implement C#7 binary literals (#8119)
* mono/mono@e310966925 [2018-02] [Facades] Add System.Drawing.Common on mobile only (#8128)
* mono/mono@5c2ab44dec [mcs] Adds private protected modifier to the parser only

Diff: 0fac09cf89...363790b1ec

* Updates facades list

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@887d3ad27e [System] Don't use http://www.mono-project.com for test (#8147)

Diff: 363790b1ec...887d3ad27e

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@cea4294912 [corlib] Make more crypto oids work on mobile profiles when not linked out
* mono/mono@9e7efad7be [mcs] Fixes parameter check for interface types used with default parameters
* mono/mono@d0562a9e6f [sdks] Add support for building llvm unless the USE_PREBUILT_LLVM Make.config var is set. (#8017) (#8150)

Diff: 887d3ad27e...cea4294912

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@763e7f9d78 [system.net] disable some tests to unblock XI integration (#8205)
* mono/mono@35cb6bda95 [System.Net.Http] Use '*' as the host instead of '+' in the tests. Fixes xamarin/maccore#673.
* mono/mono@61da4c7a5f [eglib] GMarkup: allow all ASCII NameStartChar and NameChar except ':'
* mono/mono@2710e67296 [sdks] Add ANDROID_BUILD_TOOLS_DIR to differentiate it from ANDROID_BUILD_TOOLS_VERSION (#8192)
* mono/mono@dbf27d49ad [sdks] Fix typo (#8187)
* mono/mono@02390a7414 [sdks] Fix build (#8183)

Diff: cea4294912...763e7f9d78

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@4a00c501b2 [2018-02] Harden JIT job control against cctors deadlocking. (#8235)
* mono/mono@34b31f05f5 [2018-02] Fix timestamp for file copy (#8247)
* mono/mono@8e08947e1c [sdks] Fix typo + Fix verbosity of unzip-android-archive.sh (#8243)
* mono/mono@d96186b5e8 [w32handle] Lower minimum memory usage (2nd attempt) (#8154)

Diff: 763e7f9d78...4a00c501b2

* Bump to mono:2018-02

Commit list for mono/mono:

* mono/mono@64ec2dd3eb [corlib] SynchronizationContext does not work on non-root AppDomain on Android (#8296)
* mono/mono@9bbc930d62 [w32file-unix] fix mistake in 8430155946c31f0f3f5f04017eebd79ac15e566d (#8299)
* mono/mono@891c01eb6e [2018-02] [runtime] Add public API to set the pending exception. (#8280)
* mono/mono@e03516d11f [mcs] Implements C# 7 digits separators

Diff: 4a00c501b2...64ec2dd3eb

* Bump to mono:2018-02

Another bump to verify fix for
https://github.com/xamarin/maccore/issues/628

Commit list for mono/mono:

* mono/mono@6c5b8bcc39 [sdks] Fix mktemp parameters (#8324)
* mono/mono@b1dda64bda [corlib] Fix TimeZoneInfo.Local when /usr/share/zoneinfo is a symlink (#8304)

Diff: 64ec2dd3eb...6c5b8bcc39

* Bump to mono/2018-02/9061f77e

Commit list for mono/mono:

* mono/mono@9061f77e7f [System.Net] do not use Thread for SocketTest.TestSelect1 (#8369)
* mono/mono@700f316825 Fix mono_perfcounter_instance_exists to match prototype when #ifndef DISABLE_PERFCOUNTERS. (#8335)
* mono/mono@12d764f5a0 Remove unused signal.h include in interp.c
* mono/mono@638a7ed3b0 [corlib] Disable failing test on XA (#8352)

Diff: 6c5b8bcc39...9061f77e7f
2018-04-25 13:56:37 -04:00
Chris Hamons 3c5a4989a8 [d15-7][msbuild] Fix AOT options from IDE (#3916)
* Add failing test for tag issue

* [msbuild] Update msbuild to use correct XM AOT variables

- The IDE saves out AOTMode and HybridAOT but msbuild was older names
2018-04-17 21:15:12 -04:00
Vincent Dondain 0a9453c1f2 [msbuild] Use a response file in 'MmpTaskBase' (#3927)
- Fixes #3698: [msbuild] Use response file for mmp's msbuild task
(https://github.com/xamarin/xamarin-macios/issues/3698)
- Update Common/Driver to log arguments for all verbosity levels except quiet.
  This makes it so mmp's /verbose when used in a response file prints the provided arguments.
- No test yet because of lack of Xamarin.Mac msbuild task test infrastructure.
  See: https://github.com/xamarin/xamarin-macios/issues/3926
2018-04-14 16:13:14 -04:00
Jeffrey Stedfast 6f3b277df6 [xcode9.4][msbuild] Catch ArgumentException if IBToolTask fails to load plist o… (#3940)
Fixes the stack trace spew in https://devdiv.visualstudio.com/DevDiv/_workitems/edit/595179
2018-04-13 16:15:36 -04:00
Jeffrey Stedfast 8fe4ebf146 [msbuild] Fixed TargetDevice typo (#3924)
Fixes issue #3922
2018-04-13 08:54:41 -04:00
Jeffrey Stedfast bb89506eb1
[msbuild] Catch ArgumentException if IBToolTask fails to load plist o… (#3905)
* [msbuild] Catch ArgumentException if IBToolTask fails to load plist output

Fixes the stack trace spew in https://devdiv.visualstudio.com/DevDiv/_workitems/edit/595179

* [msbuild] Catch all exceptions in XcodeCompilerToolTask's manifest loader
2018-04-11 10:28:09 -04:00
Chris Hamons 659a74cc36
[msbuild] Fix AOT options from IDE (#3914)
- The IDE saves out AOTMode and HybridAOT but msbuild was honoring older names
2018-04-10 13:42:42 -05:00
Vincent Dondain aa27dba548 [msbuild] Skip reference assemblies passed to mtouch (#3791) (#3889)
- Fixes issue #3199: Could not AOT the assembly System.Runtime.CompilerServices.Unsafe.dll (MT3001)
  (https://github.com/xamarin/xamarin-macios/issues/3199)
- Test case: https://www.dropbox.com/s/kxt3isgzn74nq35/Issue3199.zip?dl=0

### Problem

Given a Nuget Package added via the "package reference" mechanism and the said package having netstandard 'lib' **and** 'ref' folders;
MTouch was getting reference assemblies and was trying to AOT them. This resulted in an error as those assemblies are only facades.

### Solution

'ResolveNuGetPackageAssets' computes the NuGet packages using their json asset file, adds the full assemblies to 'ReferenceCopyLocalPaths' and outputs the resolved references via '_ReferencesFromNuGetPackages'.

This is exactly what "Microsoft.NuGet.Build.Tasks"'s 'ResolveNuGetPackageAssets' target does.
2018-04-06 17:06:27 -04:00
Vincent Dondain e297e99378
[msbuild] Skip reference assemblies passed to mtouch (#3791)
- Fixes issue #3199: Could not AOT the assembly System.Runtime.CompilerServices.Unsafe.dll (MT3001)
  (https://github.com/xamarin/xamarin-macios/issues/3199)
- Test case: https://www.dropbox.com/s/kxt3isgzn74nq35/Issue3199.zip?dl=0

### Problem

Given a Nuget Package added via the "package reference" mechanism and the said package having netstandard 'lib' **and** 'ref' folders;
MTouch was getting reference assemblies and was trying to AOT them. This resulted in an error as those assemblies are only facades.

### Solution

'ResolveNuGetPackageAssets' computes the NuGet packages using their json asset file, adds the full assemblies to 'ReferenceCopyLocalPaths' and outputs the resolved references via '_ReferencesFromNuGetPackages'.

This is exactly what "Microsoft.NuGet.Build.Tasks"'s 'ResolveNuGetPackageAssets' target does.
2018-03-27 22:39:02 -04:00
Chris Hamons 1d72f45dfd
Binding project must use csc not mcs (#3795)
- Fix XM and XI binding projects to use csc instead of mcs
- Add BindingProjectTest to verify csc not mcs for XM
- In non-msbuild use cases, removing -sdk params requires adding System/mscorlib so btouch now knows to add those references.
- Obsolete a few arguments to btouch
2018-03-27 14:31:27 -05:00
Chris Hamons 371a1d54e7
[macos] Fix XM binding projects to work with Full
* Revert previous revert (9ba23946d1) 
* Correctly fall back to Modern if tagless binding projects
* Rework binding tests to cover all supported configurations
* Add XM_FORCE_MSBUILD env variable for mmp/msbuild mac tests for easy local checking
2018-03-21 14:27:53 -05:00
Jeffrey Stedfast 8690c7f44a [msbuild] Correctly determine whenther Xamarin.Mac builds require a provisioning profile (#3710) (#3733)
Fixes issue #3674

The problem is that the Xamarin.Mac targets did not set the
RequireProvisioningProfile property on the DetectSigningIdentity
task which meant that it defaulted to 'false'.

When that property is 'false', the DetectSigningIdentity logic
would shortcut to not doing a provisioning profile lookup.

This was therefor causing the build to not use a provisioning
profile which caused the build to improperly codesign the app
bundle.
2018-03-20 16:12:27 -05:00
Rolf Bjarne Kvinge c8e3b94f06
[msbuild] Fix detecting already signed executables. (#3743)
The MSBuild tasks will codesign an executable if the executable's timestamp is
later than `_CodeSignature/CodeResources`'s timestamp (or if
`_CodeSignature/CodeResources` doesn't exist).

Unfortunately, the codesign executable modifies both of those files, and the
executable last. This means that even just after running codesign, the
executable's timestamp might be later than `_CodeSignature/CodeResources`'s
timestamp (due to HFS+'s one-second timestamp resolution, this might happen
all within the same second, which means that this is a random issue: the
problem only occurs if the executable was modified at least a second later
than `_CodeSignature/CodeResources`.)

So make sure to touch `_CodeSignature/CodeResources` after running codesign,
so that the next time a build occurs (with no modifications), we don't resign
needlessly.

Fixes this (random) test failure when running the MSBuild tests:

    1) Test Failure : Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications
         #1: ../MySingleView/bin/iPhoneSimulator/Debug/MySingleView.app/MySingleView
      Expected: 2017-11-30 10:04:20.000
      But was:  2017-11-30 10:04:22.000

Fixes https://github.com/xamarin/maccore/issues/592.
2018-03-19 15:34:24 +01:00
Jeffrey Stedfast 37c1337587 [msbuild] Correctly determine whenther Xamarin.Mac builds require a provisioning profile (#3726)
Fixes issue #3674

The problem is that the Xamarin.Mac targets did not set the
RequireProvisioningProfile property on the DetectSigningIdentity
task which meant that it defaulted to 'false'.

When that property is 'false', the DetectSigningIdentity logic
would shortcut to not doing a provisioning profile lookup.

This was therefor causing the build to not use a provisioning
profile which caused the build to improperly codesign the app
bundle.
2018-03-13 08:15:03 -05:00
Chris Hamons 8d57e6bcf3 Revert "[macOS][msbuild] Fix binding projects under Full to resolve to correct libs (#3672)" (#3727)
This reverts commit d5b50765f5.
2018-03-13 10:38:14 +01:00
Jeffrey Stedfast be4754e9f5
[msbuild] Correctly determine whenther Xamarin.Mac builds require a provisioning profile (#3710)
Fixes issue #3674

The problem is that the Xamarin.Mac targets did not set the
RequireProvisioningProfile property on the DetectSigningIdentity
task which meant that it defaulted to 'false'.

When that property is 'false', the DetectSigningIdentity logic
would shortcut to not doing a provisioning profile lookup.

This was therefor causing the build to not use a provisioning
profile which caused the build to improperly codesign the app
bundle.
2018-03-12 14:30:46 -04:00
Chris Hamons d5b50765f5
[macOS][msbuild] Fix binding projects under Full to resolve to correct libs (#3672)
- Fixes https://github.com/xamarin/xamarin-macios/issues/3608
- Refactor and clean up msbuild to be more consistent between binding and "normal" workloads
- Comment on the inconsistencies that are too large to fix in one PR
- Write some actual tests for binding projects to detect regressions
- Due to lack of redirect support these tests are only xbuild current, but I ran tests with msbuild to validate locally
2018-03-09 13:02:46 -06:00
Jeffrey Stedfast b0145de9c7 [msbuild] Always codesign libraries and frameworks (#3354)
Fixes issue #3289
2018-03-07 16:40:36 -05:00
Vincent Dondain 97ef51bf8b
[msbuild] Use a response file in 'MTouchTaskBase' (#3635)
The main cause of the warning: "warning MSB6002: The command-line for the 'MTouch' task is too long" was the number of references that can be passed to `mtouch`.
Now all the arguments are written in a response file which in turn is passed to `mtouch`.

- Fixes bug #56501: MSB6002 command-line for MTouch task is too long, > 32000 characters
(https://bugzilla.xamarin.com/show_bug.cgi?id=56501)
- The response file is created in the device specific folder, as `response-file.rsp`. It is re-created every time.
- Added an msbuild test to ensure the response file is created by `GenerateCommandLineCommands` and that it includes all the references.
- Introduce `AddLine` and `AddQuotedLine` which we use to populate the response file (and go to the next line).
- Move to C# 7 syntax for string replacement.
- Update all tests in `MTouchTaskTests` to use the response file since the arguments are no longer passed directly to `mtouch`.
- Update MT0018's documentation for response files.
2018-03-05 11:59:53 -05:00
Chris Hamons e4b62a84c1
Build with CSC instead of MCS (#3393) (#3578)
- Improve error messages from install-source when crashing
2018-02-26 09:20:54 -06:00
Chris Hamons 4ba4dfc813
Build with CSC instead of MCS (#3393)
- Improve error messages from install-source when crashing
2018-02-22 11:07:33 -06:00
Rolf Bjarne Kvinge 4c53980502
[tests] Automatically rebuild 'test.config' if it can't be found. (#3527)
* [tests] Automatically rebuild 'test.config' if it can't be found.

This condition usually happens when I 'git clean -xfd' in tests/ and then want
to run tests from xharness.

The manual step is to run "make" in tests/, but it's better if we can do it automatically.

* [msbuild] Add file to fix build.
2018-02-21 07:37:34 +01:00
Rolf Bjarne Kvinge f905427739
[tests] Share supporting code between the mtouch and mmp tests. (#3374)
* [tests] Share supporting code between the mtouch and mmp tests.

Create a new class 'BundlerTool', which now contains most of the code in
MTouchTool that's also applicable to mmp (and the new MmpTool class).

This will make it easier to share tests between the mtouch and mmp tests.

Some tweaks are still probably required, but this should get us most of the
way.

* [tests] Fix generator tests after changes in shared test code.

* [tests] Add new file to the MSBuild/XM tests.
2018-02-02 07:09:04 +01:00
Jeffrey Stedfast a61c7dc2ca
[msbuild] Use the proper MM vs MT error code prefix (#3360)
* [msbuild] Use the proper MM vs MT error code prefix

* Removed unused variable (artifact of debugging)
2018-01-31 09:56:45 -05:00
Jeffrey Stedfast cb51d9364d
[msbuild] Removed old logging conven ience method (#3352) 2018-01-30 13:51:01 -05:00
Jeffrey Stedfast d86b0822a4 [msbuild] Always codesign libraries and frameworks (#3341)
Fixes issue #3289
2018-01-29 10:56:03 +01:00
Rolf Bjarne Kvinge 398f430a55
[msbuild] Fix Makefile warning by removing duplicate target. (#3277)
Fixes this warning:

> Makefile:317: target `/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/msbuild/iOS' given more than once in the same rule.

because the same directory was listed twice.
2018-01-22 22:30:27 +01:00
Vincent Dondain 26d46dace5
[msbuild] Add missing {1} in LogMessage (#3271) 2018-01-19 13:14:11 -05:00
Vincent Dondain e6ee7c5e2f
[msbuild] Add missing {1} in LogMessage (#3262) 2018-01-19 10:27:14 -05:00
Jeffrey Stedfast e8bb3d2a99
[msbuild] Fixed embedding of provisioning profiles for tvOS (#3261)
Instead of hard-coding the platform as iOS for the EmbedMobileProvision
task, use the SdkPlatform to determine the appropriate platform to use
in the MobileProvisionIndex query.

This is a follow-up fix with near identical changes to the
CompileEntitlements fix for tvOS.
2018-01-18 17:09:45 -05:00
Jeffrey Stedfast ce5765771f
[msbuild] Resolve a Provisioning Profile if needed for iOS Sim builds (#3245) 2018-01-18 16:46:07 -05:00
Jeffrey Stedfast 7b663d11f1
[msbuild] Resolve a Provisioning Profile if needed for iOS Sim builds (#3244) 2018-01-18 16:29:14 -05:00
Jeffrey Stedfast 6d73e7634b
[msbuild] Fixed embedding of provisioning profiles for tvOS (#3255)
Instead of hard-coding the platform as iOS for the EmbedMobileProvision
task, use the SdkPlatform to determine the appropriate platform to use
in the MobileProvisionIndex query.

This is a follow-up fix with near identical changes to the
CompileEntitlements fix for tvOS.
2018-01-18 15:17:57 -05:00
Jeffrey Stedfast 2a7579b8ab
[msbuild] Fixed provisioning profile lookups for tvOS (#3243) 2018-01-18 10:30:32 -05:00
Jeffrey Stedfast bb2a0faca4 [msbuild] Fixed provisioning profile lookups for tvOS (#3216) 2018-01-17 15:18:34 -05:00
Jeffrey Stedfast 0059e3e5b5 [msbuild] DetectSigningIdentity fix for Mac when RequireProvisioningProfile is false (#3218)
* [msbuild] DetectSigningIdentity fix for Mac when RequireProvisioningProfile is false

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

* Disable some tests since they don't make correct assumptions anymore

* Added comment to explain why tests are disabled
2018-01-12 17:13:08 -05:00
Jeffrey Stedfast c22d033e1a
[msbuild] DetectSigningIdentity fix for Mac when RequireProvisioningP… (#3212)
* [msbuild] DetectSigningIdentity fix for Mac when RequireProvisioningProfile is false

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

* Disable some tests since they don't make correct assumptions anymore

* Added comment to explain why tests are disabled
2018-01-12 14:21:52 -05:00
Rolf Bjarne Kvinge 4b667e4700
[build] Fix makefiles to be compatible with remake v4.2.1. (#3184)
For some strange reason the following sometimes work with make v3.8.1:

    X/:
    	mkdir X

    X/Y: X
    	mkdir X/Y

Note how the second target specifies `X` as a dependency, but the actual
target to be executed is `X/` (additional trailing slash).

It does not work with remake (v4.2.1), nor in a simple test case like the one
above with make (v3.8.1), but it works in our own makefiles (which are
admittedly slightly more complicated).

Since it's trivial to fix, and I don't understand how it works in make in the
first place, I'm just changing it to what makes sense (and works everywhere):
remove trailing slashes from all directories that are used as targets.
2018-01-09 17:09:04 +01:00
Jeffrey Stedfast 30ae7d3d32 [msbuild] Tweak the codesign logic for iOS Simulator builds (#3180)
Don't *always* codesign, especially for Xcode 8 which seems to break.

iOS Simulator builds should only be codesigned if they require
Entitlements (signified by RequireProvisionProfile).
2018-01-08 15:59:26 -05:00
Jeffrey Stedfast fc723647c7 [msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3179) 2018-01-08 15:57:58 -05:00
Jeffrey Stedfast cfdf59dce4 [msbuild] Tweak the codesign logic for iOS Simulator builds (#3114)
Don't *always* codesign, especially for iOS8 which seems to break.

iOS Simulator builds should only be codesigned if they require
Entitlements (signified by RequireProvisionProfile).
2018-01-08 14:32:00 -05:00
Jeffrey Stedfast 316948e5d0 [msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3168) 2018-01-08 14:29:52 -05:00
Emanuel c84f0dac3d [msbuild] Fixes MoveTaskBase inclusion
MoveTaskBase inherits from Microsoft.Build.Tasks.Move, and Mono has a different implementation of it, so when building from a Mac we need to include XBuildMoveTaskBase.cs instead. The previous condition does no apply any more, because we're now using MSBuild to build, but the Move task implementation didn't change so it doesn't matter if we're using Xbuild or MSBuild.

This issue is preventing us (XVS) from merging features to our master branch
2017-12-14 19:37:15 -03:00
Vincent Dondain 808c67017d
[msbuild] Add support for optionally explaining why inapplicable certificates are not applicable (#3085)
Help fix #58251: When looking for valid signing certificates, print out each invalid certificate and state why it's not valid
(https://bugzilla.xamarin.com/show_bug.cgi?id=58251)
2017-12-12 14:25:04 -05:00
Jeffrey Stedfast b52a38bd33
[msbuild] Catch json parser exceptions to provide better error reporting (#2992)
* [msbuild] Catch json parser exceptions to provide better error reporting

This is in response to https://bugzilla.xamarin.com/show_bug.cgi?id=60536

* Added unit test
2017-12-12 13:54:09 -05:00
Vincent Dondain 565d710f4f
[msbuild] Don't run Xamarin.Analysis on library projects (#3084)
Avoid bug #59697: iOS Library projects fail CompileEntitlements when Analysis is enabled
(https://bugzilla.xamarin.com/show_bug.cgi?id=59697)

Note: bug #59697 happens because XIA0002_TestCloudAgentReleaseRule depends on `_CompileToNative` which
depends on `CompileEntitlements` which then requires the `AppBundleDir` parameter that isn't provided
for library project.

If we ever decide to enable Xamarin.Analysis on library projects we'll have to run a subset of the rules that
doesn't include rules like XIA0002 using the same condition this fix is using.
2017-12-05 16:35:29 -05:00
Manuel de la Pena 6135a6c4d8
[MSBuild] Do not set CFBundleDevelopmentRegion if not present. (#2779)
* [MSBuild] Do not set CFBundleDevelopmentRegion if not present.

This is a complicated fix. This is a regression introduced by Apple.
CFLocaleCopyCurrent(), used in the iOS code, will return the value of
the application's CFBundleDevelopmentRegion Info.plist key if all of the
following conditions are true:

* CFBundleDevelopmentRegion is present in the Info.plist
* The CFBundleDevelopmentRegion language is in the list of preferred
languages on the iOS device, but isn't the first one
* There are no localized resources (i.e. no .lproj directory) in the app
for the first preferred locale

This differs from iOS 10 where the presence of the
CFBundleDevelopmentRegion key had no effect.

Note that if the CFBundleDevelopmentRegion key is not present at all,
CFLocaleCopyCurrent() always returns the first preferred locale as it
did in iOS 10.

We are adding the key by default in the plist of the applications which confuses users since they do not see the key in the .plist added by the template. This commit removes it to be more explicit and help users understand the behaviour.
2017-12-01 16:52:25 +01:00
Jeffrey Stedfast a3692f4314 [msbuild] Codesign iOS Simulator builds using the '-' key. Fixes #59379 (#3060)
When codesigning iOS Simulator builds, it is important to note
that the codesign command itself cannot include the entitlements,
but the mtouch command *MUST* embed the entitlements using
-Xlinker.

https://bugzilla.xamarin.com/show_bug.cgi?id=59379
2017-11-29 15:26:29 -05:00
Jeffrey Stedfast 5645e3349a Revert "[msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3007)"
This reverts commit 2d4256ef15.
2017-11-29 09:22:22 -05:00
Jeffrey Stedfast 52912ee347 [msbuild] fixup 2017-11-28 11:25:17 -05:00
Jeffrey Stedfast d67cf5b59c [msbuild] Fixed CoreMLCompilerTaskBase 2017-11-28 11:22:17 -05:00
Jeffrey Stedfast 06227e9467 Fixed the build after a bad merge 2017-11-28 11:20:05 -05:00
Jeffrey Stedfast 7c7814e892
[msbuild] Added support for building CoreML models (#2714)
* [msbuild] Added support for building CoreML models

* [msbuild] Make sure to Dispose() processes after they're done

* Updated to use newer MLModel.Create() and MLFeatureValue.Create() methods

* Added SqueezeNet.txt to document SqueezeNet.mlmodel
2017-11-28 11:16:44 -05:00
Jeffrey Stedfast 2d4256ef15
[msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3007)
* [msbuild] Pack all iOS MSBuild Task assemblies into a single assembly

* Fixed the build

* Renamed ProcessArgumentBuilder to CommandLineArgumentBuilder

This is needed to prevent symbol conflicts with Xamarin.MacDev's
ProcessArgumentBuilder (which is functionally different from
Xamarin.MacDev.Tasks.Core's class of the same name).

* Fixed ILRepack logic for filtering dll's to repack

* Fixed building of Xamarin.iOS.Tasks.Tests now that X.iOS.Tasks.dll contains all symbols

* Updated Makefile now that only 1 iOS Task assembly needs to be distributed

* ILRepack Xamarin.Mac.Tasks as well

* Fixed up *.targets to specify The One Assembly To Rule Them All

* [xharness] Build MSBuild tests with MSBuild.

* Touch the ilrepack stamp file *after* invoking ILRepack, not before.

* Same for Xamarin.Mac.Tasks
2017-11-27 14:44:09 -05:00
Rolf Bjarne Kvinge e8d16c925b
[mtouch/mmp/bgen] Add support for response files. (#2808)
* [mtouch/mmp/bgen] Add support for response files.

This is the first part of the fix for #56501.

https://bugzilla.xamarin.com/show_bug.cgi?id=56501

* [tests] Make sure no single argument starting with a '@' is passed to mtouch unless it's a response file.

--assembly-build-target takes arguments starting with '@', for instance:

    --assembly-build-target @all=framework

which does not work anymore, because that's interpreted as a response file
(mtouch tries to read the file '@all=framework', which obviously doesn't
exist).

The fix is simple, don't put a space between the two arguments:

    --assembly-build-target=@all=framework

* Add --root-assembly to mtouch/mmp and make the MSBuild tasks use this new option.

This makes it possible to pass root assemblies starting with `@` to mtouch/mmp
without getting mistaken for response files.

* [msbuild] Always use the command-line option that takes an equals or colon.

Always use the command-line option that takes an equals or colon instead of a
space.

Do either of these:

    --foo=something
    --foo:something

instead of this:

    --foo something

so that `something` can start with an at (`@`) sign without being mistaken for
a response file.

* [msbuild] Fix tests according to recent task changes.
2017-11-16 16:02:34 +01:00
Sebastien Pouliot 395feca0d9 Merge branch 'xcode9.1' into master-merge-xcode91-take2 2017-11-03 10:30:07 -04:00
Jeffrey Stedfast b8995c5597 [msbuild] Set the target architecture in the Info.plist UIRequiredDev… (#2409)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58544

* Added unit test

* Removed support for ARMv6

* Removed CompileAppManifest.Architecture property and usage
2017-11-02 15:01:00 -04:00
Rolf Bjarne Kvinge ce323717be
Revert "[msbuild] Fixed Condition for CalculateCodesignAppBundleInputs (#2843)" (#2944)
This reverts commit cb216083f1, because it breaks several monotouch-tests:

    [FAIL] KeyChainTest.Add_Certificate :   Add_Certificate
    [FAIL] KeyChainTest.AddQueryRemove_Identity :   Expected: True
    [FAIL] KeyChainTest.CheckId :   same guid
    [FAIL] KeyChainTest.SecItemAdd_Identity :   Expected: True
    [FAIL] RecordTest.Accessible_17579 :   Add
    [FAIL] RecordTest.AuthenticationType_17579 :   Add
    [FAIL] RecordTest.DeskCase_83099_InmutableDictionary :   Password could not be saved to keychain
    [FAIL] RecordTest.IdentityRecordTest :   Identity added
    [FAIL] RecordTest.Protocol_17579 :   Add
2017-11-01 16:19:02 +01:00
Jeffrey Stedfast cb216083f1
[msbuild] Fixed Condition for CalculateCodesignAppBundleInputs (#2843)
* [msbuild] Fixed Condition for CalculateCodesignAppBundleInputs

CodesignAppBundle was not being executed because the inputs were empty.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59379

* Codesign AppExtensiosn as well (and might as well run CodesignVerify too)

* Revert CompileEntitlements change, only compile them if we require codesigning

* Don't embed mobile provision file unless the build requires codesigning

* More fixes to codesigning iPhoneSimulator builds

* Fixed CodesignAppBundle tests to not check dsym timestamps for iPhoneSimulator builds

* Ignore the user's signing key & provisioning profile for Simulator builds

Xcode9 does not use them. It always codesigns Simulator builds with "-"
and never involves the specified provisioning profile.

This finally fixes the AppGroups sample to work properly

For CodesignVerify, having a _ProvisioningProfile defined means that
we have definitely codesigned the app bundle, so it makes sense to
verify the code signature (it probably doesn't make sense to do if
the codesign key is just "-", for example).
2017-10-30 16:52:03 -04:00
Jeffrey Stedfast b55f758caf [msbuild] Updated DetectSigningIdentity to allow thumbprints for the CodeSignKey (#2914) 2017-10-26 15:30:38 -04:00
Jeffrey Stedfast 12bb6eca91 [msbuild] Switched to using System.Json instead of Newtonsoft.Json (#2834) 2017-10-10 16:04:14 -04:00
Jeffrey Stedfast 64804703fb [msbuild] Fixed string formatting error (#2861) 2017-10-10 10:59:11 +02:00
Rolf Bjarne Kvinge 1ccd95acaa Add support for optionally explaining why inapplicable certificates are not applicable. Partially fixes #58251. (#2865)
This also requires a Xamarin.MacDev bump:

xamarin/Xamarin.MacDev@f83f84d Add support for optionally explaining why inapplicable provisioning profiles are not applicable. Partially fixes #58251. (#16)
xamarin/Xamarin.MacDev@d60d25b Added new iPhone X icon sizes

https://bugzilla.xamarin.com/show_bug.cgi?id=58251
2017-10-10 10:56:25 +02:00
Jeffrey Stedfast d4091da877 [msbuild] Fixed ObjC binding targets to delete target zip files before re-zipping (#2840)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59848
2017-10-09 16:41:37 -04:00
Rolf Bjarne Kvinge f4b98cdf60 [tests][mtouch] Add support for reading binary plists. (#2849)
* [tests][mtouch] Add support for reading binary plists.

Some plists in Xcode 9 are now binary plists (instead of just plain xml files
like they were in previous versions of Xcode). This causes trouble for some of
our tests, so make sure we handle binary plists as well.

Fixes these failures:

1. Xamarin.MTouch.MT0091(tvOS,"tvOS") : System.Xml.XmlException : Data at the root level is invalid. Line 1, position 1.
  at System.Xml.XmlTextReaderImpl.Throw (System.Exception e) [0x00027] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res, System.String arg) [0x00029] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res) [0x00000] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () [0x0012c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent () [0x002d4] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Read () [0x0008c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlLoader.Load (System.Xml.XmlDocument doc, System.Xml.XmlReader reader, System.Boolean preserveWhitespace) [0x000a6] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlDocument.Load (System.Xml.XmlReader reader) [0x0002e] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at Xamarin.Tests.Configuration.GetPListStringValue (System.String plist, System.String key) [0x00028] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at Xamarin.MTouch.MT0091 (Xamarin.Profile profile, System.String name) [0x000ae] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <400071ddcfe64ed8a3531490bb763536>:0

2. Xamarin.MTouch.MT0091(iOS,"iOS") : System.Xml.XmlException : Data at the root level is invalid. Line 1, position 1.
  at System.Xml.XmlTextReaderImpl.Throw (System.Exception e) [0x00027] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res, System.String arg) [0x00029] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res) [0x00000] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () [0x0012c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent () [0x002d4] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Read () [0x0008c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlLoader.Load (System.Xml.XmlDocument doc, System.Xml.XmlReader reader, System.Boolean preserveWhitespace) [0x000a6] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlDocument.Load (System.Xml.XmlReader reader) [0x0002e] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at Xamarin.Tests.Configuration.GetPListStringValue (System.String plist, System.String key) [0x00028] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at Xamarin.MTouch.MT0091 (Xamarin.Profile profile, System.String name) [0x000ae] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <400071ddcfe64ed8a3531490bb763536>:0

* [tests] The MSBuild tests now need a reference to StringUtils.
2017-10-06 13:14:57 +02:00
Jeffrey Stedfast c7d6a7ac1d [msbuild] Force-Init AppleSdkSettings in DetectSdkLocationsTaskBase (#2781)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59756
2017-10-06 10:34:57 +02:00
Jeffrey Stedfast 9909748eb4 [msbuild] Emit a build error when CFBundleIdentifier is null/empty (#2791)
* [msbuild] Removed unused DetectBundleIdentifier task

* [msbuild] Emit a build error when Info.plist CFBundleIdentifier is null/empty

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59572
2017-10-06 10:26:33 +02:00
Jeffrey Stedfast 8d8a071a29 [msbuild] Improved logic for obtaining local IP addresses for WiFi debug (#2835)
* [msbuild] Improved logic for obtaining local IP addresses for WiFi debug

* If we can't resolve the local host, connect to microsoft.com and use LocalEndPoint

* Use UDP instead of TCP to avoid network latency
2017-10-05 14:00:44 +02:00
Jeffrey Stedfast ebea0f76a8 [msbuild] Properly subclass GetPropertyListValueTaskBase (#2793) 2017-10-04 20:08:54 +02:00
Chris Hamons b905719707 Fix netstd2 issue on XM full by expanding facades the same as Modern (#2731)
- https://bugzilla.xamarin.com/show_bug.cgi?id=59474
- The idea is to force Full and Modern to expand facades the same way. That way, we get the same, working behavior.
- f79f2e4 was not sufficient, even though it matched XI, because of the difference between XI (and Modern) and what Full was doing.
- Some context:

PR #2685

And that was problematic because it was expanding the netstandard facades from `Microsoft.NET.Build.Extensions`
in the `ImplicitlyExpandNETStandardFacades` target.
But we want to build against XM's bundled facades *only*. So we disable the ns facades completely
by setting `$(ImplicitlyExpandNETStandardFacades) = false`.

But now we are in the situation where a XM/Full project referencing a ns project might fail to build
because of a missing `netstandard.dll` reference! And this same case was fixed for XM/Modern projects in
https://github.com/xamarin/xamarin-macios/pull/2643 . So, we enable the use of that for XM/Full projects too
through `Xamarin.Mac.msbuild.targets`.
2017-09-21 13:40:48 -05:00
Emanuel Fernandez Dell'Oca 9e3e32176a [msbuild] Check Microsoft.NET.Build.Extensions.Tasks.dll exists before using it (#2721)
The existence of Microsoft.NET.Build.Extensions.Tasks.dll depends on the installed workloads on VS.

-Note: For XI/XM projects referencing a ns2.0 project the build will continue failing (with a different error message) if the dependency does not exist, because the GetDependsOnNETStandard task is being skipped.

Fixes Bug #59588 - XI GetDependsOnNETStandard task could not be loaded from Microsoft.NET.Build.Extensions.Tasks.dll

https://bugzilla.xamarin.com/show_bug.cgi?id=59588
2017-09-21 10:12:51 +02:00
Chris Hamons f79f2e4424 Fix XM Full netstandard to copy in correct assemblies (#2685)
- Applications will build but crash on launch otherwise
2017-09-19 16:38:50 -05:00
Emanuel 68b87a4e20 [msbuild] Check Microsoft.NET.Build.Extensions.Tasks.dll exists before using it
The existence of Microsoft.NET.Build.Extensions.Tasks.dll depends on the installed workloads on VS.

Fixes Bug #59588 - XI GetDependsOnNETStandard task could not be loaded from Microsoft.NET.Build.Extensions.Tasks.dll

https://bugzilla.xamarin.com/show_bug.cgi?id=59588
2017-09-19 15:16:15 -03:00
Sebastien Pouliot 91a53f73f2 Merge xcode9 into d15-4[-xi] (#2710)
* [FileProvider] Add Xcode 9 Beta 1, 2 & 3 Bindings (#2279)

* [FileProvider] Add Xcode 9 Beta 1 Bindings

* Better naming

* Feedback not related to BindAs

* [FileProvider] Removes BindAs, add manual code for it and updated to Beta 3

* [FileProvider] Implement feedback

* [CoreSpotlight] Updated spotlight bindings for xcode 9 beta 3. (#2193)

Updated spotlight bindings for xcode 9 beta 3.

* Fix warning caused by duplicate (#2354)

* [FileProviderUI] Add Xcode 9 Beta 1 to 3 bindings (#2356)

* Bump to Xcode 9 beta 4

* [arkit] ARLightEstimate does not conform to NSCopying anymore (fix unit test)

* [uikit] NSFileProviderExtension.ReparentItem got a new parameter in beta4 (fix unit test)

* [coreimage] CIImageAccumulator init returns nil in beta 4

There's no header change to mention `init` is not allowed but
it's not clear how this default initializer could be used.

Also make public some other API to construct this type (outside
of XM). It's not clear why there were `internal` as they are
(at least now) part of the header files.

* [photos] Add helpers when PHLivePhotoEditingOption/NSDictionary is null (to avoid ambiguous API) (#2360)

Adding a strongly typed `PHLivePhotoEditingOption` (a strongly typed
version of an `NSDictionary`) can cause a `CS0121` (call is ambiguous)
since using a `null` argument is common (only one option exist so far).

This PR adds overloads that makes the code nicer in such case, e.g.

before Xcode9:

> // null is used when no options are given
> _foo.SaveLivePhoto (output, null, completion);

current (Xcode 9)

> // casting required to remove ambiguity with PHLivePhotoEditingOption
> _foo.SaveLivePhoto (output, (NSDictionary)null, completion);

with this PR

> // no option, no argument
> _foo.SaveLivePhoto (output, completion);

The same applies to `PrepareLivePhotoForPlayback`.

* [tests] Disable/tweak two tests that breaks on (almost) all Xcode updates

Those tests were not added to validate xOS so just keep the parts
that helps us (without constantly checking back the new break flavor)

* Disable watchOS to check if this hides others issues

* [mapkit] Update for beta 4

* [coredata] Update for beta 4

* [wkwebkit] Update for beta 4

Note: WKWindowFeatures.h is not compiled (part of the framework umbrella)
and the `@interface WKWindowFeatures (WKPrivate)` sounds like it should
not have been exposed (it's all fields starting with `_`)

* [corelocation] Update for beta 4

* Revert "Disable watchOS to check if this hides others issues"

This reverts commit fed2249fa4.

* [tests] Disable watchOS from harness only. Workaround #58348

https://bugzilla.xamarin.com/show_bug.cgi?id=58348

* [spritekit] Update for beta 4 (#2368)

* [arkit] Update for beta 4 (#2370)

* Bump version before preview 3 (#2375)

* [generator] Fix smart enum FieldAttribute LibraryName generation (#2376)

This fix is needed by PDFKit because it is a remapped framework[0],
the current code generates incorrect FieldAttribute on smart enums
because it uses `fa.LibraryName` as first option and this causes
remmaped frameworks have incorrect LibraryName generated for example
if a Field uses `+CoreImage` as `LibraryName` the following incorrect
code is generated:

```
	[Field ("First", "+CoreImage")]
	internal unsafe static IntPtr First {
		get {
			fixed (IntPtr *storage = &values [0])
				return Dlfcn.CachePointer (Libraries.+CoreImage.Handle, "First", storage);
		}
	}
```

[0]: f5956d6cc1/src/generator.cs (L5985)

* [FinderSync] Update to beta 4 (#2377)

* [ImageIO] Update to Xcode 9 (#2353)

* [PhotosUI] Move macOS photosui bindings out of photos.cs into photosui.cs (#2358)

* [quicklook] Update up to beta 4 (#2374)

* [uikit] UIDragInteraction & UIDragInteractionDelegate (Xcode 9 b1,2,3) (#2357)

* [safariservices] Update up to beta 4 (#2380)

* [coreanimation] Update to beta 4 (#2382)

Apple removed (mistake?) some API in beta 1. Filed as rdar 33590997

Internal tracking in
https://trello.com/c/J8BDDUV9/86-33590997-coreanimation-quartzcore-api-removals

* [storekit] Update up to beta 4 (#2379)

* [CoreML] Update to Xcode 9 Beta 4 (#2387)

* [uikit] UICollectionView/UITableView Drag & Drop (Xcode 9 b1,2,3 & 4) (#2355)

* Update code after radar 32929318 and 32897776 are fixed in b4 (#2394)

* [xcode9 CoreAudio] New definitions from Beta1 to Beta3 (#2359)

* [Vision] Strongify VNBarcodeSymbology API, Fixes Bug 58512 (#2397)

* [Vision] Strongify VNBarcodeSymbology API, Fixes Bug 58512

https://bugzilla.xamarin.com/show_bug.cgi?id=58512

Created strong API (VNBarcodeSymbology) on the following properties

* VNDetectBarcodesRequest.SupportedSymbologies
* VNDetectBarcodesRequest.Symbologies
* VNBarcodeObservation.Symbology

* Remove modern C# because classic can't do it 😡

* [mediaplayer] Update up to beta 4 (#2388)

* [watchkit] Update to beta 4 (#2398)

* Bump Visual Studio for Mac max version (#2408)

* [coreimage] Add CIBarcodeDescriptor and enabled missing API for VNBarcodeObservation. Fix #58197 (#2411)

https://bugzilla.xamarin.com/show_bug.cgi?id=58197

* [uikit] Update UIFocus related APIs to Xcode 9 beta 4 (#2407)

* [uikit] Update UIFocus related APIs to Xcode 9 beta 4

* [uikit] Fixes based on comments

* [coreimage] CIImageAccumulator API fixes. Fix #58349 (#2412)

* Obsolete the default `init`;

* XM exposed some older APIs using `int` instead of `CIFormat`.
  This is fixed and old APIs are obsoleted;

* Both new & old APIs are now using `CIFormat` for both XI and XM.

https://bugzilla.xamarin.com/show_bug.cgi?id=58349

* [uikit] UIText drag & drop - up to Xcode 9 beta 4 (#2410)

* [uikit] UISplitView & UIStackView up to Xcode 9 beta 4 (#2425)

* Bump XI/XM versions before preview 4 (#2422)

* [PDFKit] Update to Xcode 9 Beta 1, 2, 3 & 4 (#2378)

* [PDFKit] Update to Xcode 9 Beta 1, 2, 3 & 4

* [PDFKit] Implement feedback

* [PDFKit] the forgotten enum

* [PDFKit] More feedback

* [PDFKit] Add Mac changes

* Missing change

* Fix test RectangleF VS CGRect

* Pass -Wunguarded-availability-new to quiet a new clang warning (#2424)

- https://bugzilla.xamarin.com/show_bug.cgi?id=58574

* [mtouch/mmp] Ignore warnings about unguarded code section with regards to availability. (#2441)

* [monotouch-test] Remove workaround for fixed Apple bug. (#2445)

* Bump to Xcode 9 beta 5. (#2447)

* Bump to Xcode 9 beta 5.

* [mmp] Disable the partial static registrar, because Apple's macOS SDK is broken.

> In file included from Xamarin.Mac.registrar.mobile.i386.m:1:
> In file included from ./Xamarin.Mac.registrar.mobile.i386.h:11:
> /Applications/Xcode9-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVFoundation.h:88:9: fatal error: 'AVFoundation/AVRouteDetector.h' file not found

https://bugzilla.xamarin.com/show_bug.cgi?id=58629

* [mmp] Fix partial static registrar removal.

* [CallKit] Update to Xcode 9 beta 5.

* [ARKit] ARPointCloud doesn't conform to NSCopying anymore in Xcode 9 beta 5.

* [ARKit] Update to Xcode 9 beta 5 enough to make tests happy.

* [CoreImage] Stub out new filters in Xcode 9 beta 5.

* [tests][monotouch] Simplify some MDLMesh asserts since values change a lot between OS versions.

* [mmp] Default to the dynamic registrar for release builds again, due to bug #58629.

https://bugzilla.xamarin.com/show_bug.cgi?id=58629

* [tests][introspection] CXCall started implementing NSCopying without saying so in the headers.

* Disable mmp static registrar tests due to 58629 for now

* [quicklook] Update to beta 5 (#2450)

* [photos] Update for beta 5 (#2452)

Also update some existing enum members were added in beta 1 on macOS

* [safariservices] Update for beta 5 (#2455)

* [mediaplayer] Update to beta 5 (#2456)

* [CoreLocation] Update Xcode 9 Beta 5 (#2453)

* [CoreML] Update to Xcode 9 Beta 5 (#2454)

* [Contacts] Update to Xcode 9 Beta 5 (#2451)

* [Vision] Update to Xcode 9 Beta 5 (#2458)

* [builds] Tell LLVM to stay away from newer macOS functions. (#2459)

Fixes this build problem on Sierra:

> ld: weak import of symbol '_futimens' not supported because of option: -no_weak_imports for architecture x86_64

This is a symbol that was (will be?) introduced in High Sierra.

Interestingly this only occurs if the Xcode 8.X Command Line Tools haven't
been manually installed.

Because if the Xcode 8.X Command Line Tools are installed, this happens:

1. llvm's configure script detects that 'futimens' is not usable.

2. llvm's configure script detects that 'futimens' is not usable, because
   xcrun sets SDKROOT=/ when calling clang.

    a. When the SDKROOT variable is set, clang passes '-syslibroot /usr/lib'
       to ld.
    b. When ld gets '-syslibroot /usr/lib', ld looks in '/usr/lib' for a
       library that contains 'futimens' in the OS itself, and since we're on
       Sierra, that fails to link.
    c. So when llvm's configure script creates a test program that checks if
       'futimens' is present, the program fails. This is correct, and makes
       llvm *not* use futimens.

3. xcrun sets SDKROOT=/ because /usr/share/current-os.sdk/Info.plist exists.
   If that file does not exist, then xcrun sets SDKROOT to Xcode9's macOS SDK
   (because that's what xcode-select reports).

    a. When SDKROOT is set to Xcode9's macOS SDK, the configure check for
       'futimens' succeeds, because the macOS 10.13 SDK contains that
       function.
    b. llvm happily uses 'futimens', and then the final link fails because
       we're using a symbol not available on all target platforms.

* [arkit] Update for Xcode 9 beta 5 - Part 1 (#2460)

* [tests] The container app for watchOS tests should be 64-bit. (#2463)

* [xharness] watchOS tests need to run in a clean environment. Works around #58348. (#2462)

https://bugzilla.xamarin.com/show_bug.cgi?id=58348

* [xharness] It watchOS tests don't need to be clean anymore. Fixes #58348. (#2473)

https://bugzilla.xamarin.com/show_bug.cgi?id=58348

* [uikit] UIView/UIScrollView/UIViewController up to Xcode 9 beta 5 (#2431)

- Add NSDirectionalEdgeInsets type.
- Includes DirectionalEdgeInsetsTest.

* [AudioToolbox] Update bindings to Xcode 9 beta3 (not later changes). (#2294)

* [xharness] Add a file existence check. (#2478)

Fixes this exception:

```
Harness exception for 'introspection': System.IO.FileNotFoundException: Could not find file '/Users/builder/Library/Logs/CoreSimulator/27618A4A-7E49-4BAB-8F77-FA938CE88682/system.log'.
File name: '/Users/builder/Library/Logs/CoreSimulator/27618A4A-7E49-4BAB-8F77-FA938CE88682/system.log'
at System.IO.__Error.WinIOError (System.Int32 errorCode, System.String maybeFullPath) [0x00207] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/io/__error.cs:188
at System.IO.FileInfo.get_Length () [0x00038] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/io/fileinfo.cs:171
at xharness.CaptureLog.StopCapture () [0x00021] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Log.cs:252
at (wrapper remoting-invoke-with-check) xharness.CaptureLog:StopCapture ()
at xharness.AppRunner+<RunAsync>d__68.MoveNext () [0x0127f] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/AppRunner.cs:642
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:151
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:357
at xharness.RunSimulatorTask+<RunTestAsync>d__7.MoveNext () [0x0029d] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Jenkins.cs:2894
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:151
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113
at xharness.RunTestTask+<ExecuteAsync>d__8.MoveNext () [0x0010b] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Jenkins.cs:2538
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:151
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /private/tmp/source-mono-2017-04/bockbuild-2017-04/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113
at xharness.TestTask+<RunInternalAsync>d__87.MoveNext () [0x0010d] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/Jenkins.cs:1870
```

I'm not sure how this can happen, but it has on the bots [1].

[1] https://jenkins.mono-project.com/job/xamarin-macios-pr-builder/4548/Test_Report/

* Bump versions for preview 5 (#2479)

* [passkit] Update to beta 5 (#2481)

* [tests] Remove workaround for radar #32688391. (#2486)

* [replaykit] Update up to beta 5 (#2484)

* Bump maccore to get fix for bug #55064. (#2487)

* [apidiff] Update definition to new 10.12 (d15-3) stable release (#2490)

* [SceneKit] basic work (#2483)

* [coredata] Update to beta 5 (#2488)

* [homekit] Update for Xcode 9 beta 5 (#2492)

* [Foundation] Update for xcode9 (#2468)

* [Intents] Add bindings for Xcode 9 Beta 1, 2, 3, 4 & 5 (#2493)

* [Intents] Add bindings for Xcode 9 Beta 1, 2, 3, 4 & 5

* [Intents] Implement feedback

* [Intents] Add a generic version for INInteraction.GetParameterValue

* [Intents] Missing check

* [Contacts] Add missing foundation NSItemProviderWriting protocol to CNContact (#2496)

https://bugzilla.xamarin.com/show_bug.cgi?id=58203

This is available on all Contacts supported platforms

```
./iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/System/Library/Frameworks/Contacts.framework/Headers/CNContact+NSItemProvider.h:@interface CNContact (NSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
./iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/System/Library/Frameworks/Contacts.framework/Headers/CNContact+NSItemProvider.h:@interface CNContact (NSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
./MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Contacts.framework/Headers/CNContact+NSItemProvider.h:@interface CNContact (NSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
./WatchOS.platform/Developer/SDKs/WatchOS4.0.sdk/System/Library/Frameworks/Contacts.framework/Headers/CNContact+NSItemProvider.h:@interface CNContact (NSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
./WatchSimulator.platform/Developer/SDKs/WatchSimulator4.0.sdk/System/Library/Frameworks/Contacts.framework/Headers/CNContact+NSItemProvider.h:@interface CNContact (NSItemProvider) <NSItemProviderReading, NSItemProviderWriting>
```

* [IntentsUI] Update to Xcode 9 Beta 1 & 2 (No changes on later betas) (#2497)

* [IntentsUI] Update to Xcode 9 Beta 1 & 2 (No changes on later betas)

* [IntentsUI] Better use a delegate instead so we have named params

* Bump versions before 6th preview (#2514)

* [arkit] Add missing MarshalDirective to ARPlaneAnchor (#2517)

- Fixes bug #58648: ARPlaneAnchor.Extent property seems incorrect but changes to correct value after Debug access
(https://bugzilla.xamarin.com/show_bug.cgi?id=58648)

* [xtro-sharpie] Fix a compiler warning. (#2516)

Fixes these warnings:

Runner.cs(197,5): warning CS0642: Possible mistaken empty statement
Runner.cs(199,5): warning CS0642: Possible mistaken empty statement
Runner.cs(201,5): warning CS0642: Possible mistaken empty statement
Runner.cs(203,5): warning CS0642: Possible mistaken empty statement
Runner.cs(205,5): warning CS0642: Possible mistaken empty statement

* [uikit] Update for Xcode 9 beta 5 - Part 3 (#2511)

- UIKeyCommand
- UINavigationBar
- UINavigationItem
- UIPasteboard
- UITableViewHeaderFooterView

* [xtro-sharpie] Remove xtro-plugin and misc other fixes. (#2522)

* [xtro-sharpie] Build with msbuild and be as quiet as requested when building.

* [xtro-sharpie] Must run as a 64-bit process, since the required native libraries are 64-bit.

* [xtro-sharpie] Add run configurations to the project file to ease debugging in the IDE.

* [xtro-sharpie] Remove xtro-plugin and the related commands.

This was needed when there wasn't a 64-bit mono, in order to run xtro-sharpie
in a 64-bit process.

Now there is a 64-bit mono, so it's not needed anymore.

Also improve makefile targets a bit, to auto-build stuff when needed, by
setting the right dependencies.

* Bump Xcode 9 to beta 6 (#2519)

Disable watchOS tests again
It seems like the Carousel crash from beta 4 is back to haunt us.
This was working fine with beta 5.

* Backport d15-3 SR2 fixes (#2515)

* [coredata] Update to beta 6 (#2528)

This seems to only revert some nullability changes from beta 5.

* [coreml] Update to beta 6 (#2531)

Fix our rdar 33643011 where additional setters were added in the headers
but did not exists.

* [videosubscriberaccount] Update to beta 6 (#2533)

Only b1 and b2 introduced some additions/changes

* [uikit] Update for Xcode 9 beta 6 - Part 4 (#2527)

The following headers are now up to date:

- UICollectionViewFlowLayout.h
- UIDocumentPickerViewController.h
- UIFontDescriptor.h
- UIImage.h
- UIImageView.h
- UIImagePickerController.h

* [xharness] Re-enable the watchOS tests. (#2534)

It works fine for me locally, so let's see what Jenkins says.

* [macos] Add new APIs in CoreWlan from Xcode9b3 (#2525)

* Update AppKit bindings based on radar 33271241 results (#2518)

* Update AppKit bindings based on radar 33271241 results

- The header comment was updated to note it was NSSliderTouchBarItem view that has the protocol

* Remove NSUserInterfaceCompression where not listed in header

* [vision] Update to beta 6 (#2532)

Removal of some deprecated (during beta) `init*` selectors.

Also sync the versions that were inlined in subclasses - the old
ones were not removed and the new ones were not added.

* [xtro-sharpie] Many methods don't have selectors in Clang's API, so default to the name if no selector. (#2523)

This makes a few more unclassified entries show up (mostly missing designated initializers): https://gist.github.com/rolfbjarne/07aa20f9b50b75bf3e69ac6a825e873a

* [macos] Add ExternalAccessory APIs from xcode9 (#2526)

* [58851] Disable NSMenuView in AllItemsWithNSMenuShouldAllowNull (#2504)

* [arkit] Update for Xcode 9 beta 5 - Part 2 (#2505)

- Add last missing selector.
- Add tests for manual code.

* [monotouch-test] Disable FontDescriptorTest.WithFeature (#2537)

Disabled because it looks like the tvOS font we use: "Gujarati Sangam MN"
does not have rare ligatures anymore (and the entire test is based on it).
Before getting an actual fix for that, let's disable the test so it doesn't break all current builds.
See: https://bugzilla.xamarin.com/show_bug.cgi?id=58929

* [xtro-sharpie] Teach xtro-sharpie about how to get protocol name from the ProtocolAttribute. (#2524)

Teach xtro-sharpie about how to get protocol name from the ProtocolAttribute
to calculate the native name for a TypeDefinition.

Unclassified changes: https://gist.github.com/rolfbjarne/828f8ee41eebb0a3b60a38d71822fe59

* [foundation/uikit] Inline NSItemProvider_UIKitAdditions in NSItemProvider (#2538)

As suggested here: https://github.com/xamarin/xamarin-macios/pull/2527#discussion_r134670981

* [intents] Fix breaking changes (api-diff) (#2543)

Additions of @required members inside `INSpeakable` cannot be `[Abstract]`

* [contacts] Fix breaking change (api-diff) (#2542)

Type Changed: Contacts.CNPostalAddress

Removed method:

	public static string LocalizeProperty (CNPostalAddressKeyOption option);

* [macos] Reenable static registrar since Xcode9b6 un-broke SDK headers (#2544)

- Fix a subtle spacing issues in PartialStaticLibrary property

* [corebluetooth] Update up to beta 6 and enable it on watchOS (#2540)

macOS 10.13 has finally catch up with iOS and this simplifies the
bindings a bit.

* [foundation] API fixes (apidiff) (#2545)

1. Let's not add new, already [Obsolete] API

Type Changed: Foundation.NSDimension

Added constructors:

	[Obsolete ("Not intended to be directly instantiated, this is an abstract class.")]
	public NSDimension ();

2. Fix inconsistently named API, e.g.

Type Changed: Foundation.NSAttributedString

Added properties:

	public static string[] ReadableTypeIdentifiersForItemProvider { get; }
	public static string[] WritableTypeIdentifiers { get; }

* [pdfkit] Do not add already [Obsolete] API in new profiles (#2547)

and ensure using the newer, correct API works cross-platforms

iOS (before)
	[Obsolete ("Use 'Find (string, NSStringCompareOptions)' instead.")]
	public virtual PdfSelection[] Find (string text, nint options);
	public PdfSelection Find (string text, PdfSelection selection, Foundation.NSStringCompareOptions compareOptions);

	[Obsolete ("Use 'Find (string, PdfSelection, NSStringCompareOptions)' instead.")]
	public virtual PdfSelection Find (string text, PdfSelection selection, nint options);
	public void FindAsync (string text, Foundation.NSStringCompareOptions compareOptions);

	[Obsolete ("Use 'FindAsync (string, NSStringCompareOptions)' instead.")]
	public virtual void FindAsync (string text, nint options);
	public void FindAsync (string[] text, Foundation.NSStringCompareOptions compareOptions);

	[Obsolete ("Use 'FindAsync (string [], NSStringCompareOptions)' instead.")]
	public virtual void FindAsync (string[] text, nint options);

iOS (after)
	public virtual PdfSelection[] Find (string text, Foundation.NSStringCompareOptions compareOptions);
	public virtual PdfSelection Find (string text, PdfSelection selection, Foundation.NSStringCompareOptions compareOptions);
	public virtual void FindAsync (string text, Foundation.NSStringCompareOptions compareOptions);
	public virtual void FindAsync (string[] text, Foundation.NSStringCompareOptions compareOptions);

* Bump versions for the 7th preview (#2541)

* Remove additions of AVKit removed in beta5 (#2536)

* NSUrlSessionTask should implement NSProgressReporting for iOS (#2548)

NSUrlSessionTask implements NSProgressReporting on iOS as well as Mac, so the #if MONOMAC isn't needed.

* Add missing availability attributes causing failures on older iOS versions (#2550)

* [vision] Minor fix wrt xtro (#2551)

including some things we need to ignore manually

!missing-field! VNVisionVersionNumber not bound
!missing-pinvoke! VNImagePointForFaceLandmarkPoint is not bound
!missing-pinvoke! VNNormalizedFaceBoundingBoxPointForLandmarkPoint is not bound

* [uikit] NSFileProviderMessaging was removed in beta 2. Fixes #58222 (#2552)

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=58222

* [uikit] Update for Xcode 9 - Part 5 (#2546)

Bindings for the following headers:
-  UIActivity.h
-  UIActivityItemProvider.h
-  UIAlertController.h
-  UIApplication.h
-  UIBarButtonItem.h
-  UIButton.h
-  UICollectionViewLayout.h
-  UIColor.h
-  UIControl.h
-  UIDocumentMenuViewController.h
-  UIFontMetrics.h
-  UIGestureRecognizer.h
-  UIGraphicsImageRenderer.h
-  UIInputViewController.h

* [CoreText] Fix an extraneous free in CTFont.GetDefaultCascadeList. (#2555)

We do not own the return value from CFArrayGetValueAtIndex, so don't say we do
when creating CTFontDescriptor instances, since that leads to angry dragons:

    2017-08-28 20:15:20.293 monotouchtest[33186:2311738] A_FontTest
    2017-08-28 20:15:20.294 monotouchtest[33186:2311738] 	[PASS] A_FontTest.CTFontCreateWithFontDescriptorAndOptions
    2017-08-28 20:15:20.295 monotouchtest[33186:2311738] 	[PASS] A_FontTest.CTFontCreateWithNameAndOptions
    2017-08-28 20:15:20.296 monotouchtest[33186:2311738] critical: Stacktrace:

    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) CoreText.CTFont.CTFontCopyDefaultCascadeListForLanguages (intptr,intptr) [0x0000a] in <ae65a2b1eea242d2b68fe784749543bf>:0
    at CoreText.CTFont.GetDefaultCascadeList (string[]) [0x00013] in /work/maccore/xcode9/xamarin-macios/src/CoreText/CTFont.cs:2185
    at MonoTouchFixtures.CoreText.A_FontTest.GetCascadeList () [0x0001e] in /work/maccore/xcode9/xamarin-macios/tests/monotouch-test/CoreText/FontTest.cs:78
    at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004f] in <7c58d77f8ca548d5b9b32e70a64ba2fd>:0
    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) [0x00016] in <7c58d77f8ca548d5b9b32e70a64ba2fd>:0
    at System.Reflection.MonoMethod.Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) [0x00032] in /work/maccore/xcode9/xamarin-macios/external/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:305
    at System.Reflection.MethodBase.Invoke (object,object[]) [0x00000] in /work/maccore/xcode9/xamarin-macios/external/mono/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs:229
    at NUnit.Framework.Internal.Reflect.InvokeMethod (System.Reflection.MethodInfo,object,object[]) [0x00009] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/Reflect.cs:215
    at NUnit.Framework.Internal.Commands.TestMethodCommand.RunNonAsyncTestMethod (NUnit.Framework.Internal.TestExecutionContext) [0x00025] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/Commands/TestMethodCommand.cs:116
    at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod (NUnit.Framework.Internal.TestExecutionContext) [0x0001a] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/Commands/TestMethodCommand.cs:90
    at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00000] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/Commands/TestMethodCommand.cs:66
    at NUnit.Framework.Internal.Commands.SetUpTearDownCommand.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00007] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/Commands/SetUpTearDownCommand.cs:84
    at NUnit.Framework.Internal.WorkItems.SimpleWorkItem.PerformWork () [0x00000] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/SimpleWorkItem.cs:64
    at NUnit.Framework.Internal.WorkItems.WorkItem.RunTest () [0x00071] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:196
    at NUnit.Framework.Internal.WorkItems.WorkItem.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00063] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:136
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.RunChildren () [0x00035] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:154
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.PerformWork () [0x000de] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:93
    at NUnit.Framework.Internal.WorkItems.WorkItem.RunTest () [0x00071] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:196
    at NUnit.Framework.Internal.WorkItems.WorkItem.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00063] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:136
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.RunChildren () [0x00035] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:154
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.PerformWork () [0x000de] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:93
    at NUnit.Framework.Internal.WorkItems.WorkItem.RunTest () [0x00071] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:196
    at NUnit.Framework.Internal.WorkItems.WorkItem.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00063] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:136
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.RunChildren () [0x00035] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:154
    at NUnit.Framework.Internal.WorkItems.CompositeWorkItem.PerformWork () [0x000de] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/CompositeWorkItem.cs:93
    at NUnit.Framework.Internal.WorkItems.WorkItem.RunTest () [0x00071] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:196
    at NUnit.Framework.Internal.WorkItems.WorkItem.Execute (NUnit.Framework.Internal.TestExecutionContext) [0x00063] in /work/maccore/xcode9/xamarin-macios/external/mono/external/nunit-lite/NUnitLite-1.0.0/src/framework/Internal/WorkItems/WorkItem.cs:136
    at MonoTouch.NUnit.UI.BaseTouchRunner.Run (NUnit.Framework.Internal.Test) [0x0004d] in /work/maccore/xcode9/xamarin-macios/external/Touch.Unit/NUnitLite/TouchRunner/TouchRunner.cs:442
    at MonoTouch.NUnit.UI.BaseTouchRunner.Run () [0x00030] in /work/maccore/xcode9/xamarin-macios/external/Touch.Unit/NUnitLite/TouchRunner/TouchRunner.cs:171
    at MonoTouch.Dialog.StringElement.Selected (MonoTouch.Dialog.DialogViewController,UIKit.UITableView,Foundation.NSIndexPath) [0x00008] in /work/maccore/xcode9/xamarin-macios/external/MonoTouch.Dialog/MonoTouch.Dialog/Elements.cs:765
    at MonoTouch.Dialog.DialogViewController.Selected (Foundation.NSIndexPath) [0x00026] in /work/maccore/xcode9/xamarin-macios/external/MonoTouch.Dialog/MonoTouch.Dialog/DialogViewController.cs:577
    at MonoTouch.Dialog.DialogViewController/Source.RowSelected (UIKit.UITableView,Foundation.NSIndexPath) [0x00016] in /work/maccore/xcode9/xamarin-macios/external/MonoTouch.Dialog/MonoTouch.Dialog/DialogViewController.cs:402
    at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) [0x0005d] in <32f0c196c5bc4aa18daea2ee64a7814e>:0
    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) [0x0005c] in <ae65a2b1eea242d2b68fe784749543bf>:0
    at UIKit.UIApplication.Main (string[],intptr,intptr) [0x00005] in /work/maccore/xcode9/xamarin-macios/src/UIKit/UIApplication.cs:79
    at UIKit.UIApplication.Main (string[],string,string) [0x00038] in /work/maccore/xcode9/xamarin-macios/src/UIKit/UIApplication.cs:63
    at monotouchtest.Application.Main (string[]) [0x00011] in /work/maccore/xcode9/xamarin-macios/tests/monotouch-test/Main.cs:27
    at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <30a7f7e09de9467b8b454221034a0e38>:0

    Native stacktrace:

    0   monotouchtest                       0x000000010fca03c4 mono_handle_native_crash + 244
    1   monotouchtest                       0x000000010fcadd30 mono_sigsegv_signal_handler + 288
    2   libsystem_platform.dylib            0x000000011feb3b3a _sigtramp + 26
    3   CoreFoundation                      0x000000011de035a2 computeSanitizedString + 146
    4   CoreText                            0x00000001168df314 _ZN15TPurgeableCache19RetainedValueForKeyEPKv + 54
    5   CoreText                            0x00000001168def85 _ZNK17TDescriptorSource22CopyDescriptorUncachedEPK7__CFURLbPK10__CFString + 55
    6   CoreText                            0x00000001168df34f _ZNK17TDescriptorSource14CopyDescriptorEPK7__CFURLbPK10__CFString + 27
    7   CoreText                            0x00000001168e20ad _ZNK17TDescriptorSource35CopyFontDescriptorPerPostScriptNameEPK10__CFStringmm + 297
    8   CoreText                            0x00000001168dfd9e _ZNK17TDescriptorSource30CopySystemFontDescriptorByNameEPK10__CFString10UIFontFlag + 54
    9   CoreText                            0x00000001168e54c4 _ZNK14TFontFallbacks17CopyFontFallbacksEPK10__CFStringS2_PK9__CFArray + 652
    10  CoreText                            0x00000001168e4a00 _ZNK14TFontFallbacks29CopyFontFallbacksForLanguagesEPK10__CFStringPK9__CFArray + 122
    11  CoreText                            0x00000001168e4971 _ZN17TDescriptorSource39CopyDefaultSubstitutionListForLanguagesEPK10__CFStringPK9__CFArray + 61
    12  CoreText                            0x00000001169397a7 _ZNK9TBaseFont28CreateSystemDefaultFallbacksEPK10__CFStringPK9__CFArray + 51
    13  CoreText                            0x000000011693999c _ZNK9TBaseFont15CreateFallbacksE10UIFontFlagPPK16__CFCharacterSetPK9__CFArray + 346
    14  CoreText                            0x00000001168c1036 _ZNK5TFont24CreateDefaultCascadeListEPK9__CFArray + 242
    15  CoreText                            0x00000001168b8ff9 CTFontCopyDefaultCascadeListForLanguages + 97
    16  ???                                 0x0000000140eaefd3 0x0 + 5384105939
    17  ???                                 0x0000000140eae761 0x0 + 5384103777
    18  ???                                 0x000000013c9c8e74 0x0 + 5311860340
    19  monotouchtest                       0x000000010fcb0c89 mono_jit_runtime_invoke + 1273
    20  monotouchtest                       0x000000010fd6e3a8 do_runtime_invoke + 88
    21  monotouchtest                       0x000000010fd71bac mono_runtime_try_invoke_array + 1292
    22  monotouchtest                       0x000000010fd15587 ves_icall_InternalInvoke + 647
    23  ???                                 0x000000013e9fcd13 0x0 + 5345627411
    24  ???                                 0x000000013e9fc738 0x0 + 5345625912
    25  ???                                 0x000000013e9fded5 0x0 + 5345631957
    26  ???                                 0x000000013e9fbb76 0x0 + 5345622902
    27  ???                                 0x000000013e9e237e 0x0 + 5345518462
    28  ???                                 0x000000013e9e237e 0x0 + 5345518462
    29  ???                                 0x000000013e9e237e 0x0 + 5345518462
    30  ???                                 0x000000013e9e237e 0x0 + 5345518462
    31  ???                                 0x000000013e873006 0x0 + 5344014342
    32  monotouchtest                       0x000000010fcb0c89 mono_jit_runtime_invoke + 1273
    33  monotouchtest                       0x000000010fd6e3a8 do_runtime_invoke + 88
    34  monotouchtest                       0x000000010fd6e320 mono_runtime_invoke + 208
    35  monotouchtest                       0x000000010fe71af1 xamarin_invoke_trampoline + 5617
    36  monotouchtest                       0x000000010fe79ddd xamarin_arch_trampoline + 189
    37  monotouchtest                       0x000000010fe7b1a1 xamarin_x86_64_common_trampoline + 110
    38  UIKit                               0x0000000111b9876b -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1810
    39  UIKit                               0x0000000111b98986 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 344
    40  UIKit                               0x0000000111a6b5c9 _runAfterCACommitDeferredBlocks + 318
    41  UIKit                               0x0000000111a59dad _cleanUpAfterCAFlushAndRunDeferredBlocks + 280
    42  UIKit                               0x0000000111a89f68 _afterCACommitHandler + 137
    43  CoreFoundation                      0x000000011de3ddb7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    44  CoreFoundation                      0x000000011de3dd0e __CFRunLoopDoObservers + 430
    45  CoreFoundation                      0x000000011de22324 __CFRunLoopRun + 1572
    46  CoreFoundation                      0x000000011de21a89 CFRunLoopRunSpecific + 409
    47  GraphicsServices                    0x0000000121b7e9c6 GSEventRunModal + 62
    48  UIKit                               0x0000000111a5f7d0 UIApplicationMain + 159
    49  ???                                 0x000000013c9c4474 0x0 + 5311841396
    50  ???                                 0x000000013c9c40ad 0x0 + 5311840429
    =================================================================
    Got a SIGSEGV while executing native code. This usually indicates
    a fatal error in the mono runtime or one of the native libraries
    used by your application.
    =================================================================

* [monotouch-test] Don't subclass MKMapView. (#2556)

MKMapView doesn't like being subclassed (Apple says "you should not subclass the MKMapView class itself").

Bad things like this starts happening:

    Thread 0 name:  tid_303  Dispatch queue: com.apple.main-thread
    Thread 0 Crashed:
    0   libsystem_kernel.dylib        	0x0000000186b25348 __pthread_kill + 8
    1   libsystem_pthread.dylib       	0x0000000186c39354 pthread_kill$VARIANT$mp + 396
    2   libsystem_c.dylib             	0x0000000186a94fd8 abort + 140
    3   monotouchtest                 	0x0000000101c02c14 mono_handle_native_crash + 22047764 (mini-exceptions.c:2548)
    4   monotouchtest                 	0x0000000101c0d02c mono_sigsegv_signal_handler + 22089772 (mini-runtime.c:2886)
    5   libsystem_platform.dylib      	0x0000000186c33b60 _sigtramp + 52
    6   CoreFoundation                	0x0000000186f93108 cow_cleanup + 112
    7   CoreFoundation                	0x0000000186f93108 cow_cleanup + 112
    8   CoreFoundation                	0x0000000186eda51c -[__NSArrayM dealloc] + 68
    9   CoreFoundation                	0x000000018703f5c8 __CFBasicHashDrain + 312
    10  CoreFoundation                	0x0000000186fb5b44 _CFRelease + 224
    11  CoreText                      	0x000000018a808404 TDescriptorSource::PurgeFontFallbacksCache+ 488452 () + 92
    12  CoreText                      	0x000000018a808374 TDescriptorSource::PurgeFromCaches+ 488308 (__CFURL const*) const + 176
    13  CoreText                      	0x000000018a7eec74 CTFontRemoveFromCaches + 168
    14  VectorKit                     	0x0000000196a539b0 +[VKSharedResourcesManager removeResourceUser:] + 324
    15  VectorKit                     	0x0000000196ca27a4 md::MapEngine::~MapEngine+ 2643876 () + 360
    16  VectorKit                     	0x0000000196ca2634 md::MapEngine::~MapEngine+ 2643508 () + 12
    17  libobjc.A.dylib               	0x000000018651eef4 object_cxxDestructFromClass+ 28404 (objc_object*, objc_class*) + 148
    18  libobjc.A.dylib               	0x000000018652c638 objc_destructInstance + 88
    19  libobjc.A.dylib               	0x000000018652c690 object_dispose + 16
    20  QuartzCore                    	0x000000018afca3ac -[CALayer dealloc] + 116
    21  VectorKit                     	0x0000000196a43294 -[VKMapView dealloc] + 940
    22  QuartzCore                    	0x000000018af6aafc CA::release_objects+ 744188 (X::List<void const*>*) + 32
    23  QuartzCore                    	0x000000018afd97d8 CA::Layer::~Layer+ 1198040 () + 276
    24  QuartzCore                    	0x000000018afca37c -[CALayer dealloc] + 68
    25  QuartzCore                    	0x000000018af6b16c CA::Transaction::commit+ 745836 () + 1052
    26  UIKit                         	0x0000000190393290 _afterCACommitHandler + 256
    27  CoreFoundation                	0x0000000186fb38b8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
    28  CoreFoundation                	0x0000000186fb1270 __CFRunLoopDoObservers + 412
    29  CoreFoundation                	0x0000000186fb182c __CFRunLoopRun + 1292
    30  CoreFoundation                	0x0000000186ed22d8 CFRunLoopRunSpecific + 436
    31  GraphicsServices              	0x0000000188d58f84 GSEventRunModal + 100
    32  UIKit                         	0x000000019040427c UIApplicationMain + 208
    33  monotouchtest                 	0x000000010106eb90 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 9907088 (/<unknown>:1)
    34  monotouchtest                 	0x0000000100f0d6ac UIKit_UIApplication_Main_string___intptr_intptr + 8459948 (UIApplication.cs:79)
    35  monotouchtest                 	0x0000000100f0d66c UIKit_UIApplication_Main_string___string_string + 8459884 (UIApplication.cs:63)
    36  monotouchtest                 	0x0000000100b10450 monotouchtest_Application_Main_string__ + 4277328 (Main.cs:27)
    37  monotouchtest                 	0x0000000100e0c244 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 244
    38  monotouchtest                 	0x0000000101c10048 mono_jit_runtime_invoke + 22102088 (mini-runtime.c:2526)
    39  monotouchtest                 	0x0000000101c75eec do_runtime_invoke + 22519532 (object.c:2829)
    40  monotouchtest                 	0x0000000101c78a3c do_exec_main_checked + 22530620 (object.c:4623)
    41  monotouchtest                 	0x0000000101bf9a1c mono_jit_exec + 22010396 (driver.g.c:1040)
    42  monotouchtest                 	0x0000000101d13d60 xamarin_main + 23166304 (monotouch-main.m:482)
    43  monotouchtest                 	0x00000001007de710 main + 927504 (main.m:67)
    44  libdyld.dylib                 	0x00000001869f656c start + 4

* [introspection] Let SkipDueToAttributeInProperty skip setters too (#2557)

`SkipDueToAttributeInProperty` which is used to check the availability attribute of properties
when the Availability info only exist on the property and not on the property Getter or Setter was wrong.
This lead to `setSpringLoaded` (which was introduced in iOS 11) to not be ignored by the test (making it fail).

- Fix bug #59085: [introspection-ios] selector not found for UIKit.UIBarButtonItem : setSpringLoaded: - Broken test
(https://bugzilla.xamarin.com/show_bug.cgi?id=59085)

* [corevideo][watchos] Enable CoreVideo on watchOS (#2553)

* [storekit] Fix CampaignToken typo (#2559) (#2560)

- Fixes bug #59078: StoreProductParameters and invalid property for CampaignToken
(https://bugzilla.xamarin.com/show_bug.cgi?id=59078)

* [coreml][watchos] Enable API using CoreVideo on watchOS. Fix #58097 (#2561)

https://bugzilla.xamarin.com/show_bug.cgi?id=58097

* Add missing [MarshalDirective] attributes. (#2558)

* [bindings-generator] Improve build & project file.

* Add missing [MarshalDirective] attributes.

Add missing [MarshalDirective] attributes, which also requires implementing
support for out parameters in the binding generator, since one of the
signatures missing the [MarshalDirective] contains such an out parameter.

Also add tests for all the API I've added [MarshalDirective] to.

* [bindings-generator] Remove redundant if check.

* [monotouch-test] Rename file to end with 'Test.cs'.

* [tests] Fix a few build errors for Xamarin.Mac.

* [uikit] Fix UIColor and UIInputViewController tvOS availability (#2569)

- Fixes introspection tests on tvOS 10.

* [storekit] Fix SKCloudServiceSetupMessageIdentifier and SKProductStorePromotionController tvOS availability (#2568)

- Fixes introspection tests on tvOS 10.

* [mapkit] Fix MKMapItemTypeIdentifier tvOS availability (#2566)

- Also remove double [Mac] availability attribute.
- Fixes introspection tests on tvOS 10.

* [ARKit] Fix marshalling for ARPointCloud.RawFeaturePoints. (#2565)

ARPointCloud.RawFeaturePoints is an array of Vector3, but each vector is
16-byte aligned (as if it were an array of Vector4).

This means we need to account for this when creating a managed array from
pointer to the native C-style array.

* [ModelIO] Fix MDLVoxelIndexExtent struct. (#2564)

The MDLVoxelIndexExtent is a struct containing two 4-dimensional vectors of
integers (not floats, as originally and incorrectly implemented).

Fix this my creating a new MDLVoxelIndexExtent2 struct with the right fields,
re-implement all the API that exposes this struct and obsolete the old API.

Also add missing [MarshalDirective] attributes.

And write a test to make sure it works fine now and forever.

* [coredata] Enable new fields since rdar #33878590 is fixed w/beta 6 (#2570)

reference:
https://trello.com/c/dlSRYPFx

* [xtro-sharpie] Add a Simd check class to verify signatures with Simd types.

* [Simd] Add simd matrix types.

The OpenTK matrices (Matrix2/3/4) has a different memory layout than Apple's
matrix_float2x2/matrix_float3x3/matrix_float4x4 matrices: the OpenTK versions
are row-major, while Apple's versions are column-major.

This means that when blitting memory from one to the other, the matrix will
appear to have been transposed.

See bug #[58599][2] for an example.

Unfortunately we've already bound several API with Apple's matrix_floatXxX
matrices using OpenTK's matrices, and although they're bound wrong, and the
matrices appear transposed on input/output, we can't change the behavior
because we have to maintain compatibility.

This means we have to introduce new API, and then also just define new matrix
types with the right memory layout (column-major). Additionally, in the future
we might be able to mark these matrices as Simd-matrixes, so that the JIT/AOT
compiler can generate the correct alignment for them, avoiding having to
define a native conversion method (using the [MarshalDirective] hack).

The matrices have been designed to match API-wise the matrices in the
System.Numerics.Vectors namespace [1], but for the moment with only a few
basic operations implemented (Determinant/Transpose/Multiply) defined (we can
always add more later if we want to).

In addition explicit conversion operators to and from the corresponding
OpenTK.MatrixX are implemented, which means any operation defined in the
OpenTK matrices can be used by converting back and forth.

[1]: https://msdn.microsoft.com/en-us/library/system.numerics.matrix4x4(v=vs.111).aspx
[2]: https://bugzilla.xamarin.com/show_bug.cgi?id=58599

* [ARKit] Use the new Simd matrix types.

* [Vision] Use the new Simd matrix types.

* [ModelIO] Use the new Simd-compatible matrix types, and deprecate the old API.

* [GameplayKit] Use the new Simd-compatible matrix types, and deprecate the old API.

* [SpriteKit] Use the new Simd-compatible matrix types, and deprecate the old API.

* [xtro] Don't report missing [MarshalDirective] for obsolete methods.

* [xtro] Remove unnecessary ignores.

The implementation changed, and these stayed accidentally.

* [wkwebkit] Fix (native) protocol names (#2572)

Also ignore xtro's WKSnapshotConfiguration since it's an Apple bug 34185961

reference (xtro)
!missing-protocol! WKURLSchemeHandler not bound
!missing-protocol! WKURLSchemeTask not bound
!unknown-protocol! WKUrlSchemeHandler bound
!unknown-protocol! WKUrlSchemeTask bound

!unknown-type! WKSnapshotConfiguration bound

* [uikit] Fix enums availability attributes (#2575)

- Fixes bug #59132: [uikit] Extra types in watchOS
(https://bugzilla.xamarin.com/show_bug.cgi?id=59132)

* [watchkit] Add missing designated initializers (#2574)

references (xtro)
!missing-designated-initializer! WKInterfaceController::init is missing an [DesignatedInitializer] attribute
!missing-designated-initializer! WKUserNotificationInterfaceController::init is missing an [DesignatedInitializer] attribute

* [xtro] Reword some of the Simd diagnostic messages according to review.

* [tests] Make sure test symbols don't clash between different test libraries.

Fixes this build problem for framework-test:

	clang: error: linker command failed with exit code 1 (use -v to see invocation)
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_mdltransform_get_rotation_matrix'.
	MTOUCH: error MT5213: Duplicate symbol in: /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/framework-test/obj/iPhoneSimulator/Debug-unified/mtouch-cache/XStaticObjectTest.framework/XStaticObjectTest (Location related to previous error)
	MTOUCH: error MT5213: Duplicate symbol in: /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/framework-test/obj/iPhoneSimulator/Debug-unified/mtouch-cache/XStaticArTest.framework/XStaticArTest(libtest-ar.x86_64.o) (Location related to previous error)
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_mdltransformcomponent_get_local_transform'.
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_mdltransform_create_global_transform'.
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_get_matrix_float4x4'.
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_get_matrix_float3x3'.
	MTOUCH: error MT5212: Native linking failed, duplicate symbol: '_x_get_matrix_float2x2'.
	MTOUCH: error MT5209: Native linking error: 6 duplicate symbols for architecture x86_64
	MTOUCH: error MT5202: Native linking failed. Please review the build log.

* [tests] Since libtest.a need ModelIO now, the corresponding LinkWith attributes need to state that too.

* [introspection] Don't check native signatures on obsolete members, and ignore the right simd matrix types.

Fixes this introspection/Mac problem:

    ***** ApiSignatureTest.NativeSignatures
    Selector: uniformWithName:matrixFloat2x2: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat2x2, nothing encoded
    Selector: uniformWithName:matrixFloat3x3: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat3x3, nothing encoded
    Selector: uniformWithName:matrixFloat4x4: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat4x4, nothing encoded
    Selector: setMatrixFloat2x2Value: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat2x2, nothing encoded
    Selector: setMatrixFloat3x3Value: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat3x3, nothing encoded
    Selector: setMatrixFloat4x4Value: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat4x4, nothing encoded
    Selector: initWithName:matrixFloat2x2: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat2x2, nothing encoded
    Selector: initWithName:matrixFloat3x3: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat3x3, nothing encoded
    Selector: initWithName:matrixFloat4x4: on type SpriteKit.SKUniform, Type: Simd.MatrixFloat4x4, nothing encoded

* [monotouch-tests] Include more custom asserts for watchOS to make the build work.

Fixes this:

    Simd/MatrixFloat4x4Test.cs(28,12): error CS0117: 'Asserts' does not contain a definition for 'AreEqual'
    Simd/MatrixFloat4x4Test.cs(29,12): error CS0117: 'Asserts' does not contain a definition for 'AreEqual'
    Simd/MatrixFloat4x4Test.cs(37,12): error CS0117: 'Asserts' does not contain a definition for 'AreEqual'
    Simd/MatrixFloat4x4Test.cs(48,12): error CS0117: 'Asserts' does not contain a definition for 'AreEqual'
    [...]

* [monotouch-test] Exclude code that requires the binding project from xammac tests.

Exclude code that requires the test binding project from xammac tests because
there's currently no XM version of the test binding project.

Fixes this:

    tests/monotouch-test/SpriteKit/UniformTest.cs(20,7): error CS0246: The type or namespace name 'Bindings' could not be found (are you missing a using directive or an assembly reference?)
    tests/monotouch-test/ModelIO/MDLMaterialProperty.cs(37,7): error CS0246: The type or namespace name 'Bindings' could not be found (are you missing a using directive or an assembly reference?)
    tests/monotouch-test/ModelIO/MDLTransform.cs(34,7): error CS0246: The type or namespace name 'Bindings' could not be found (are you missing a using directive or an assembly reference?)

* Bump version for preview #8 (#2576)

* [spritekit] Audit fixes (xtro) (#2577)

1.	SKVideoNode is now, partially, available on watchOS and does
	not require the extra, manual code to swicth selectors depending
	on the OS version being run.

!missing-type! SKVideoNode not bound
!missing-selector! SKVideoNode::anchorPoint not bound
!missing-selector! SKVideoNode::initWithCoder: not bound
!missing-selector! SKVideoNode::initWithFileNamed: not bound
!missing-selector! SKVideoNode::initWithURL: not bound
!missing-selector! SKVideoNode::setAnchorPoint: not bound
!missing-selector! SKVideoNode::setSize: not bound
!missing-selector! SKVideoNode::size not bound
!missing-selector! +SKVideoNode::videoNodeWithFileNamed: not bound
!missing-selector! +SKVideoNode::videoNodeWithURL: not bound

2.	SKNodeFocusBehavior is exposed needlessly on watchOS because
	SpriteKit/Enums.cs was not processed by the generator, so [NoWatch]
	did not matter.

!unknown-native-enum! SKNodeFocusBehavior bound

	It's also visible on macOS but nothing uses it (so we do not expose
	it needlessly)

!missing-enum! SKNodeFocusBehavior not bound

3.	Add missing designated initializer on default `init`

!missing-designated-initializer! SKAttributeValue::init is missing an [DesignatedInitializer] attribute
!missing-designated-initializer! SKNode::init is missing an [DesignatedInitializer] attribute

4.	Remove inconsistency for SKNode subclasses wrt XAMCORE_4_0

The trio attributeValues, setAttributeValues and setValue:forAttributeNamed:
that was moved from SKNode (deprecated) into its subclasses. This was done
using XAMCORE_4_0 but not on every subclasses. This adds them everywhere to
be consistent (only SKNode versions are not defined in XAMCORE_4_0)

!missing-selector! SKEffectNode::attributeValues not bound
!missing-selector! SKEffectNode::setAttributeValues: not bound
!missing-selector! SKEffectNode::setValue:forAttributeNamed: not bound
!missing-selector! SKEffectNode::valueForAttributeNamed: not bound
!missing-selector! SKEmitterNode::attributeValues not bound
!missing-selector! SKEmitterNode::setAttributeValues: not bound
!missing-selector! SKEmitterNode::setValue:forAttributeNamed: not bound
!missing-selector! SKEmitterNode::valueForAttributeNamed: not bound
!missing-selector! SKSpriteNode::attributeValues not bound
!missing-selector! SKSpriteNode::setAttributeValues: not bound
!missing-selector! SKSpriteNode::setValue:forAttributeNamed: not bound
!missing-selector! SKSpriteNode::valueForAttributeNamed: not bound

* [introspection] Make sure '[FAIL]' is printed before every failure. (#2578)

This makes xharness able to list the failures in the inline summary.

* [xtro] Reword some of the Simd diagnostic messages according to review.

* [xharness] Add a missing IsServerMode check to generate correct html. (#2581)

* [SpriteKit] SKTransformNode is new in Xcode 9 so no need to keep the broken (and obsolete) non-simd version of RotationMatrix.

* [intents] Fix some (partial) xtro issues and #59156 (#2585)

reference
https://bugzilla.xamarin.com/show_bug.cgi?id=59156

Remaining issues are filled in https://bugzilla.xamarin.com/show_bug.cgi?id=59183

!missing-selector! +INCarSeatResolutionResult::confirmationRequiredWithCarSeatToConfirm: not bound
!missing-selector! +INCarSeatResolutionResult::successWithResolvedCarSeat: not bound
!missing-selector! +INNotebookItemTypeResolutionResult::disambiguationWithValuesToDisambiguate: not bound

* [Intents] Confirm* interface methods should be bound as Confirm, Fixes Bug 59164 (#2591)

* [Intents] Confirm* interface methods should probably be bound as Confirm, Fixes Bug 59164

https://bugzilla.xamarin.com/show_bug.cgi?id=59164

All Confirm* methods from *IntentHandling interfaces should be named
just `Confirm` to avoid confusion because most of them do not directly
confirm as an acion, but instead they **ask** for confirmation also we
would follow swift's naming by doing this.

* [Intents] XAMCORE_4_0 all Confirm* methods from *IntentHandling

Turns any Confirm* into just Confirm inside a XAMCORE_4_0 block,

* [Intents] Fix breaking changes in Intents added in Xcode 9 Bindings (#2590)

Apple added more protocol conformances to INRidesharingDomainHandling and
INPaymentsDomainHandling protocols in Xcode 9, I introduced these breaking
changes back when I did intents binding so fixing them :)

* [Metal] New bindings from Xcode 9 betas (#2457)

* [AVFoundation] Updated bindings for xcode9. (#2272)

* [Xcode9] Add IOSurface bindings (#2363)

* This framework was a private framework before iOS 11.

This framework was a private framework before iOS 11, yet the headers claim
many API were introduced in iOS 10.

So take account of this difference by using the private framework location in
iOS 10.3 or earlier.

Testing these API from Xcode works fine when run on an iOS 10.3 device, and
I've confirmed the IOSurface framework is loaded from the private frameworks
path on older devices (and when built using Xcode 9 and linked with the public
framework path).

* Disable code to make IOSurface work on iOS 10.

Disable the code to make IOSurface work on iOS 10, since it may be rejected by
the App Store.

This also means adjusting the availability attributes, so that the
introspection tests pass (and to document that technically these API won't
work when used with Xamarin.iOS in iOS 10).

I've filed bug #[59201][1] to keep track of this, maybe we can re-enable this later.

[1]: https://bugzilla.xamarin.com/show_bug.cgi?id=59201

* [CoreMedia] Fix leak in CMAttachmentBearer.GetAttachments. (#2593)

The caller owns the return value from CMCopyDictionaryOfAttachments, so tell
Runtime.GetNSObject that.

* [Intents] Adds missing API found by xtro, fixes Bug 59183 (#2596)

https://bugzilla.xamarin.com/show_bug.cgi?id=59183

Fixes

!missing-selector! +INNotebookItemTypeResolutionResult::disambiguationWithValuesToDisambiguate: not bound
!missing-selector! +INCarSeatResolutionResult::confirmationRequiredWithCarSeatToConfirm: not bound
!missing-selector! +INCarSeatResolutionResult::successWithResolvedCarSeat: not bound
!incorrect-protocol-member! INUIHostedViewControlling::configureWithInteraction:context:completion: is OPTIONAL and should NOT be abstract

* [xtro] Fix StartWorkingDirectory to enable debugging (#2598)

* [iosurface] Enable for tvOS and XM classic (to avoid multiple defines around consumer API) (#2597)

* [xtro] Fix EnumCheck (#2600)

* [ARKit] Rename a few method to make them nicer. (#2604)

* DisplayTransform -> GetDisplayTransform since methods should have verbs.

* SessionWasInterrupted -> WasInterrupted and SessionInterruptionEnded ->
  InterruptionEnded since these names match better with the other names
  (CameraDidChangeTrackingState / DidFail / DidOutputAudioSampleBuffer: none
  are prefixed with 'Session'). Additionally, the type is a Model (for the
  delegate pattern), which means all methods are more-or-less event-like, and
  the first argument is always the same (the protocol itself), which is
  another indicator the methods should be named similarly.

* [Foundation] Remove 'Key' suffix from some fields. (#2606)

Of the 168 fields in NSMetadataItem, only these 5 hadn't removed the 'Key'
suffix.

So make them all equivalent by removing the 'Key' suffix from these 5 fields.

* [ImageIO] Fix API to not duplicate the instance in instance methods. (#2609)

An instance method does not need to take the instance as a parameter, so
remove the first (instance) parameter for
CGImageDestination.AddAuxiliaryDataInfo and
CGImageSource.CopyAuxiliaryDataInfo.

An alternative solution would be to make the methods static, but I like the
instance API better.

* [UIKit] De-model UIDataSourceTranslating. (#2603)

It's not clear from neither the documentation nor the headers how this
protocol is supposed to be used, and since it doesn't correspond to the
delegate pattern, remove the [Model] attribute for now.

We can always add it back later.

* [CoreML] Improve API. (#2592)

* [CoreML] Improve API.

* The indices, shape and stride properties for MLMultiArray and
  MLMultiArrayConstraint can logically only be arrays of integers, so type
  them as such. This means adding overloads for MLMultiArray's constructors,
  GetObject and SetObject methods, and the indexers that takes nint[] arrays
  instead of NSNumber[] arrays.

* Change MLFeatureValue's static factory methods to be a method ('Create')
  instead of a preposition, and call all the different factory methods the
  same, since they can be overloaded nicely.

* [tests][monotouch-test] Add version check to MLMultiArrayTest and make sure the arrays we create are big enough for the data we put in them.

* [tests][monotouch-test] MLMultiArray's elements aren't zero-initialized, so don't assume that in the tests.

* Support overloading Objective-C methods based on static/instance. (#2607)

Two Objective-C methods can be named identically as long as one is static and
the other instance.

We must support this since Apple did just this (in the NSItemProviderReading /
NSItemProviderWriting protocols).

We solve it by prepending a '+' or '-' to the selector when hashing it (to
determine selector uniqueness, and to look the method up again at runtime).

* [uikit] Update for Xcode 9 - Part 6 (#2602)

NSAttributedString.h
NSFileProviderExtension.h
NSLayoutAnchor.h
UIAccessibility.h
UIAccessibilityAdditions.h
UIAccessibilityContainer.h
UIAccessibilityContentSizeCategoryImageAdjusting.h
UIAccessibilityCustomRotor.h
UIAccessibilityLocationDescriptor.h
UITabBar.h
UINavigationBar.h
UIScreen.h

* Xcode9 scenekit (#2512)

* [SceneKit] basic work

* Added key

* [xcode9] SCNCameraController

* [xcode9] SCNCamera updates

* [xcode9] SCNMaterial

* [xcode9] SCNGeometryTessellator, SCNCameraControlConfiguration, SCNView, small bits

* Add trailing commas to last enum value

* Remove whitespace noise

* [scenekit] Update deprecated attributes messages

* Addresses some of Rolf's feedback

* Drop the WeakDelegate in SCNCameraController

* Rename method to Render, remove ctor from class that can not be constructed in Palygrounds, add typo exception

* [AppKit] Rename NSBezierPath.AppendBezierPathWithCGGlyph to match its sibling methods. (#2605)

NSBezierPath contains a lot of 'AppendPathWithXXX' methods, that all map to
'appendBezierPathXXX' selectors.

So rename AppendBezierPathWithCGGlyph accordingly, to make it more similar to
the other methods in the same type.

* [uikit] Add all UISpringLoadedInteractionSupporting (#2616)

Types do not conform to the protocol but protocol methods work on those types (see monotouch-test).
Fixed introspection tests accordingly and tested the selectors in monotouch-test.

* [Intents] Add convenience ctor overload and call correct base ctor in manual ctor. (#2613)

Add a convenience constructor overload in
INGetUserCurrentRestaurantReservationBookingsIntent that uses nint instead of
NSNumber, since logically "number of results" will always be some sort of
integer.

Also call the correct base constructor in INSpeakableString's custom
constructor (same as any other generated constructor). Otherwise we end up
doing something like this: [[[INSpeakableString alloc] init] initWith ...],
i.e. calling two different init methods.

* [coreimage] Add new headers API up to beta 6 (#2601)

Filters are not complete (ref: #57350)
https://bugzilla.xamarin.com/show_bug.cgi?id=57350

* Some new constants are not yet documented (type is known), so they
  are commented / ignored
  https://bugzilla.xamarin.com/show_bug.cgi?id=59296

* Filled bug for [Wrap] inside [Category] so strong dictionary helpers
  can be re-enabled later
  https://bugzilla.xamarin.com/show_bug.cgi?id=59294

* [foundation] xtro fixes for watchOS (#2586)

!missing-enum! NSProcessInfoThermalState not bound
!missing-field! NSProcessInfoThermalStateDidChangeNotification not bound
!missing-selector! NSProcessInfo::thermalState not bound

Headers are wrong and preferredPresentationStyle is not in tvOS and watchOS

!missing-selector! NSItemProvider::preferredPresentationStyle not bound
!missing-selector! NSItemProvider::setPreferredPresentationStyle: not bound

* [uikit] Also remove UIPreferredPresentationStyle enum from platform where it's not used

* [Foundation] Improve NSItemProviderReading & NSItemProviderWriting protocols/compliance. (#2614)

* [Foundation] Improve NSItemProviderReading & NSItemProviderWriting protocols/compliance.

* NSItemProviderWriting:
* NSItemProviderReading: Implement correctly and completely by uncommenting
  commented out code.

* NSMutableString:
* NSAttributedString: remove inlined members, since these classes don't
  implement NSItemProviderReading / NSItemProviderWriting (according to the
  headers at least).

* NSUrl: all platforms now seem to implement NSItemProviderReading /
  NSItemProviderWriting.

* NSString: all platforms now seem to implement both NSItemProviderReading and NSItemProviderWriting

* UIColor:
* UIImage: Update inlined protocol members according to the latest beta.

Additionally, due to the following conditions:

* The protocols all have the correct members now.
* In the API definition we tell the generator to inline members from a
  protocol by inheriting from the corresponding interface.
* The generator doesn't inline static members from protocols.

several 'new' keywords had to be added to silence a compiler warning that
occurrs when we manually inline a static member, since the member would be
included in the type both from the inherited interface and the manual
implementation.

* [Foundation] Comment out NSItemProviderWriting.GetItemProviderVisibility to avoid inlining/generating unusable methods.

NSItemProviderWriting.GetItemProviderVisibility is an optional method, and
none of the native classes that implements NSItemProviderWriting actually
imlements the method. This means inlining the method in those classes ends up
creating unusable API; so just comment out the method to avoid generating the
unusable API.

The introspection tests found this:

    [FAIL] Foundation.NSString : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] Foundation.NSUrl : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] Contacts.CNContact : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] MapKit.MKMapItem : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] UIKit.UIColor : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] UIKit.UIImage : itemProviderVisibilityForRepresentationWithTypeIdentifier:
    [FAIL] iOSApiSelectorTest.ApiSelectorTest.StaticMethods : 6 errors found in 2348 static selector validated:

See also https://bugzilla.xamarin.com/show_bug.cgi?id=59308

* [iosurface] Add missing [TV] attributes (#2619)

* [opengles] Enable the new API using IOSurface (#2618)

The symbol only exists inside device libraries, not on simulator,
and the introspection tests were updated to ignore it.

Part of https://bugzilla.xamarin.com/show_bug.cgi?id=58054

* [avfoundation][watchos] Enable AudioBufferList (fix #59145) + audit (xtro) (#2617)

1. AudioBufferList is part of CoreAudio (wrong namespace, which needs
   a few changes in the generator) and now available in watchOS 4
   https://bugzilla.xamarin.com/show_bug.cgi?id=59145

2. Also fixes xtro found issues:

!missing-type! AVAudioRecorder not bound
!missing-selector! AVAudioRecorder::averagePowerForChannel: not bound
!missing-selector! AVAudioRecorder::channelAssignments not bound
!missing-selector! AVAudioRecorder::currentTime not bound
!missing-selector! AVAudioRecorder::delegate not bound
!missing-selector! AVAudioRecorder::deviceCurrentTime not bound
!missing-selector! AVAudioRecorder::format not bound
!missing-selector! AVAudioRecorder::initWithURL:format:error: not bound
!missing-selector! AVAudioRecorder::initWithURL:settings:error: not bound
!missing-selector! AVAudioRecorder::isMeteringEnabled not bound
!missing-selector! AVAudioRecorder::isRecording not bound
!missing-selector! AVAudioRecorder::peakPowerForChannel: not bound
!missing-selector! AVAudioRecorder::recordAtTime: not bound
!missing-selector! AVAudioRecorder::recordAtTime:forDuration: not bound
!missing-selector! AVAudioRecorder::recordForDuration: not bound
!missing-selector! AVAudioRecorder::setChannelAssignments: not bound
!missing-selector! AVAudioRecorder::setDelegate: not bound
!missing-selector! AVAudioRecorder::setMeteringEnabled: not bound
!missing-selector! AVAudioRecorder::settings not bound
!missing-selector! AVAudioRecorder::url not bound

!missing-protocol! AVAudioRecorderDelegate not bound

!missing-selector! AVAudioEngine::inputNode not bound
!missing-selector! AVAudioEngine::manualRenderingBlock not bound
!missing-selector! AVAudioInputNode::setManualRenderingInputPCMFormat:inputBlock: not bound
!missing-selector! AVAudioPlayer::format not bound
!missing-selector! AVAudioSession::requestRecordPermission: not bound

!unknown-field! AVFileType3GPP bound
!unknown-field! AVFileType3GPP2 bound
!unknown-field! AVFileTypeAC3 bound
!unknown-field! AVFileTypeAIFC bound
!unknown-field! AVFileTypeAIFF bound
!unknown-field! AVFileTypeAMR bound
!unknown-field! AVFileTypeAVCI bound
!unknown-field! AVFileTypeAppleM4A bound
!unknown-field! AVFileTypeAppleM4V bound
!unknown-field! AVFileTypeCoreAudioFormat bound
!unknown-field! AVFileTypeDNG bound
!unknown-field! AVFileTypeEnhancedAC3 bound
!unknown-field! AVFileTypeHEIC bound
!unknown-field! AVFileTypeHEIF bound
!unknown-field! AVFileTypeJPEG bound
!unknown-field! AVFileTypeMPEG4 bound
!unknown-field! AVFileTypeMPEGLayer3 bound
!unknown-field! AVFileTypeQuickTimeMovie bound
!unknown-field! AVFileTypeSunAU bound
!unknown-field! AVFileTypeTIFF bound
!unknown-field! AVFileTypeWAVE bound

* [Metal] Implement API using IOSurface now that IOSurface is implemented. Partially fixes #58054. (#2621)

https://bugzilla.xamarin.com/show_bug.cgi?id=58054

* [PdfKit] Improve PdfAnnotation.QuadrilateralPoints binding by making it strongly typed. (#2620)

* Implement Simd vector types (VectorFloat2/3/4/VectorInt4). (#2622)

* Implement Simd vector types (VectorFloat2/3/4/VectorInt4).

* [ARKit/Vision] Use the new simd vector types instead of the OpenTK versions.

* [ModelIO] Use the new simd vectors in new API (MDLVoxelIndexExtent2).

This way we won't have to create a MDLVoxelIndexExtent3 in the future.

* [SpriteKit] Use the new simd vectors in new API.

* [metal] Audit (xtro) based fixes (#2623)

!extra-protocol-member! unexpected selector MTLArgumentEncoder::newArgumentEncoderForBufferAtIndex: found
!extra-protocol-member! unexpected selector MTLComputeCommandEncoder::dispatchThreads:threadsPerThreadgroup: found

macos-only

!missing-field! MTLDeviceRemovalRequestedNotification not bound
!missing-field! MTLDeviceWasAddedNotification not bound
!missing-field! MTLDeviceWasRemovedNotification not bound

!missing-pinvoke! MTLCopyAllDevices is not bound

* [CloudKit] Update bindings to beta 6. (#2615)

* [FileProvider] Turn NSFileProviderItemIdentifier enum into a static class, fixes bug 59329 (#2634)

https://bugzilla.xamarin.com/show_bug.cgi?id=59329

At the time of binding NSFileProviderItemIdentifier it wasn't clear
how it was supposed to be used, I mean apple provides two keys which
I thought were the only possible values hence binding it as an smart
enum. Unfortunately this wasn't the case and the user can use those
two values provided from the SDK or their own NSString Identifier.

Swift provides a wrapper unfortunately we can't do the same due to
NSFileProviderItemIdentifier is used in the NSFileProviderItem protocol
and we currently do not support changing signatures on them.

* [mtouch] Teach mtouch about the 'IOSurface' framework for tvOS. Fixes #59333. (#2630)

https://bugzilla.xamarin.com/show_bug.cgi?id=59333

* Bump Touch.Unit to get fix for API breakage. (#2631)

spouliot/Touch.Unit@8f1e19d [NUnitOutputTextWriter] Reintroduce previous constructor to make sure we don't break binary ABI.
spouliot/Touch.Unit@00b0c0b [NUnitOutputTextWriter] Don't write invalid xml comments.
spouliot/Touch.Unit@de9fe20 [TouchRunner] Restore the original code path when not wrapping NUnit xml output.

* [IOSurface] Add missing availability attributes for tvOS. (#2629)

* Bump versions for preview 9 (#2624)

* [AVFoundation] Add missing interface AVRouteDetector. (#2637)

* [tests] Update xtro to reduce list sizes (#2636)

* Skip OpenTK duplicate declaration (we can't change them);
* Fix rule name change for ARKit / simd;
* Add missing default initializer on `init` to pending actions;
* Add note for AVPersistableContentKeyRequest changes wrt tvOS;

* [ReplayKit] Make RPBroadcastActivityViewController.LoadBroadcastActivityViewController async-capable. (#2639)

* [xcode9] More SceneKit bindings (#2633)

* [GameplayKit] Incorrect GKPath.FromPoints (Vector3[], float, cyclical) implementation, Fixes bug 59380 (#2644)

* [GameplayKit] Incorrect GKPath.FromPoints (Vector3[], float, cyclical) implementation, Fixes bug 59380

https://bugzilla.xamarin.com/show_bug.cgi?id=59380

vector_float3 is 16 bytes, which means the binding is incorrect,
because Vector3 is 12 bytes, and our code does not that difference into account.

* Add tests

* [DeviceCheck] Disable default ctor for DCDevice. (#2642)

It doesn't seem to be useful according to the documentation, since it appears
that the only way to get an instance is to use the static CurrentDevice
property.

* [audiounit] Audit (xtro) fixes for tvOS (#2635)

Availability attributes in non-generated files don't hide symbols/code.

reference:
!unknown-pinvoke! AudioUnitExtensionCopyComponentList bound
!unknown-pinvoke! AudioUnitExtensionSetComponentList bound

* [tests] Make sure tvOS tests don't use the (unexisting) API

* [tests] Add all test project variations to tests-mac.sln (#2579)

* [xharness] Make sure generated mac projects have different project guids.

* [introspection] Change the project guid so that it doesn't match the dontlink-mac project guid.

* [tests] Add all test project variations to tests-mac.sln.

* [xharness] Fix else condition.

* [FileProvider] Adds missing NSFileProviderPage constants, fixes bug 59297. (#2646)

https://bugzilla.xamarin.com/show_bug.cgi?id=59297

Adds NSFileProviderInitialPageSortedByName and NSFileProviderInitialPageSortedByDate
NSData constants

* [Xcode9] Remove NSFileProviderMessage and NSFileProviderMessageInterface (#2647)

APIs were removed in beta 2

* [Foundation/UIKit] Provide LoadObject[s] methods that return the expected type in the callback. Fixes #59049. (#2638)

The callback for these LoadObject[s] methods take an INSItemProviderReading
parameter. This tells our runtime that we must provide an instance of a
managed object that implements this interface (but nothing else), so we create
a `NSItemProviderReadingWrapper` instance, which complies with the API (since
the wrapper type implements the corresponding interface).

Unfortunately these methods are supposed to return an instance of the passed-
in type, so in order to comply with this soft (documentation-only)
requirement, provide a wrapper method that creates instances of the right
types.

https://bugzilla.xamarin.com/show_bug.cgi?id=59049

* [arkit] Ignore deprecated selectors (#2645)

* [FileProvider] Adds missing protocol and keys from audit (#2652)

```
!missing-protocol! NSFileProviderServiceSource not bound
!missing-field! NSFileProviderErrorCollidingItemKey not bound
!missing-field! NSFileProviderErrorNonExistentItemIdentifierKey not bound
!missing-field! NSFileProviderFavoriteRankUnranked not bound
```

Also adds `NSXpcListenerEndpoint` to foundation, needed by `NSFileProviderServiceSource` protocol.

* [tests][xtro] Workaround xtro runner dupe entry exception and update data files (#2654)

* [AVFoundation] Rename field to match others. (#2657)

* [homekit] Audit (xtro) fixes (#2653)


- HMCharacteristicEvent conforms to NSMutableCopying on iOS11
  which makes it 64 bits only (so adjust intro tests)

- Ignore extra setters on HMMutablePresenceEvent, rdar 33883958

!missing-selector! HMMutablePresenceEvent::setPresenceEventType: not bound
!missing-selector! HMMutablePresenceEvent::setPresenceUserType: not bound

* [xtro] Add missing pinvoke to pending (#2662)

- Bug 59422: [uikit] Missing UIContentSizeCategoryCompareToCategory & UIContentSizeCategoryIsAccessibilityCategory
(https://bugzilla.xamarin.com/show_bug.cgi?id=59422)

* Merge latest d15-3 fixes into xcode9 (#2660)

* [msbuild] Re-added wildcard (*) expandsion for application-identifier in Entitlements.plist (#2186)

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57119

* Bump mono (#2213)

* Framework tests were still binding non-linked Simple class which errors now (#2216) (#2218)

- Improve Makefile to rebuild when projects build with errors

* Bump mono to get cecil fix for bug #56808. (#2222)

https://bugzilla.xamarin.com/show_bug.cgi?id=56808

* [msbuild] Use @(ReferencePath) instead of @(ResolvedFiles) (#2188) (#2214)

This allows things to work on both xbuild and msbuild.

In xbuild, both lists are exactly the same and on msbuild,
only @(ReferencePath) exists.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55147

* NSActivityOptions.IdleDisplaySleepDisabled had wrong value (#2232) (#2239)

This was due to an integer overflow.  The original value was based on Int32
1 << 40 == 256

The correct value should be based on a UInt64.
1UL << 40 == 1099511627776

* [tests] Fix bug 57699 - [iOS]InternalsTest failure (Linkall) tests on device (#2243)

Strip native debugging symbols should not be checked for debug builds

* Bump mono to get fix for bug #57780.

https://bugzilla.xamarin.com/show_bug.cgi?id=57780

* Update .gitmodules

Change branch to d15-3 branch of mono

* Bump maccore to get fix for bug #55064.

https://bugzilla.xamarin.com/show_bug.cgi?id=55064

* [mono] Bump mono to get the head of cecil/mono-2017-04 and fix IsComObject #57919

Also fix #58789 [1], the typo in tools/mtouch/Tuning.cs showing in MT0000 errors
instead MT2102. That's already in master and d15-4

mono bump includes:

[2] commit 2a6502cee0df9de5198eafe7c8b5f6ac25106f34 (HEAD -> d15-3, origin/d15-3)
Merge: 02457c20fcf 5e05cafc6f1
Author: Luis Aguilera <luis.aguilera@xamarin.com>
Date:   Fri Aug 18 10:04:06 2017 -0400

    Merge pull request #5401 from marek-safar/com

    [Marshal.IsComObject] Make this predicate return false instead of thr…

[3] commit 02457c20fcf57c0610e844d638eb1da82b5d1eb0
Merge: da80840ea55 73fd9a1b82e
Author: Luis Aguilera <luis.aguilera@xamarin.com>
Date:   Fri Aug 18 09:59:06 2017 -0400

    Merge pull request #5400 from spouliot/bump-cecil-58834-d15-3

    [cecil] Bump to the head of the mono-2017-04 branch and pick the fix for bug #58834

References
[1] https://bugzilla.xamarin.com/show_bug.cgi?id=58789
[2] https://bugzilla.xamarin.com/show_bug.cgi?id=57919
[3] https://bugzilla.xamarin.com/show_bug.cgi?id=58834

* [mtouch] Put 'mono_profiler_startup_log' in the symbol list. Fixes #58778. (#2501)

We need the 'mono_profiler_startup_log' symbol when profiling is enabled, so
make sure to add the symbol to the correct list of symbols we need.

Previously we were passing `-u _mono_profiler_startup_log` to clang directly,
which is fine, but not complete, since it does not write the symbol to the
symbollist file (--symbollist=file), which means it wouldn't be preserved when
the MSBuild tasks strip the executable.

https://bugzilla.xamarin.com/show_bug.cgi?id=58778

* Bump versions for SR3

https://trello.com/c/EVze08ei

* Bump mono to include HttpClientHandler fix #44027

https://trello.com/c/jYFXadH8/8-systemnethttp-close-request-stream-when-httpclienthandler
https://bugzilla.xamarin.com/show_bug.cgi?id=44027

* [FileProvider] Add missing API and turn NSString to string (#2663)

Turned NSString to string in order to match exisiting API.

* [uikit] Add UIPasteConfigurationSupporting and UITextPasteConfigurationSupporting (#2649)


- Fixes bug #59363: Missing UIPasteConfigurationSupporting, UITextPasteConfigurationSupporting, UITextDraggable and UITextDroppable on a couple of types
(https://bugzilla.xamarin.com/show_bug.cgi?id=59363)

* [uikit] Remove 129 types in UIPasteConfigurationSupporting case

* [scenekit] Audit (xtro) fixes (#2648)

This looks like an Apple breaking change (since `SCNAnimation` is new)
but we now have:

> typedef void (^SCNAnimationEventBlock)(id<SCNAnimation> animation, id animatedObject, BOOL playingBackward);

bound as

> delegate void SCNAnimationEventHandler (CAAnimation animation, NSObject animatedObject, bool playingBackward);

and `CAAnimation` conforms to `SCNAnimation` but *only* the later is
available on watchOS. The delegate is only updated (since it's new)
on our watchOS profile.

xtro references:

(watchos)
!unknown-protocol! SCNCameraControlConfiguration bound

(tvos/watchos)
!missing-selector! SCNAnimation::animationEvents not bound
!missing-selector! SCNAnimation::setAnimationEvents: not bound
!missing-selector! SCNConstraint::isEnabled not bound
!missing-selector! SCNConstraint::setEnabled: not bound

!missing-field! SCNSceneSourceConvertToYUpKey not bound
!missing-field! SCNSceneSourceConvertUnitsToMetersKey not bound

(ios/tvos)
!missing-protocol-conformance! SCNNode should conform to UIFocusItem

* Bump maccore post 15.3 merge (#2665)

* Bump Xcode 9 to GM (#2667)

* Force build (on wrench)

* [avfoundation] Fix breaking changes (apidiff) (#2664)

* [TVServices] Update to Xcode 9 GM (#2675)

* [GameController] Update to Xcode 9 GM (#2673)

* [LocalAuthentication] Update to Xcode 9 GM (#2671)

* [LocalAuthentication] Update to Xcode 9 GM

* Remove availability from BiometryNotAvailable, BiometryNotEnrolled and BiometryLockout

* [AVFoundation] Add missing types AVSampleBufferAudioRenderer and AVSampleBufferRenderSynchronizer (#2659)

* [AVFoundation] Add missing types AVSampleBufferAudioRenderer and
AVSampleBufferRenderSynchronizer

Some of the new added types were already present BUT under a #if
MONOMAC, they had to be moved.

* [AVFoundation] Set the wrongly added API to be obsolete and ensure it returns logical values. (#2650)

* [xtro] The right platform for macOS is 'macos', not 'osx'. (#2677)

The platform name is used to filter availability attributes, and if we use the
wrong platform, we'll incorrectly skip all availability attributes.

The net result in unclassified entries: https://gist.github.com/rolfbjarne/a4474bc2a40c49a85cad495b51bb514f

* Various Xcode 9 API improvements and also fixes bug 59433 (#2676)

https://bugzilla.xamarin.com/show_bug.cgi?id=59433

While fixing bug 59433 I noticed some additional issues outlined below:

AVDepthData:

* Renamed **non** static `Create` methods because `Create` only
  makes sense with the **Static** method in this context. Also
  by renaming the methods we are now closer to the names that
  swift uses.

* Kept descriptive method names in favor of self-documenting code.
  `Convert`, `Apply` and `Replace` do not fully give us the intent
  of the method.

* Added a convenience `Create` static method that takes a
  `CGImageAuxiliaryDataInfo`.

* AvailableDepthDataTypes is now an array of `CVPixelFormatType` instead
  of a `NSNumber` array (The aactual fix for bug 59433).

ImageIO:

* Refactored `CGImageAuxiliaryDataInfo` to be a `StrongDictionary` in order
  to avoid most of the manual code and also to avoid reimplementing
  the `ToDictionary` method (which contained a subtle bug).

* Adjusted code to reflect the above change.

* Added missing `.ctor (IntPtr, bool)` to `CGImageMetadata` so the class
  is able to be created by our `Runtime.Get*`.

* Simplified `CopyAuxiliaryDataInfo` method by using `CGImageAuxiliaryDataInfo`
  as a `DictionaryContainer`.

Tests:

* Added `xamarinmonkey.heic` which is an image that contains depth data needed
  to test above changes.

* Adds `AVDepthDataTests` that touches most of the changes listed here.

* Tweak the Simd-compatible matrices and vectors (#2668)

* Rename them to be OpenTK.NMatrix# (instead of Simd.MatrixFloat#x#).
* Remove the Vector2 and Vector4 variants, we'll use the OpenTK types instead (but we'll keep the NVector3 variant, since it's not identical to the OpenTK version).
* Update the API to match their OpenTK counterparts better:
    * NMatrix2 and NMatrix3 have a 0-based R#C# scheme for their fields.
    * NMatrix4 has a 1-based M## scheme for its fields (i.e. no change).

* [AVFoundation] Use Simd-matrix for API that needs it. (#2679)

This also requires implementing the corresponding matrix (NMatrix4x3).

Fixes this xtro issue:

> !unknown-simd-type-in-signature! OpenTK.Matrix3 AVFoundation.AVCameraCalibrationData::get_GetIntrinsicMatrix(): the native signature has a simd type (matrix_float3x3), while the corresponding managed method is using an incorrect (non-simd) type.

* [xtro] Fix checking availability on categories. (#2682)

When checking for category availability, check if both the current declaration
is a category, and if the current's declaration container is a category.

Otherwise this scenario fails:

* Category method is available.
* Category does not have availability attributes.
* Main class is unavailable.

with this typical code sequence:

```csharp
// don't process methods (or types) that are unavailable for the current platform
if (!decl.IsAvailable () || !(decl.DeclContext as Decl).IsAvailable ())
	return;
```

In which case we'd:

* First check the method (`decl`):
	* It's available, so no further checks is done on the method.

* Then we'd check the method's container (`decl.DeclContext`):
	* The container (the category) does not have availability attributes.
	* Then we'd check if the container's container is a category (it isn't, it's the namespace).

and as such determine that the method is available.

With this change, the second step will become:

* Then we'd check the method's container (`decl.DeclContext`):
	* The container (the category) does not have availability attributes.
	* Then we'd check if the container is a category (it is), and if its main class is available (it isn't).

and as such determine that the method is unavailable.

* Check for attributes on the method's container (no attributes, so we continue).
* Check if the method's

Unclassified diff: https://gist.github.com/rolfbjarne/8fa80962596978a426eadf9b7ba39dc1

* [uikit] Update for Xcode 9 GM (#2670)

* [AVFoundation] Implement AVCapturePhoto. Partially fixes #59388. (#2678)

Fixes:

> common.unclassified:!missing-type! AVCapturePhoto not bound

https://bugzilla.xamarin.com/show_bug.cgi?id=59388

* Use strong dictionaries for AVCapturePhoto.Metadata and AVCapturePhoto.EmbeddedThumbnailPhotoFormat.

* [SIMD] Implement Simd double types (VectorDouble3/MatrixDouble4x4). (#2632)

The following types will be used by ModelIO bindings

* Fix delta to be double

* Rename Simd-compatible matrices and vectors to match our final naming.

This also means removing the new Vector2 and Vector4 variants (but not
Vector3).

* [avfoundation] Remove AVAssetDownloadDelegate.DidLoadTimeRange since it was removed in one of the betas (#2687)

* [foundation] Move NSUrlSessionMultipathServiceType to a file processed by the generator (for the availability attributes) (#2688)

* [arkit] Update for Xcode 9 GM (#2681)

* [Intents] Fix watchOS INCarSeatResolutionResult breaking changes (#2690)

* [Intents] Fix watchOS INCarSeatResolutionResult breaking changes

Type Changed: Intents.INCarSeatResolutionResult

Removed methods:

    public static INCarSeatResolutionResult GetConfirmationRequired (INCarSeat valueToConfirm);
    public static INCarSeatResolutionResult GetSuccess (INCarSeat resolvedValue);

* [avfoundation] Add missing protocol members and deprecations (#2691)

!missing-protocol-member! AVCapturePhotoCaptureDelegate::captureOutput:didFinishProcessingPhoto:error: not found

and the selector removed from PR#2687 was actually replaced with this one

!missing-protocol-member! AVAssetDownloadDelegate::URLSession:aggregateAssetDownloadTask:didLoadTimeRange:totalTimeRangesLoaded:timeRangeExpectedToLoad:forMediaSelection: not found

* [tests][xtro] Map some enums, more fix with protocols and update entries (#2692)

* [Tests] Reenable dns tests on the watch. (#2674)

* [arkit] Add ARBlendShapeLocationOptions strong dictionary (#2696)

* [coreimage] Skip not yet bound filters added in Xcode9 (#2698)

Tracked in https://bugzilla.xamarin.com/show_bug.cgi?id=57350

* [Metal] Renamed MTLArgumentDescriptor.ArgumentDescriptor to Create, fixes bug 59498 (#2702)

https://bugzilla.xamarin.com/show_bug.cgi?id=59498

From [argumentDescriptor docs](https://developer.apple.com/documentation/metal/mtlargumentdescriptor/2915746-argumentdescriptor?language=objc)

> Creates an empty argument descriptor.

* [msbuild] Always codesign app bundles if the codesign key is non-null (#2697)

...even if it is a simulator build.

Turns out that starting with Xcode9, sim builds need to be codesigned
for App Groups entitlements to work properly. Interestingly, the
DetectSigningIdentity logic had a comment about needing to codesign
simulator builds for some entitlements to work already starting with
Xcode 8 but apparently the iOS targets did not respect this.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59379

* [Foundation] Add NSProxy stub in order to workaround bug 59247 (#2693)


https://bugzilla.xamarin.com/show_bug.cgi?id=59247

We need to have a better solution that removes all what NSProxy does not responds to.
Right now this works because NSObject implements NSObject protocol just like NSProxy, but
NSProxy responds to far less selectors hence doing it internal so it is not a breaking change
when we provide the correct fix.

* Keep NSProxy around and avoid XML linker description

We need to keep NSProxy (avoid linking it) if WKNavigationDelegate or IWKNavigationDelegate
is used. We know WKWebView will be there and can hold a reference to it.

* [Xcode 9] Update Metal for GM (#2689)

* [iosurface] IOSurface is not usable before iOS/tvOS 11. Fixes #59201 (#2706)

Apple rejects apps that links with the previously private IOSurface.framework.
We were not sure about this [1] and had it disabled (this is removed).

However another bug stopped our adjustment logic [2] from being executed. This
is needed since `clang` picks up the private framework if it does not find the
public one (even when asking for a weak framework),

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=59201
[2] Added a while ago for JavascriptCore

* Bump maccore to point to commit with the docs fix. (#2703)

* Bump XI to 11.0.x (and XM to 3.99.9.x) (#2684)

* fix typo
2017-09-15 17:53:16 -04:00
Sebastien Pouliot 05eb96d0a7 Merge branch 'xcode9' into xcode9-master-merge 2017-09-15 11:05:30 -04:00
Jeffrey Stedfast 1e8c5dec19 [msbuild] Always codesign app bundles if the codesign key is non-null (#2697)
...even if it is a simulator build.

Turns out that starting with Xcode9, sim builds need to be codesigned
for App Groups entitlements to work properly. Interestingly, the
DetectSigningIdentity logic had a comment about needing to codesign
simulator builds for some entitlements to work already starting with
Xcode 8 but apparently the iOS targets did not respect this.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59379
2017-09-14 16:26:49 -04:00
Ankit Jain 30f75f722a [msbuild][mac][ios] Fix referencing netstandard projects (#2643)
Building a XI or XM (Modern) project that references a netstandard 2.0
project with msbuild fails because of a missing reference to
`netstandard.dll`.

AppDelegate.cs(21,52): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

The reason is that XI and XM (Modern) projects have
`$(TargetFrameworkIdentifier) != .NETFramework`, so targets from
`Microsoft.NET.Build.Extensions` which provide ns2.0 support don't get
imported. `ImplicitlyExpandNETStandardFacades` in particular, which
would have added a reference to `netstandard.dll`.

`netstandard.dll` gets included as part of the facades expanded by
`ImplicitlyExpandDesignTimeFacades`, but this gets skipped if the
project does not have a `System.Runtime` dependent reference.

Instead, we want to expand the facades if any reference depends on
`System.Runtime` OR `netstandard`. And for that we scan all the
references for a `netstandard` dependency using the
`GetDependsOnNETStandard` task.

Partially fixes bxc #58504 .
2017-09-13 10:42:46 -05:00
Ankit Jain 47713d4e86 [msbuild][mac] Fix references netstandard libs from XM/Full (#2656)
This is to handle the case of XM/Full project referencing a netstandard project.

For XM/Full, $(TargetFrameworkDirectory) is `lib/mono/4.5` which has
`netstandard.dll`.  This causes ImplicitlyExpandNETStandardFacades to
skip expanding assuming that when ImplicitlyExpandDesignTimeFacades
expands facades, `netstandard.dll` would also get referenced.

But if the XM project does NOT have any System.Runtime facades, then
ImplicitlyExpandDesignTimeFacades will not expand the facades and so we
end up with no `netstandard.dll` reference!

With `$(NETStandardInbox) == false`,
`ImplicitlyExpandNETStandardFacades` behaves as if `netstandard.dll` was
not available in the framework directories and will expand the facades
if required.

Partially fixes bxc #58504 .
2017-09-13 10:42:36 -05:00
Ankit Jain 866c65468d [msbuild][mac] Fix regression in facade paths for Full/Modern projects (#2655)
Regression from:
----------------
commit e5d012c5b8
Author: Chris Hamons <chris.hamons@xamarin.com>
Date:   Mon Aug 14 13:17:10 2017 -0500

[macos] System mono should resolve non-XM libraries from system (#2480)
----------------

The way this manifests is that for (eg.) a `TargetFrameworkName=Full` project,
after the `FixTargetFrameworkDirectory`(X.M.Common.targets) target we end up with
`$(TargetFrameworkDirectory)` having value of:

    /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5
    /Library/Frameworks/Mono.framework/Versions/5.4.0/lib/mono/4.6.1-api/Facades/

.. and the second path is incorrect. It should have been:

    /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5/Facades

This path fixup is done by `FixDesignTimeFacades` (X.M.msbuild.targets)
target, but this target is running *after*
`FixTargetFrameworkDirectory`, so it doesn't see the fixed facade path!

Both `FixTargetFrameworkDirectory` and `FixDesignTimeFacades` have
`AfterTargets="GetReferenceAssemblyPaths`. But since
`FixTargetFrameworkDirectory` is defined before the
`Xamarin.Mac.msbuild.targets` import, so it gets executed before
`FixDesignTimeFacades`.
2017-09-13 10:42:32 -05:00
Ankit Jain 5b8c685308 [msbuild][mac][ios] Fix referencing netstandard projects (#2643)
Building a XI or XM (Modern) project that references a netstandard 2.0
project with msbuild fails because of a missing reference to
`netstandard.dll`.

AppDelegate.cs(21,52): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

The reason is that XI and XM (Modern) projects have
`$(TargetFrameworkIdentifier) != .NETFramework`, so targets from
`Microsoft.NET.Build.Extensions` which provide ns2.0 support don't get
imported. `ImplicitlyExpandNETStandardFacades` in particular, which
would have added a reference to `netstandard.dll`.

`netstandard.dll` gets included as part of the facades expanded by
`ImplicitlyExpandDesignTimeFacades`, but this gets skipped if the
project does not have a `System.Runtime` dependent reference.

Instead, we want to expand the facades if any reference depends on
`System.Runtime` OR `netstandard`. And for that we scan all the
references for a `netstandard` dependency using the
`GetDependsOnNETStandard` task.

Partially fixes bxc #58504 .
2017-09-13 10:39:57 -05:00
Ankit Jain d7a27682ed [msbuild][mac] Fix references netstandard libs from XM/Full (#2656)
This is to handle the case of XM/Full project referencing a netstandard project.

For XM/Full, $(TargetFrameworkDirectory) is `lib/mono/4.5` which has
`netstandard.dll`.  This causes ImplicitlyExpandNETStandardFacades to
skip expanding assuming that when ImplicitlyExpandDesignTimeFacades
expands facades, `netstandard.dll` would also get referenced.

But if the XM project does NOT have any System.Runtime facades, then
ImplicitlyExpandDesignTimeFacades will not expand the facades and so we
end up with no `netstandard.dll` reference!

With `$(NETStandardInbox) == false`,
`ImplicitlyExpandNETStandardFacades` behaves as if `netstandard.dll` was
not available in the framework directories and will expand the facades
if required.

Partially fixes bxc #58504 .
2017-09-13 10:36:53 -05:00
Ankit Jain c7b2d78b4f [msbuild][mac] Fix regression in facade paths for Full/Modern projects (#2655)
Regression from:
----------------
commit e5d012c5b8
Author: Chris Hamons <chris.hamons@xamarin.com>
Date:   Mon Aug 14 13:17:10 2017 -0500

[macos] System mono should resolve non-XM libraries from system (#2480)
----------------

The way this manifests is that for (eg.) a `TargetFrameworkName=Full` project,
after the `FixTargetFrameworkDirectory`(X.M.Common.targets) target we end up with
`$(TargetFrameworkDirectory)` having value of:

    /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5
    /Library/Frameworks/Mono.framework/Versions/5.4.0/lib/mono/4.6.1-api/Facades/

.. and the second path is incorrect. It should have been:

    /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5/Facades

This path fixup is done by `FixDesignTimeFacades` (X.M.msbuild.targets)
target, but this target is running *after*
`FixTargetFrameworkDirectory`, so it doesn't see the fixed facade path!

Both `FixTargetFrameworkDirectory` and `FixDesignTimeFacades` have
`AfterTargets="GetReferenceAssemblyPaths`. But since
`FixTargetFrameworkDirectory` is defined before the
`Xamarin.Mac.msbuild.targets` import, so it gets executed before
`FixDesignTimeFacades`.
2017-09-13 09:33:33 -04:00
Rolf Bjarne Kvinge a9e7a0d75d [msbuild] Adjust verbosity, and set default verbosity level. (#2641)
The MtouchVerbosity value is set when building from VSfM, and in that case the
logic works fine.

However, when building from the command line, or from VS, the default value
for MtouchVerbosity would be '0', which would mean 'Quiet', which is not what
we want the default verbosity to be.

So set the default MtouchVerbosity value to '2' (Normal verbosity), and at the
same time adjust the values passed to mtouch so that 'Normal' actually means
the default (neither quiet nor verbose).
2017-09-12 10:04:41 +02:00
Emanuel Fernandez Dell'Oca d824d85360 [msbuild] Avoid running ObjCBinding tasks on VS design-time builds (#2587)
These targets were failing to build on design-time builds for mostly 2 reasons:
- When loading the project VS is not connected to the Mac, which is required for binding projects.
- Since a reduce amount of targets are ran, the ReferencePath list is empty and makes _GeneratedSourcesFileList fail

Anyway, we shouldn't run targets that we don't need on a design-time build to avoid impacting on its performance

Why these targets were being executed on design-time builds? It's a side effect of adding them to CompileDependsOn.

Reference to design-time builds: https://github.com/dotnet/project-system/blob/master/docs/design-time-builds.md#what-is-a-design-time-build

Fixes bug 387900 - Referenced component could not be found for Binding Library projects
https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_workitems/edit/387900
2017-09-07 16:31:43 -04:00
Ankit Jain 6ac6efb4ad [mac][msbuild] Opt-in to filtering out denied assemblies (#2482)
PR for adding support for the filtering in msbuild:
	https://github.com/mono/msbuild/pull/23
2017-08-28 15:58:45 -04:00
Emanuel 4e0c5456cc [bug] Use Identity instead of FullPath on _CompressObjCBindingNativeFrameworkResources target (#2499)
Using the FullPath property breaks the build from Windows, since the metadata will contain a Windows path.

Partial fix for Bug #51759 - Getting build error for iOS sample 'Simpleapp-with-framework'

https://bugzilla.xamarin.com/show_bug.cgi?id=51759
2017-08-17 08:56:08 -04:00
Emanuel 35e1985350 [bug] Use Identity instead of FullPath on _CompressObjCBindingNativeFrameworkResources target (#2498)
Using the FullPath property breaks the build from Windows, since the metadata will contain a Windows path.

Partial fix for Bug #51759 - Getting build error for iOS sample 'Simpleapp-with-framework'

https://bugzilla.xamarin.com/show_bug.cgi?id=51759
2017-08-16 16:26:32 -04:00
Chris Hamons 58a38860d7 [macos] System mono should resolve non-XM libraries from system (#2480) (#2494)
- https://bugzilla.xamarin.com/show_bug.cgi?id=58703
- Was broken on msbuild but undetected due to https://bugzilla.xamarin.com/show_bug.cgi?id=53164
- Unified45Build_CompileToNativeOutput was broken in a recent commit bf53e6204d0950acd5f8efcce8732bd8d8
- This was not caught as the mmp tests are not run by default
- The test was bad/wrong, and checking msbuild not mmp ouput anyway, so fixing.
2017-08-15 11:58:28 -05:00
Chris Hamons e5d012c5b8 [macos] System mono should resolve non-XM libraries from system (#2480)
- https://bugzilla.xamarin.com/show_bug.cgi?id=58703
- Was broken on msbuild but undetected due to https://bugzilla.xamarin.com/show_bug.cgi?id=53164
- Unified45Build_CompileToNativeOutput was broken in a recent commit bf53e6204d0950acd5f8efcce8732bd8d8
- This was not caught as the mmp tests are not run by default
- The test was bad/wrong, and checking msbuild not mmp ouput anyway, so fixing.
2017-08-14 13:17:10 -05:00
joj b7c74fba16 Merge pull request #2430 from joj/master
Avoid duplicating define constants if they exist
2017-08-10 16:40:14 -03:00
joj 71f0c1ca56 Workaround Conditions in xbuild
This is part of PR 2430: avoid duplicating degine constants if they exist. This commit splits the condition and definition of the properties in two, because xbuild doesn't support the regex part in a condition. msbuild does, but we need to support both.
2017-08-10 14:20:12 -03:00
Jeffrey Stedfast 361f3abf53 [msbuild] Removed Task name/property logging that MSBuild does for us now (#2426) 2017-08-10 09:00:18 -04:00
Rolf Bjarne Kvinge 8b37b09ac6 [msbuild][mac] Fix #58479: Assign project configurations for IDE case (#2396) (#2413)
https://bugzilla.xamarin.com/show_bug.cgi?id=58479

_AssignAppExtensionConfiguration assigns project configuration from
`$(CurrentSolutionConfigurationContents)`, using the
`AssignProjectConfiguration` task, which is set if
`$(BuildingSolutionFile)` or `$(BuildingVisualStudio)` is true. We check
only for the former. It would be simpler to just check for ..

	`$(CurrentSolutionConfigurationContents) != ''`

.. like the iOS targets. This mapping from this task is used when
invoking `GetBundleTargetPath` on the extension project:

	Properties="%(_AppExtensionReferenceWithConfigurationExistent.SetConfiguration); %(_AppExtensionReferenceWithConfigurationExistent.SetPlatform)"

Details:

This failed for a project that had a reference to an app extension
project, with VSMac/msbuild. The app extension project was being built
with `Configuration==Debug` and `Platform==x86` for which the project
does not define any properties (like `$(OutputPath)`).

When the main project is built, we invoke `GetBundleTargetPath` on
the extension project, which in this case, has a different
config+platform mapping than the one for the referencing project. But
since the earlier `AssignProjectConfiguration` was skipped due to the
incorrect condition, `GetBundleTargetPath` is invoked with no
config+platform, thus falling back to extension project's defaults.

Note: The referencing project was being built with Debug|x86 and the
referenced project was expected to be built with Debug|AnyCPU .

This project:

- VSMac/xbuild - Works
	- This happens to work because the default from the extension
	  project is Debug|AnyCPU, so even though
	  `AssignProjectConfiguration` didn't set those properties, it
	  builds just fine.

- command line xbuild/msbuild - works!
	- `AssignProjectConfiguration` works because this time the
	  condition `$(BuildingSolutionFile) == 'true'` is True.

- VSMac/msbuild - fails
	- In this case, the default case does not work because in VSMac,
	  we use `SetGlobalProperty` to set config+platform properties
	  when starting the build for the referencing project.

	- And when the referencing project builds the referenced project
	  (via `GetBundleTargetPath`), it is built with config+platform
	  global properties set, and thus defaults from the referenced
	  don't get picked up!

	  	<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

	- With the `AssignProjectConfiguration` fix, we set the
	  properties via the `MSBuild` task, so it works.
	  But this needs to be fixed in VSMac anyway.
2017-08-03 16:04:44 -05:00
joj ba4e3fba26 Made replacement more resilient
The previous change had the fault of considering __UNIFIED__ANYTHING__ the same as __UNIFIED__ and if a user set that property, then he would lose the other (pointed out by jstedfast in the PR).
This commit fixes that.
2017-08-03 16:29:27 -03:00
joj ce334f5e42 Avoid duplicating define constants if they exist
In VS the property page for Build will show whatever is in DefineConstants, and then save it. Without this, that means that any time the Build page is saved, it duplicates the constants.
This fixes bug#32765: Bug 32765 - Conditional compilation symbols are duplicated everytime I reload the project or restart visual studio (https://bugzilla.xamarin.com/show_bug.cgi?id=32765)
2017-08-03 15:24:17 -03:00
Ankit Jain f4c64ad8c2 [msbuild][mac] Fix #58479: Assign project configurations for IDE case (#2396)
https://bugzilla.xamarin.com/show_bug.cgi?id=58479

_AssignAppExtensionConfiguration assigns project configuration from
`$(CurrentSolutionConfigurationContents)`, using the
`AssignProjectConfiguration` task, which is set if
`$(BuildingSolutionFile)` or `$(BuildingVisualStudio)` is true. We check
only for the former. It would be simpler to just check for ..

	`$(CurrentSolutionConfigurationContents) != ''`

.. like the iOS targets. This mapping from this task is used when
invoking `GetBundleTargetPath` on the extension project:

	Properties="%(_AppExtensionReferenceWithConfigurationExistent.SetConfiguration); %(_AppExtensionReferenceWithConfigurationExistent.SetPlatform)"

Details:

This failed for a project that had a reference to an app extension
project, with VSMac/msbuild. The app extension project was being built
with `Configuration==Debug` and `Platform==x86` for which the project
does not define any properties (like `$(OutputPath)`).

When the main project is built, we invoke `GetBundleTargetPath` on
the extension project, which in this case, has a different
config+platform mapping than the one for the referencing project. But
since the earlier `AssignProjectConfiguration` was skipped due to the
incorrect condition, `GetBundleTargetPath` is invoked with no
config+platform, thus falling back to extension project's defaults.

Note: The referencing project was being built with Debug|x86 and the
referenced project was expected to be built with Debug|AnyCPU .

This project:

- VSMac/xbuild - Works
	- This happens to work because the default from the extension
	  project is Debug|AnyCPU, so even though
	  `AssignProjectConfiguration` didn't set those properties, it
	  builds just fine.

- command line xbuild/msbuild - works!
	- `AssignProjectConfiguration` works because this time the
	  condition `$(BuildingSolutionFile) == 'true'` is True.

- VSMac/msbuild - fails
	- In this case, the default case does not work because in VSMac,
	  we use `SetGlobalProperty` to set config+platform properties
	  when starting the build for the referencing project.

	- And when the referencing project builds the referenced project
	  (via `GetBundleTargetPath`), it is built with config+platform
	  global properties set, and thus defaults from the referenced
	  don't get picked up!

	  	<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

	- With the `AssignProjectConfiguration` fix, we set the
	  properties via the `MSBuild` task, so it works.
	  But this needs to be fixed in VSMac anyway.
2017-08-03 08:59:42 +02:00
Rolf Bjarne Kvinge 75155be059 [msbuild] Strip frameworks better. (#2305) (#2400)
This can save a significant amount of space when using code-sharing: the PIX
app saved ~11mb in release mode (when stripping).

`man strip` says:

```
For dynamic shared libraries, the maximum level of stripping is usually -x (to remove all non-global symbols).

-x Remove all local symbols (saving only global symbols).
```
2017-08-02 16:06:49 +02:00
Sebastien Pouliot 35765ecc0f Merge d15-3 (#2322)
* [msbuild] Re-added wildcard (*) expandsion for application-identifier in Entitlements.plist (#2186)

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57119

* Bump mono (#2213)

* Framework tests were still binding non-linked Simple class which errors now (#2216) (#2218)

- Improve Makefile to rebuild when projects build with errors

* Bump mono to get cecil fix for bug #56808. (#2222)

https://bugzilla.xamarin.com/show_bug.cgi?id=56808

* [msbuild] Use @(ReferencePath) instead of @(ResolvedFiles) (#2188) (#2214)

This allows things to work on both xbuild and msbuild.

In xbuild, both lists are exactly the same and on msbuild,
only @(ReferencePath) exists.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55147

* NSActivityOptions.IdleDisplaySleepDisabled had wrong value (#2232) (#2239)

This was due to an integer overflow.  The original value was based on Int32
1 << 40 == 256

The correct value should be based on a UInt64.
1UL << 40 == 1099511627776

* [tests] Fix bug 57699 - [iOS]InternalsTest failure (Linkall) tests on device (#2243)

Strip native debugging symbols should not be checked for debug builds

* Bump mono to get fix for bug #57780.

https://bugzilla.xamarin.com/show_bug.cgi?id=57780
2017-07-13 08:16:25 -04:00
Rolf Bjarne Kvinge 981af59058 [mtouch] Don't allow building for 32-bit when deployment target is >= 11. Fixes #57966. (#2303)
* [mtouch] Don't allow building for 32-bit when deployment target is >= 11. Fixes #57966.

Also bump maccore to get an mlaunch error for launching a 32-bit app in a 64-bit-only simulator.

https://bugzilla.xamarin.com/show_bug.cgi?id=57966

* [tests][msbuild] Make sure all Info.plists have deployment targets.

Otherwise we get different behavior (32-bit allowed or not) depending on which
Xcode is used to build.

* [mtouch] Default to 64-bit arch if not specified and targeting iOS 11+.

* [tests] Tweak tests to either specify a deployment target < 11 or not build a 32-bit arch.
2017-07-11 08:54:50 +02:00
Rolf Bjarne Kvinge 76d9e43f53 [msbuild] Strip frameworks better. (#2305)
This can save a significant amount of space when using code-sharing: the PIX
app saved ~11mb in release mode (when stripping).

`man strip` says:

```
For dynamic shared libraries, the maximum level of stripping is usually -x (to remove all non-global symbols).

-x Remove all local symbols (saving only global symbols).
```
2017-07-10 16:23:24 +02:00
Jeffrey Stedfast 6351aef095 [msbuild] Don't define __IOS__ for tvOS binding projects (#2274)
* [msbuild] Don't define __IOS__ for tvOS binding projects

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57764

* minor fixups

* Conditional compilation.
2017-06-30 12:35:48 -04:00
Jeffrey Stedfast 5d6d244d04 [msbuild] Properly generate dSYMs for WatchKit2 appex's (#2215)
* [msbuild] Properly generate dSYMs for WatchKit2 appex's

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=56345

* dSYMs only get generated for iPhone

* Reverted accidental change to mono
2017-06-15 14:03:37 -04:00
Jeffrey Stedfast f010926615 [msbuild] Use @(ReferencePath) instead of @(ResolvedFiles) (#2188)
This allows things to work on both xbuild and msbuild.

In xbuild, both lists are exactly the same and on msbuild,
only @(ReferencePath) exists.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55147
2017-06-12 13:29:45 -05:00
Rolf Bjarne Kvinge 9356b53410 [msbuild] Fix MSBuild tests to build using Xcode 9. (#2201)
Set the min deployment target to 7.0 for a test to make sure ibtool doesn't
complain, and fix the list of expected bundle resources by adding Assets.car
to the list.

Fixes the following failures:

1. Xamarin.iOS.Tasks.TargetTests.BuildExecutable :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

2. Xamarin.iOS.Tasks.TargetTests.BundleResources :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

3. Xamarin.iOS.Tasks.TargetTests.CleanExecutable :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

4. Xamarin.iOS.Tasks.TargetTests.CopyContentToBundle :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

5. Xamarin.iOS.Tasks.TargetTests.Disappearing_Bundle_Resource :   #2

      Expected: True
      But was:  False

6. Xamarin.iOS.Tasks.TargetTests.Disappearing_Content :   #2

      Expected: True
      But was:  False

7. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_DefaultValue :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

8. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_False :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

9. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_True :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

10. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

11. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2

12. Xamarin.iOS.Tasks.TargetTests.UnpackLibraryResources_ExecutableProject :   #RunTarget-ErrorCount

    	ibtool exited with code 1
    	Compiling IB documents for earlier than iOS 7 is no longer supported.
      Expected: 0
      But was:  2
2017-06-10 04:04:26 -07:00
Jeffrey Stedfast 2f4e81809c [msbuild] Re-added wildcard (*) expandsion for application-identifier… (#2182)
* [msbuild] Re-added wildcard (*) expandsion for application-identifier in Entitlements.plist

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=57119

* Fixed unit tests
2017-06-08 14:01:22 -04:00