Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21478.8 -> To Version 6.0.100-rtm.21479.7
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
We don't need to compile project-level assets for every RuntimeIdentifier in
multi-rid builds, we can instead compile them just once in the outer build.
There is also a correctness issue here: we can't compile assets more than once
and expect to get the exact same compiled result every time (in particular
actool seems to be adding random bytes in to the compiled output), and this
creates a problem when trying to merge the different runtime-specific compiled
output into a universal binary.
We accomplish this by:
* Processing these assets in the outer build, before we execute the
rid-specific inner builds.
* Store the paths to the assets we've processed in a file.
* In the inner builds, we read that file, and remove any matches from the
corresponding item group.
* Make sure to copy the compiled assets to the app bundle at the end of the
outer build.
These are the assets we currently handle this way:
* BundleResource
* ImageAsset
* InterfaceDefinition
* SceneKitAsset
* Collada
* TextureAtlas
* CoreMLModel
Also:
* Add a new test case (AppWithResource) that contains all these different
types of assets.
* Add support for the ScnTool task on Mac Catalyst (which the new test case
revealed was missing).
Fixes https://github.com/xamarin/xamarin-macios/issues/12410.
Fixes this problem:
error MSB4018: The "FindItemWithLogicalName" task failed unexpectedly.
error MSB4018: System.IO.FileLoadException: Could not load file or assembly 'Xamarin.Localization.MSBuild, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
error MSB4018: File name: 'Xamarin.Localization.MSBuild, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
error MSB4018: at Xamarin.MacDev.Tasks.FindItemWithLogicalNameTaskBase.Execute()
error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21476.2 -> To Version 6.0.100-rtm.21478.8
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* MTLCopyAllDevices returns a retained object, so we need to release it.
* MTLCopyAllDevicesWithObserver returns an observer (no need to provide one). This
means we can obsolete the 'ref NSObject' overload (the API doesn't make sense),
and instead add an 'out NSObject' overload.
* The returned observer from MTLCopyAllDevicesWithObserver is retained, so we must
release it.
* The returned array from MTLCopyAllDevicesWithObserver is a retained object, so
we need to release it.
* Simpify the supporting block code for the calls to MTLCopyAllDevicesWithObserver.
* Clean up the block we passed to MTLCopyAllDevicesWithObserver.
We need to strongname our MSBuild assemblies, so that different versions
can be loaded side-by-side (one example being having both a legacy and a
.NET project in the same solution).
This required setting a version for Xamarin.iOS.Tasks.dll and
Xamarin.Mac.Tasks.dll, otherwise strong-naming won't work properly (all
versions of an assembly would have the same identity).
Also sign the corresponding test assemblies, since they poke into the
internals of the task assemblies.
Fixes https://github.com/xamarin/xamarin-macios/issues/9835.
Removes the following warning during the builds:
```
warning CS8767: Nullability of reference types in type of parameter 'host' of 'bool NSHost.Equals(NSHost host)' doesn't match implicitly implemented member 'bool IEquatable<NSHost>.Equals(NSHost? other)' (possibly because of nullability attributes)
```
Test was added to ensure that we did not throw an exception.
- Added the marshaling attr and a test to ensure it is ok.
- Fix the cecil MarshalAs test to not skip over types when checking.
This revealed multiple tests failures that needed fixing.
fixes: https://github.com/xamarin/maccore/issues/2519
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
* Update dependencies from https://github.com/dotnet/installer build 20210924.1
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21472.96 -> To Version 6.0.100-rtm.21474.1
* Update dependencies from https://github.com/dotnet/installer build 20210924.34
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21472.96 -> To Version 6.0.100-rtm.21474.34
Dependency coherency updates
Microsoft.NET.ILLink.Tasks
From Version 6.0.100-1.21459.1 -> To Version 6.0.100-1.21473.1 (parent: Microsoft.Dotnet.Sdk.Internal
* Update dependencies from https://github.com/dotnet/installer build 20210926.2
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21472.96 -> To Version 6.0.100-rtm.21476.2
Dependency coherency updates
Microsoft.NET.ILLink.Tasks
From Version 6.0.100-1.21459.1 -> To Version 6.0.100-1.21473.1 (parent: Microsoft.Dotnet.Sdk.Internal
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Remove the following warning:
```
make[3]: warning: -jN forced in submake: disabling jobserver mode.
/Applications/Xcode_13.0.0-beta5.app/Contents/Developer/usr/bin/make -C ../../../maccore/tools/mlaunch install -j8
make[3]: warning: -jN forced in submake: disabling jobserver mode.
/Applications/Xcode_13.0.0-beta5.app/Contents/Developer/usr/bin/make
../../_build/Microsoft.iOS.Sdk/tools/bin/mlaunch
../../_build/Microsoft.tvOS.Sdk/tools/bin/mlaunch
```
There is no need to pass the number of jobs to be used to a submake
commands as per the gnu make documentation:
```
The ‘-j’ option is a special case (see Parallel Execution). If you set it to some numeric value ‘N’ and your operating system supports it (most any UNIX system will; others typically won’t), the parent make and all the sub-makes will communicate to ensure that there are only ‘N’ jobs running at the same time between them all. Note that any job that is marked recursive (see Instead of Executing Recipes) doesn’t count against the total jobs (otherwise we could get ‘N’ sub-makes running and have no slots left over for any real work!)
```
That means there is not need to pass it since it will be the default
used in submake commands. The override has not effect other the warning
and therefore is better to remove the noise.
csc does not care about the order of the files, yet it does care about
duplicate files (warning is printed). One of the side effects of sort
implementation in gnu make is that it removes the duplicates and
therefore the warning about some files being included twice.
For executable projects, we must run the linker (otherwise we won't produce
something that can be executed).
We'll enable the linker by default in these cases, but if the developer has
manually disabled the linker (if the linker fails to execute for any reason,
it will suggest that the developer disables it), then we should show an error
explaining why.
Fixes https://github.com/xamarin/xamarin-macios/issues/12372.
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21472.4 -> To Version 6.0.100-rtm.21472.96
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/installer build 20210921.61
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21466.6 -> To Version 6.0.100-rtm.21471.61
* Update dependencies from https://github.com/dotnet/installer build 20210922.4
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.100-rtm.21466.6 -> To Version 6.0.100-rtm.21472.4
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
When checking if we need to manually preserve a native symbol, we need to
check if a P/Invoke matches both static and dynamic libraries from the Mono
runtime, not just dynamic libraries.
P/Invokes may point to a dylib, while the actual library linked into the .app
might be a static library, so make sure to compare without the extension.
This fixes an issue when linking with the static version of the runtime libraries.
New commits in xamarin/Xamarin.MacDev:
* xamarin/Xamarin.MacDev@9e6e29f [Xamarin.MacDev] Return valid iOS/macOS versions when converting betweeen iOS and macOS versions for Mac Catalyst.
Diff: 41d91e0de0..9e6e29f2a4