-
Notifications
You must be signed in to change notification settings - Fork 144
Windows: Remove the \\?\ prefix from paths
#259
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
When a path is canonicalized on Windows, a `\\?\` prefix is used. However, it appears at least some versions of cmake can have problems with that.
|
Cmake should probably support |
I would hope so, yes! Though it's possible it's some dependency that's ultimately to blame. |
## 🤖 New release * `cmake`: 0.1.54 -> 0.1.55 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.1.55](v0.1.54...v0.1.55) - 2025-12-11 ### Other - Remove the `\\?\` prefix from paths ([#259](#259)) - Add Visual Studio 2026 support ([#255](#255)) - Make sure that cmake generate build files in current dir ([#194](#194)) - Set the MSRV to 1.65 and test this in CI - Canonicalize the build directory - Use `eprintln` instead to print the command running next ([#191](#191)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
This breaks long paths and file path components that have different meaning under the DOS path parser. You can't remove the verbatim prefix without checking whether the rest of the path is actually compatible. See what path validation is done in the |
|
I am aware. The only cases that could practical fail here are:
However, these cases have always broken because we use the |
|
FTR, this seems to have broken Windows builds for the boring crate cloudflare/boring#414 |
|
I'll investigate but are you sure it wasn't #250? My first suspicion would be that this was caused by the canonicalisation itself. |
|
@ChrisDenton not really, no, I didn't have time to investigate so I was just going from what was reported... and, yes, I think you are right, I bumped cmake to 0.1.57 at cloudflare/quiche#2296 and the Windows builds seem to be working now. Thank you! |
When a path is canonicalized on Windows, a
\\?\prefix is used. However, it appears that cmake can have problems with that. This simply attempts to remove the prefix as we do still want to use absolute path here due to #200 cc @tgross35.Fixes #258