-
Notifications
You must be signed in to change notification settings - Fork 37.7k
doc: Add hint about avoiding spaces in paths when building on Windows #32397
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
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32397. ReviewsSee the guideline for information on the review process. |
That's too bad, we'd finally solved all the build-with-spaces issues with the old build system. But yes i suppose it doesn't hurt too add a warning in the meantime... |
This is a vcpkg upstream issue. Another one has already been documented: bitcoin/doc/build-windows-msvc.md Lines 61 to 71 in 5b8046a
This is not specific to CMake in general, nor to the Bitcoin Core build system. |
When running the configuration step cmake -B build --preset vs2022-static from a directory with spaces in its path, vcpkg issues the following warning: Warning: Paths with embedded space may be handled incorrectly by configure The build subsequently fails with error code 77. While the underlying issue should ideally be resolved, this hint may help users avoid related build failures in the meantime.
@hebasto Thanks for your feedback! I fixed the wording in the commit message to mention vcpkg instead of CMake. I agree that this isn't Bitcoin Cores fault, but IMO it would still be "nice" for new devs to have a warning in place. Might save them a minor headache. |
Happy about that. i know it was something we explicitly considered and tested when going to CMake so hence my surprise. In general, Windows users are the most likely to have spaces in any path they're allowed to write to. For example, from that iconv vcpkg issue:
So hope this will get resolved upstream sooner than this documentation change would make it into a release. |
@laanwj I don't think that the time of the next release is necessarily the important thing here. This is documentation about how to build bitcoin core, which I assume is often done with the master of this repo. |
It's not clear what is failing to build? If it is libiconv, how is that related to our build; is this something we can just avoid? In either case, please adjust the hint to be explcit about spaces being unsupported, and remove vaugeries like "they have been known to cause build issues.". Either spaces are supported, in which case we can test the behaviour, or they are not supported. |
|
According to the vcpkg docs, the default install directory ( |
What is the status of this? Do we need to add something to the docs? |
I believe it would be helpful to mention a workaround in the build documentation. Here's a suggestion you could consider including. Feel free to grab it. |
It would be useful to document, but not in the way it is here. It's not a problem when cloning the repository. The current warning is confusing, it should be more specific (also to make it more clear when the problem is solved and the warning can be removed again).
+1 |
Closing for now. @hebasto maybe you can followup with your own suggestion. |
…edded spaces 0a1af44 doc: Add workaround for vcpkg issue with paths with embedded spaces (Hennadii Stepanov) Pull request description: This PR is an alternative to #32397 suggested in #32397 (comment). ACKs for top commit: sipsorcery: ACK 0a1af44. Tree-SHA512: 09efc3f8b8c38eb8d8de1022c5b11685fba334cdb950209d35b3b0d907fa50de3f85f45c66ac3670b5b104d5bb0b01461c36a0c1e595327b5e62c6abca323deb
When running the configuration step
from a directory with spaces in its path, CMake issues the following warning:
The build subsequently fails with error code 77.
While the underlying issue should ideally be resolved, this hint may help users avoid related build failures in the meantime.