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

[Docs] Windows build requirements - external tools vs. VS components #55629

Closed
cw2 opened this issue Jul 14, 2021 · 9 comments
Closed

[Docs] Windows build requirements - external tools vs. VS components #55629

cw2 opened this issue Jul 14, 2021 · 9 comments

Comments

@cw2
Copy link
Contributor

cw2 commented Jul 14, 2021

The Requirements to build dotnet/runtime on Windows document lists a few external tools (namely CMake, Ninja and Python) that needs to be downloaded, installed and their executable added to the default PATH environment variable - but all these tools are already parts of the Visual Studio Community 2019 (with sufficient/higher versions) and can be easily installed via Visual Studio Installer (which can be automated further in provided .vsconfig), thus making the build environment setup basically just one-step VS install.

@dotnet-issue-labeler dotnet-issue-labeler bot added area-Setup untriaged New issue has not been triaged by the area owner labels Jul 14, 2021
@ghost
Copy link

ghost commented Jul 14, 2021

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

The Requirements to build dotnet/runtime on Windows document lists a few external tools (namely CMake, Ninja and Python) that needs to be downloaded, installed and their executable added to the default PATH environment variable - but all these tools are already parts of the Visual Studio Community 2019 (with sufficient/higher versions) and can be easily installed via Visual Studio Installer (which can be automated further in provided .vsconfig), thus making the build environment setup basically just one-step VS install.

Author: cw2
Assignees: -
Labels:

area-Infrastructure, area-Setup, untriaged

Milestone: -

@jkotas jkotas removed the area-Setup label Jul 14, 2021
@cw2
Copy link
Contributor Author

cw2 commented Jul 20, 2021

Closing (no feedback in almost a week).

@cw2 cw2 closed this as completed Jul 20, 2021
@jkotas jkotas reopened this Jul 20, 2021
@jkotas
Copy link
Member

jkotas commented Jul 20, 2021

making the build environment setup basically just one-step VS install.

I like this idea. Are you interested in submitting a PR to update and simplify the requirement doc with this one-step VS install?

@jkotas
Copy link
Member

jkotas commented Jul 20, 2021

I am sorry that nobody on the team found time to comment on this sooner.

@hoyosjs
Copy link
Member

hoyosjs commented Jul 20, 2021

I think this is a good idea. At some point this wasn't included as the workloads were heavy (python) or didn't come with a high enough version (cmake). Now there's either the right versions, or enough checks in place to prevent that from breaking us. This would be a pretty good thing. Only thing to check is if our validation happens once the development environment has been initialized to ensure tools are in the path (would be a small change otherwise probably).

@cw2
Copy link
Contributor Author

cw2 commented Jul 20, 2021

I like this idea. Are you interested in submitting a PR to update and simplify the requirement doc with this one-step VS install?

Yes (however, English is not my native language, so it will definitely require some proofreading).

@cw2
Copy link
Contributor Author

cw2 commented Jul 20, 2021

I am sorry that nobody on the team found time to comment on this sooner.

No problem, I understand there is so much work going on, priorities etc. and only limited resources...

@cw2
Copy link
Contributor Author

cw2 commented Jul 20, 2021

I think this is a good idea. At some point this wasn't included as the workloads were heavy (python) or didn't come with a high enough version (cmake). Now there's either the right versions, or enough checks in place to prevent that from breaking us. This would be a pretty good thing. Only thing to check is if our validation happens once the development environment has been initialized to ensure tools are in the path (would be a small change otherwise probably).

I am thinking about adding something like

  • It's recommended to use 'Workloads' installation approach. The following are the minimum requirements:
    • .NET Desktop Development with all default components.
    • Desktop Development with C++ with all default components.
  • The build tools (CMake, Ninja and Python) can be downloaded and installed separately (see detailed instructions in the section below) or by selecting the following individual components:
    • "C++ CMake tools for Windows" (includes Ninja)
    • For building x86 "Python 3 32-bit"
    • For building x64 "Python 3 64-bit"

I have not checked the environment validation mechanism itself, but after installing the mentioned VS components (I have not installed the tools externally), the build and running test suite seems to be working, but it needs to be verified more thoroughly.

@hoyosjs hoyosjs removed the untriaged New issue has not been triaged by the area owner label Jul 21, 2021
@hoyosjs hoyosjs added this to the 7.0.0 milestone Jul 21, 2021
cw2 added a commit to cw2/runtime that referenced this issue Jul 23, 2021
Added description of build tools (CMake, Ninja and Python) installation as Visual Studio Individual Components.
Added emphasis (bold) of Visual Studio installer sections and components (replaces previously used different styles of quotes).
jkotas pushed a commit that referenced this issue Jul 31, 2021
* Added Visual Studio build tools (#55629)

Added description of build tools (CMake, Ninja and Python) installation as Visual Studio Individual Components.
Added emphasis (bold) of Visual Studio installer sections and components (replaces previously used different styles of quotes).

* Removed Python 32-bit VS component

Python 64-bit component is enough for building x86 and x64 target architectures.

Co-authored-by: Juan Hoyos <[email protected]>
@agocke
Copy link
Member

agocke commented Jul 29, 2022

Fixed by #56234

@agocke agocke closed this as completed Jul 29, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Aug 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Archived in project
Development

No branches or pull requests

4 participants