Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add minimum ARM64 support #722

Merged
merged 7 commits into from Sep 6, 2019
Merged

Conversation

azchohfi
Copy link
Contributor

@azchohfi azchohfi commented Sep 6, 2019

Supersedes #695

jkunkee and others added 7 commits May 22, 2019 16:25
This change adds ARM64 entries where ARM(32) entries already exist.

In the case of certain test configurations, ARM is set to use the x86
configuration so ARM64 imitates this.

Since winrt.test.managed.uap.csproj is not compatible with .NET Native
and the ARM64 UWP does not support .NET other than Native, it is
omitted.
This takes care of unresolved externals in the Direct3DInterop library
by updating to a version of directxtk_uwp that has ARM64 support.
This change fixes the Nuget Restore error
The local source 'C:\Users\jkunkee\source\repos\Win2D\bin' doesn't exist.

Incidentally, it also pulls in a version with official ARM64 support:
https://github.com/Microsoft/dotnet/blob/master/releases/UWP/net-native2.2/README.md#uwp-627-march-12th-2019
This change fixes errors about ARM64 not being supported before 16299.
This change accomodates Visual Studio's lack of support for multiple
TargetPlatformMinVersion values in one project by separating the NuGet
restore and the build operations that depend on it.

UWAs that intend to support ARM64 must have a TargetPlatformMinVersion
of at least 10.0.16299.0, while UWAs that intend to support all past
versions of Windows 10 must set it to 10.0.10240.0. The Win2D sample
and test UWAs need to do both, but NuGet restore only takes one. This
this change copies the restore and build operations into two such that
the 16299 restore runs, the 16299 (ARM64) builds run, then the 10240
restore runs, and finally the 10240 builds run. This builds
everything, including tests, for all architectures. One side effect is
that the NuGet package state is left in a state that supports building
the most common Platforms from Visual Studio.

A corrolary to this is that exported sample projects will require
similar arrangements to build for both full Windows 10 backwards
compatibility and for ARM64.

Since BuildDocs.proj also uses NuGet Restore, it specifically uses the
more general 10240 restore target.
As of Visual Studio 2017 and this point in the commit history, this
workaround is no longer necessary.
@shawnhar shawnhar merged commit 52f7a0b into microsoft:master Sep 6, 2019
This was referenced Sep 6, 2019
@MagicAndre1981
Copy link

when will the new version be released to nuget to support UWP ARM64 for Xamarin.Forms?

@shawnhar
Copy link
Member

shawnhar commented Sep 9, 2019

I'm working on spinning and validating a release build now. Likely a couple of days to wrap this up.

@MagicAndre1981
Copy link

I'm working on spinning and validating a release build now. Likely a couple of days to wrap this up.

any progress on this @shawnhar ?

@shawnhar
Copy link
Member

Sorry, getting the build together is taking much longer than we'd hoped. Hopefully soon now.

In the meantime you can build this yourself to unblock development using it.

@MagicAndre1981
Copy link

Sorry, getting the build together is taking much longer than we'd hoped. Hopefully soon now.

ok. 1.24.0 is now out 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants