Since commit 07223c5c27 (Tutorial: Update Step 5 to work on Windows,
2020-02-18, v3.18.0-rc1~655^2) the logic does not work on non-Windows
platforms when cmake is re-run on an existing build tree. It is also
more complicated than we'd like for a tutorial example. Avoid the need
to consider the `m` library case by performing the check as C++.
Since `check_cxx_symbol_exists` cannot handle overloaded functions
like `exp` and `log`, check with `check_cxx_source_compiles` instead.
This also presents a more general-purpose example in the tutorial.
Fixes: #23524
Restore the logic removed by commit 035078d847 (cmake-gui: Remove
explicit locale setup, 2020-12-17, v3.20.0-rc1~205^2~6), but only with
Qt5 on Windows. Leave a FIXME comment to support Qt6 later.
Fixes: #23562
Issue: #23565
e2fe1d17e6 libarchive: Update build within CMake after changes in 3.5.3
ac5e524763 libarchive: include archive_platform.h first in blake2s sources
b93d8b1714 Merge branch 'upstream-LibArchive' into update-libarchive
9fd16c5b5b LibArchive 2022-02-08 (673c1eae)
de38c89252 libarchive: Update script to get 3.5.3
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7294
e2fe1d17e6 libarchive: Update build within CMake after changes in 3.5.3
ac5e524763 libarchive: include archive_platform.h first in blake2s sources
b93d8b1714 Merge branch 'upstream-LibArchive' into update-libarchive
9fd16c5b5b LibArchive 2022-02-08 (673c1eae)
de38c89252 libarchive: Update script to get 3.5.3
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7294
This is the libarchive convention in all other `.c` sources. It ensures
that the configured `_WIN32_WINNT` value is defined before including any
system headers.
The change from `\` to `/` in commit dade75509f (CPack/NuGet: Fix nuspec
file generation for UNIX-style OS, 2020-12-21, v3.20.0-rc1~243^2) does
not work on Windows. Use `cmake_path` to form a path to an image
directory with preinstalled files.
Fixes: #22489
Fix issue introduced in commit 2defe9ff95 (ccmake: Fix crash when
deleting all cache entries, 2022-05-12).
Leaving the Empty Cache widget always on the Entry list had unforeseen
consequences, including that it caused an infinite loop when searching
for a string that did not match any variables.
Since commit bb61c2d024 (Clang: use -imsvc for system include dirs when
running on Windows, 2020-09-16, v3.19.0-rc1~162^2) we use the `-imsvc`
flag followed by the include directory as a separate argument. Some
versions of `clang-tidy` do not support the flag unless the include
directory is attached to it, so use that form instead.
A similar fix was made by commit 3a8b6653dc (MSVC: Use -external:I flag
without space to support Clang tools, 2022-01-11, v3.22.2~8^2).
Fixes: #23517
The C flags added by commit 6a0ce19ce1 (FortranCInterface: Fix
compatibility with GCC gfortran 12 LTO, 2022-01-19, v3.22.2~5^2)
should only be added for the GNU C compiler.
Fixes: #23500
Issue: #23123
If we add no CUDA architecture flags, write an empty `CodeGeneration`
field to tell the CUDA Toolkit's VS integration not to add its default
flags. We already use this approach for `CMAKE_CUDA_ARCHITECTURES=all`
so that the `-arch=all` flag can be added via `AdditionalOptions`.
Fixes: #23490