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

Port Desktop DLL to ARM64EC #13320

Merged
merged 25 commits into from
Jun 10, 2024
Merged

Port Desktop DLL to ARM64EC #13320

merged 25 commits into from
Jun 10, 2024

Conversation

JunielKatarn
Copy link
Contributor

@JunielKatarn JunielKatarn commented Jun 8, 2024

Description

Enable building an ARM64EC flavor of react-native-win32.dll.

Type of Change

  • New feature (non-breaking change which adds functionality)

Why

Major consumers of react-native-win32.dll require native performance as ARM64 devices become more broadly adopted.

What

  • Adds the ARM64EC platform to required projects.
  • Removes dependencies on OpenSSL due to lack of support for the target platform.
  • Overrides the platform values for V8-JSI, Hermes, and WinAppSdk NuGet dependencies.

Testing

Changelog

  • Support react-native-win32.dll on ARM64EC.
Microsoft Reviewers: Open in CodeFlow

@JunielKatarn JunielKatarn requested review from a team as code owners June 8, 2024 15:01
@JunielKatarn JunielKatarn requested a review from a team June 8, 2024 15:05
@JunielKatarn JunielKatarn requested a review from a team as a code owner June 8, 2024 16:01
Copy link
Member

@vmoroz vmoroz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@JunielKatarn JunielKatarn merged commit 5a2f8d9 into microsoft:main Jun 10, 2024
57 checks passed
@JunielKatarn JunielKatarn deleted the arm64ec branch June 10, 2024 22:55
JunielKatarn added a commit to jurocha-ms/react-native-windows that referenced this pull request Jun 11, 2024
* Add ARM64EC Platform

* Add property sheets

* Add packages.lock.json

* Upgrade WinSDK version for C/C++ projects
Older SDK versions do not contain softintrin.h
See http://www.emulators.com/docs/abc_arm64ec_explained.htm

* Do not build Integration Test projects for ARM64EC

* Make V8Platform x64 for ARM64EC

* Override HermesPlatform for ARM64EC

* Override WinAppSDK platforms for ARM64EC

* Exclude OpenSSL on Desktop DLL for ARM64EC

* Override WinAppSDK _MrtCoreRuntimeIdentifier

* Update packages.lock.json

* Add explicit LIB dependencies for ARM64EC

* Skip React.Windows.IntegrationTests on ARM64EC

* Change files

* Simplify condition for WindowsAppSDKOverrides

* Switch from ARM64 to ARM64EC in Desktop CI

* Update prepare-build-env.yml

* Enable ARM64EC on PullRequest env

* Remove OpenSSL from Desktop LIB and DLL

* /t:Vars - Log SolutionName
JunielKatarn added a commit to jurocha-ms/react-native-windows that referenced this pull request Jun 11, 2024
* Add ARM64EC Platform

* Add property sheets

* Add packages.lock.json

* Upgrade WinSDK version for C/C++ projects
Older SDK versions do not contain softintrin.h
See http://www.emulators.com/docs/abc_arm64ec_explained.htm

* Do not build Integration Test projects for ARM64EC

* Make V8Platform x64 for ARM64EC

* Override HermesPlatform for ARM64EC

* Override WinAppSDK platforms for ARM64EC

* Exclude OpenSSL on Desktop DLL for ARM64EC

* Override WinAppSDK _MrtCoreRuntimeIdentifier

* Update packages.lock.json

* Add explicit LIB dependencies for ARM64EC

* Skip React.Windows.IntegrationTests on ARM64EC

* Change files

* Simplify condition for WindowsAppSDKOverrides

* Switch from ARM64 to ARM64EC in Desktop CI

* Update prepare-build-env.yml

* Enable ARM64EC on PullRequest env

* Remove OpenSSL from Desktop LIB and DLL

* /t:Vars - Log SolutionName
JunielKatarn added a commit to jurocha-ms/react-native-windows that referenced this pull request Jul 19, 2024
* Add ARM64EC Platform

* Add property sheets

* Add packages.lock.json

* Upgrade WinSDK version for C/C++ projects
Older SDK versions do not contain softintrin.h
See http://www.emulators.com/docs/abc_arm64ec_explained.htm

* Do not build Integration Test projects for ARM64EC

* Make V8Platform x64 for ARM64EC

* Override HermesPlatform for ARM64EC

* Override WinAppSDK platforms for ARM64EC

* Exclude OpenSSL on Desktop DLL for ARM64EC

* Override WinAppSDK _MrtCoreRuntimeIdentifier

* Update packages.lock.json

* Add explicit LIB dependencies for ARM64EC

* Skip React.Windows.IntegrationTests on ARM64EC

* Change files

* Simplify condition for WindowsAppSDKOverrides

* Switch from ARM64 to ARM64EC in Desktop CI

* Update prepare-build-env.yml

* Enable ARM64EC on PullRequest env

* Remove OpenSSL from Desktop LIB and DLL

* /t:Vars - Log SolutionName
JunielKatarn added a commit that referenced this pull request Jul 19, 2024
* Port Desktop DLL to ARM64EC (#13320)

* Upgrade WinSDK version for C/C++ projects

* Do not build Integration Test projects for ARM64EC

* Make V8Platform x64 for ARM64EC

* Override HermesPlatform for ARM64EC

* Override WinAppSDK platforms for ARM64EC

* Exclude OpenSSL on Desktop DLL for ARM64EC

* Override WinAppSDK _MrtCoreRuntimeIdentifier

* Add explicit LIB dependencies for ARM64EC

* Skip React.Windows.IntegrationTests on ARM64EC

* Remove OpenSSL from Desktop LIB and DLL

* /t:Vars - Log SolutionName

* Update Desktop NUSPEC to use ARM64EC (#13335)

* Add ARM64EC strip slices
JunielKatarn added a commit that referenced this pull request Jul 20, 2024
* Upgrade Desktop solution/projects to Win SDK 10.0.22621.0 (#13326)

* /t:Vars - Log SolutionName

* Remove OpenSSL from Desktop LIB and DLL

* Port Desktop DLL to ARM64EC (#13320)

* Upgrade WinSDK version for C/C++ projects
Older SDK versions do not contain softintrin.h
See http://www.emulators.com/docs/abc_arm64ec_explained.htm

* Make V8Platform x64 for ARM64EC

* Override HermesPlatform for ARM64EC

* Override WinAppSDK platforms for ARM64EC

* Skip React.Windows.IntegrationTests on ARM64EC

* Add ARM64EC to StripAdditionalPlatformsFromNuspec.ps1

---------

Co-authored-by: Jon Thysell <jthysell@microsoft.com>
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.

3 participants