summaryrefslogtreecommitdiffstats
path: root/Source/cmPathResolver.h
Commit message (Collapse)AuthorAgeFilesLines
* PathResolver: Add mode to collapse paths naively and look up on-disk caseBrad King2025-03-071-0/+6
| | | | | | | | | | | | | | In CMake 3.31 and below, `CollapseFullPath` did this on Windows. KWSys has since stopped looking up the on-disk case in `CollapseFullPath` to avoid disk access when most callers only need an in-memory operation. We currently call `GetActualCaseForPath` explicitly when needed. Add a mode to `cm::PathResolver` to combine these operations and cache disk access behind the `System::ReadName` callback. We will use this to restore the way CMake 3.31 and below normalized input paths on Windows. Issue: #26750 Issue: #20214
* PathResolver: Document in comments the on-disk case lookup on macOSBrad King2025-03-071-3/+3
| | | | | | This was added by commit 08040ced86 (cmake: Look up on-disk case of input paths on macOS, 2024-11-20, v4.0.0-rc1~390^2). Update relevant comments.
* LICENSE: Replace references to Copyright.txt with LICENSE.rstKitware Robot2025-03-031-1/+1
| | | | | | | | | | ``` git grep -lz 'Copyright.txt or https://cmake.org/licensing ' | while IFS= read -r -d $'\0' f ; do sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / { s/Copyright.txt/LICENSE.rst/ }' "$f" ; done ```
* cmake: Look up on-disk case of input paths on macOSYunQiang Su2024-12-011-0/+2
| | | | | | | Follow up commit 1a6015e5fc (PathResolver: Add helper to compute normalized paths, 2024-10-30) to cover on-disk case lookup on macOS. Fixes: #26333
* PathResolver: Add helper to compute normalized pathsBrad King2024-11-011-0/+98
Create a `cm::PathResolver` helper to compute normalized paths. Provide a common implementation with compile-time dispatch to select details w.r.t. symbolic links, existence, and matching the on-disk case of existing paths. Later we can use this to implement: * `ToNormalizedPathOnDisk`: Normalizes paths while resolving symlinks only when followed by `..` components. Does not require paths to exist, but reads on-disk case of paths that do exist (on Windows). * `GetRealPath`: Normalizes paths while resolving all symlinks. Requires paths to exist, and reads their on-disk case (on Windows). * `CollapseFullPath`: Normalizes paths in memory without disk access. Assumes components followed by `..` components are not symlinks. Abstract filesystem access through runtime dispatch so that we can test Windows symbolic link and network path behavior without relying on real environments. The overhead of runtime dispatch should be insignificant during real filesystem access. Issue: #16228 Issue: #17206