-
-
Notifications
You must be signed in to change notification settings - Fork 726
Compile NVDA with Visual Studio 2022 #14313
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
Conversation
See test results for failed build of commit 44fbf7c9bf |
|
Would this break compatibility with older versions of windows that the code
still runs on now?
Brian
…--
***@***.***
Sent via blueyonder.(Virgin media)
Please address personal E-mail to:-
***@***.***, putting 'Brian Gaff'
in the display name field.
----- Original Message -----
From: "Michael Curran" ***@***.***>
To: "nvaccess/nvda" ***@***.***>
Cc: "Subscribed" ***@***.***>
Sent: Sunday, October 30, 2022 8:38 AM
Subject: [nvaccess/nvda] Compile NvDA with Visual Studio 2022 (PR #14313)
<!-- Please read and fill in the following template, for an explanation
of the sections see:
https://github.com/nvaccess/nvda/blob/master/devDocs/githubPullRequestTemplateExplanationAndExamples.md
Please also note that the NVDA project has a Citizen and Contributor Code
of Conduct which can be found at
https://github.com/nvaccess/nvda/blob/master/CODE_OF_CONDUCT.md. NV Access
expects that all contributors and other community members read and abide
by the rules set out in this document while participating or contributing
to this project. This includes creating or commenting on issues and pull
requests.
Please initially open PRs as a draft. See
https://github.com/nvaccess/nvda/wiki/Contributing
-->
### Link to issue number:
None.
### Summary of the issue:
Although NVDA can be locally built with Visual Studio 2022, Official
builds on appveyor are built with Visual Studio 2019, and even local
builds still require the VS 2019 build tools, as that is what the
microsoft-ui-uiAutomation project requires by default.
As Visual Studio 2022 has been out for some time now, NvDA should move to
this version officially. This would remove the need for developers to have
multiple versions installed, and NVDA can take advantage of improvements
in the latest version (E.g. faster compile time).
### Description of user facing changes
None.
### Description of development approach
microsoft-ui-uiAutomation sconscript: instruct msbuild to use the same
platform toolset as the rest of NVDAHelper by passing in the
PlatformToolset build variable created from the MSVC_VERSION SCons
variable. This removes the need for the VS 2019 build tools to be
installed when compiling with VS 2022.
Instruct appveyor to use its VS 2022 system image.
Update the NVDA readme to no longer mention VS 2019.
### Testing strategy:
Ran NVDA locally for several hours, performing normal daily tasks.
### Known issues with pull request:
None known.
### Change log entries:
New features
Changes
Bug fixes
For Developers
* Building NVDA now requires Visual Studio 2022. Please refer to
NVDA's readme.md for the specific list of Visuao Studio components.
### Code Review Checklist:
<!--
This checklist is a reminder of things commonly forgotten in a new PR.
Authors, please do a self-review of this pull-request.
Check items to confirm you have thought about the relevance of the item.
Where items are missing (eg unit / system tests), please explain in the
PR.
To check an item `- [ ]` becomes `- [x]`, note spacing.
You can also check the checkboxes after the PR is created.
A detailed explanation of this checklist is available here:
https://github.com/nvaccess/nvda/blob/master/devDocs/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist
-->
- [x] Pull Request description:
- description is up to date
- change log entries
- [x] Testing:
- Unit tests
- System (end to end) tests
- Manual testing
- [x] API is compatible with existing add-ons.
- [x] Documentation:
- User Documentation
- Developer / Technical Documentation
- Context sensitive help for GUI changes
- [x] UX of all users considered:
- Speech
- Braille
- Low Vision
- Different web browsers
- Localization in other languages / culture than English
- [x] Security precautions taken.
You can view, comment on, or merge this pull request online at:
#14313
-- Commit Summary --
* microsoft-ui-uiAutomation sconscript: instruct msbuild to use the same
platform toolset as the rest of nvdaHelper. Allowing this project to be
compiled with VS 2022.
* Appveyor will use Visual Studio 2022. NVDA's readme now states VS
2022 is required.
-- File Changes --
M appveyor.yml (2)
M nvdaHelper/microsoft-ui-uiautomation/sconscript (18)
M readme.md (19)
-- Patch Links --
https://github.com/nvaccess/nvda/pull/14313.patch
https://github.com/nvaccess/nvda/pull/14313.diff
--
Reply to this email directly or view it on GitHub:
#14313
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
|
To my knowledge, NVDA will still function on Windows 7. Obviously we
will want to verify this though. If we find this is not the case, our
position right now would be to continue maintaining Windows 7 and
therefore not upgrade. If so, the final commit on this pr would be
removed. But the first commit, which fixes microsoft-ui-uiAutomation
should still be merged, as it removes the need for developers using VS
2022 to have to install the 2019 build tools.
|
|
I'm currently on Visual Studio 2022 preview and am suffering issues with compiling liblouis. See liblouis/liblouis#1259 |
|
I added a fix for liblouis in my louisClang branch. |
|
Right now with stable VS 2022 it is not necessary. It compiles fine.
So perhaps we can address that if necessary once that version of Clang
in VS 2022 preview hits VS 2022 stable.
|
|
Great. |
See test results for failed build of commit 8a20ba1933 |
See test results for failed build of commit c956f10fbc |
See test results for failed build of commit 520a2b7274 |
See test results for failed build of commit 4cc36bafe9 |
See test results for failed build of commit f1e935d377 |
908fcca to
e29c4a2
Compare
See test results for failed build of commit 4b71d9ddc6 |
|
The VS 2022 image on appveyor is Windows 11. As Notepad has been modernised with a richEdit control on Windows 11, this causes inconsistancy for our system tests between win 10 and 11. |
|
Hi, as a side note (separate issue/PR pair), I guess it is time to update the readme to say that Windows 11 SDK 10.0.22621 is a must as Appveyor image for VS2022 uses that SDK. Thanks.
|
|
Hi, How about using WordPad as the class names are the same across Windows 10 and 11? We may need to look for rich edit implementation issues, but for at least getting this PR to work, we can try it. Thanks. |
Taken from pr #14313 which cannot yet be merged in its entirety. Summary of the issue: NVDA can be compiled locally with VS 2022, but the VS 2019 build tools are still required, due to the Microsoft-UI-UIAutomation project specifying the VS 2019 platform toolset by default. Description of user facing changes None Description of developer facing changes NVDA can now be fully compiled locally with Visual Studio 2022, without also requiring the 2019 build tools. Description of development approach • When compiling the microsoft-ui-uiAutomation project, instruct msbuild to use the same platform toolset as the rest of NVDAHelper.
I'm slightly puzzled. According to the appveyor docs, its Windows Server 2019. |
|
@michaelDCurran Could you please merge in master so we can get new artifacts? I'd be interested in debugging this further, but as the artifacts are gone, I have no log files to investigate. |
|
@LeonarddeR I've merged master now. |
|
@michaelDCurran Thanks for merging. |
|
It looks like the thing just builds. As I already thought, Notepad in Windows Server 2019 should still be on the Windows 10 version. There must have been another, unrelated issue. |
|
I wonder if you have noticed that in the recent VS 2022 installation, ARM64 became ARM64/ARM64CE. should changes be made to the dependencies section of the documentation to alert those using the latest VS 2022? |
|
@hwf1324 wrote:
I also noticed this situation you mentioned, I hope this can be made clearer in the documentation. Since NV Access has recently unified product documentation, can you open a separate PR to clarify this? Cheers Cary |
|
Is there anything holding this back, apart from the merge conflicts? |
6df1bed to
ce2c144
Compare
See test results for failed build of commit 684b52e4b3 |
See test results for failed build of commit 5992447733 |
See test results for failed build of commit a3a80837e0 |
See test results for failed build of commit 5df20d9e91 |
See test results for failed build of commit 2628ac4503 |
See test results for failed build of commit f298913499 |
Link to issue number:
None.
Summary of the issue:
Although NVDA can be locally built with Visual Studio 2022, Official builds on appveyor are built with Visual Studio 2019, and even local builds still require the VS 2019 build tools, as that is what the microsoft-ui-uiAutomation project requires by default.
As Visual Studio 2022 has been out for some time now, NvDA should move to this version officially. This would remove the need for developers to have multiple versions installed, and NVDA can take advantage of improvements in the latest version (E.g. faster compile time).
Description of user facing changes
None.
Description of development approach
microsoft-ui-uiAutomation sconscript: instruct msbuild to use the same platform toolset as the rest of NVDAHelper by passing in the PlatformToolset build variable created from the MSVC_VERSION SCons variable. This removes the need for the VS 2019 build tools to be installed when compiling with VS 2022.
Instruct appveyor to use its VS 2022 system image.
Update the NVDA docs to no longer mention VS 2019.
Aldo disables notepad system tests. These have been unreliable for some time and become much more flakey on this image.
Testing strategy:
Ran NVDA locally for several hours, performing normal daily tasks.
Known issues with pull request:
None known.
Change log entries:
New features
Changes
Bug fixes
For Developers
Code Review Checklist: