In commit ce2dee9e5b (Xcode: Don't add framework as -framework argument
in linker info list, 2020-09-28, v3.19.0-rc1~47^2) we split up the path
to a framework into the directory and framework name parts, but only
retained the quoting on the directory part. Restore quoting of the
framework name.
Fixes: #21910
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit 5bfba5e1a988e16df833e86062d61f4b70d83645 (master).
Upstream Shortlog
-----------------
Ben Boeckel (4):
f69c5cb7 Directory: return a bool literal on Windows
2a118b34 SystemTools: use nullptr in Windows-only code
7ee0dbee Directory: capture the error message
dd703ac6 SystemTools: make file copying mechanisms public
Sean McBride (1):
3ba8a6de Glob: Change deleted ctor and operator= from private to public
The justification in commit 9ee4a42813 (Cray: Fix Cray compiler
detection on new platforms, 2020-12-01, v3.19.2~26^2) confuses detection
of the CrayPrgEnv with identification of the Cray compiler. The
change regressed detection of the CrayPrgEnv on non-Cray compilers.
Revert it pending further investigation into the original problem.
Fixes: #21894
In commit a58e3c7e8b (ci: Skip the Module.ExternalData test on Windows,
2020-10-01, v3.19.0-rc1~59^2) the test was dropped pending further
investigation. We've now (hopefully) resolved the underlying problem,
so we can restore the test.
If more than one content link references the same object, the build
system may launch multiple download processes for the same object
concurrently. Use whichever one finishes first, and discard the others.
Without this, we replace the objects and use the last finisher instead
of the first. This is okay on non-Windows platforms where `rename(2)`
gives reliable atomic replacement. However, on Windows platforms and
NTFS this is less reliable. I've observed `MoveFileEx` somehow cause
another process to get `ERROR_SHARING_VIOLATION` when attempting to read
the destination file. We may be able to improve the `file(RENAME)`
implementation on modern Windows 10 versions, but for ExternalData's use
case it is simpler to just not replace existing objects.
9bf40d8027 file(RENAME): Add option to not replace existing path
3600c6cd8c cmSystemTools: Add RenameFile option to not replace destination
c61292726c file(RENAME): Add option to capture error message on failure
0c2dc34504 cmSystemTools: Add RenameFile signature to capture the error message
adc351db8f Tests: Add RunCMake helper to run a plain script
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5877
In the case where the current path is a symlink to a directory, a
trailing slash causes the link to be dereferenced, which means that any
subsequent `FileIsSymlink` on it will return false.
Fixes: #21886
Cray 11.0 adds support for preprocessing with output written to a
specified file (instead of always next to the source). Use it to
enable Cray Fortran with the Ninja generator.
Patch-by: James Elliott
Fixes: #20731
If the shared object name contains spaces, they need to be properly
escaped, or link command will fail.
This was already done for soname symlink creation in commit 13c92b4a30
(Ninja: Fix creation of library symlinks in folders with spaces,
2019-05-20, v3.15.0-rc1~87^2).
Fixes: #20331