Skip to content

Allow building on Visual Studio 2022#13055

Merged
michaelDCurran merged 2 commits into
nvaccess:masterfrom
LeonarddeR:vs2022
Nov 21, 2021
Merged

Allow building on Visual Studio 2022#13055
michaelDCurran merged 2 commits into
nvaccess:masterfrom
LeonarddeR:vs2022

Conversation

@LeonarddeR

@LeonarddeR LeonarddeR commented Nov 11, 2021

Copy link
Copy Markdown
Collaborator

Link to issue number:

Closes #13033

Summary of the issue:

NVDA now builds with Visual Studio 2019. Version 2022 was released recently.

Description of how this pull request fixes the issue:

  1. Updates SCons to version 4.3.0.
  2. Allows building with Visual Studio 2019 and newer.
  3. Updates the readme with download url's that are likely to be pretty stable in the near and more distant future.

Testing strategy:

Tested locally and on appveyor.

Known issues with pull request:

It looks like MS made it pretty difficult to get to the downloads of 2019 through their website without logging in, therefore I'm linking to the executables directly using their short urls.

Change log entries:

For Developers

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English

@LeonarddeR LeonarddeR requested a review from a team as a code owner November 11, 2021 07:26
@LeonarddeR LeonarddeR marked this pull request as draft November 11, 2021 07:27
@lukaszgo1

Copy link
Copy Markdown
Contributor

While I certainly agree that allowing to build with VS 2022 is pretty important as some people may want to use the newest version available I'm not convinced preventing compilation with 2019 is a good idea as per the several reasons:

  1. VS 2022 does not offer us any visible benefits at this stage, and since it has been released only 4 days ago it is much less tested.
  2. System requirements for Visual Studio 2022 are pretty unreasonable essentially preventing anyone running 32-bit versions of Windows or LTSC versions of Windows 10 (which are still in support for a long time) from contributing to NVDA without a good reason.
  3. Historically I believe we tried to allow building NVDA under all versions of Windows which NVDA supports - I've no idea if this has been ever written down as a rule or was a coincidence.
  4. If some corporation would like to contribute to NVDA Visual Studio is the only one of our dependencies which cannot be used for free potentially necessitating a purchase even though previous version is still perfectly suitable for building.

There would undoubtedly come a time when still allowing to build with VS 2019 would hold us back in some way and at this point we certainly should drop this support, but for now there is no real need in my opinion.
I personally believe this PR should be changed so that VS 2019 and up are accepted for compilation, with a mention in the readme that VS 2022 is recommended but compilation can be performed with 2019 and up.

@LeonarddeR

Copy link
Copy Markdown
Collaborator Author
  1. If some corporation would like to contribute to NVDA Visual Studio is the only one of our dependencies which cannot be used for free potentially necessitating a purchase even though previous version is still perfectly suitable for building.

I don't understand this one. You can perfectly install several editions of Visual Studio side by side, including enterprise and community.

I personally believe this PR should be changed so that VS 2019 and up are accepted for compilation, with a mention in the readme that VS 2022 is recommended but compilation can be performed with 2019 and up.

I'm happy to do that, though I think it makes more sense to stick to Visual Studio 2019 on appveyor in this case and yet allow building with 2022. This ensures that, when we need to make a change that breaks Visual Studio 2019, we'll be notified automatically.

@lukaszgo1

Copy link
Copy Markdown
Contributor

I don't understand this one. You can perfectly install several editions of Visual Studio side by side, including enterprise and community.

Sure you can. The problem is that if you are a enterprise there are several restrictions for using Community version of VS as mentioned in its EULA, therefore it is likely you cannot use Community edition legally in that case.

I'm happy to do that, though I think it makes more sense to stick to Visual Studio 2019 on appveyor in this case and yet allow building with 2022. This ensures that, when we need to make a change that breaks Visual Studio 2019, we'll be notified automatically.

Makes sense.

@LeonarddeR LeonarddeR changed the title Build on Visual Studio 2022 Allow building on Visual Studio 2022 Nov 12, 2021
@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

I updated the pr description.

Comment thread nvdaHelper/archBuild_sconscript Outdated
@AppVeyorBot

Copy link
Copy Markdown

Support vs2019 and newer

Update readme

Restore appveyor back to 2019

Update nvdaHelper/archBuild_sconscript

Bad commit fixup

Update scons to 4.3.0
@LeonarddeR LeonarddeR marked this pull request as ready for review November 19, 2021 06:28
@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

scons 4.3.0 is there, so we're ready to rock.

@michaelDCurran michaelDCurran merged commit f19061c into nvaccess:master Nov 21, 2021
@nvaccessAuto nvaccessAuto added this to the 2022.1 milestone Nov 21, 2021
@LeonarddeR

Copy link
Copy Markdown
Collaborator Author

This was in fact reverted by #13387

@LeonarddeR LeonarddeR deleted the vs2022 branch August 23, 2025 06:28
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.

Support building with Visual Studio 2022

5 participants