This ended up after the searching after commit dc2eae1 (FindCUDAToolkit: Factor
out discovery code into a separate file, 2020-04-22).
Move it back to where it was and should be.
__compiler_clang() doesn't call __compiler_gnu() if we're emulating MSVC. Thus
CMAKE_DEPFILE_FLAGS_CUDA remains unset and compiling doesn't work, due to NVCC
dependency injection workaround in CMakeCUDAInformation.cmake, which triggers
for Ninja if they're not set.
Always set the depfile flags to fix this. Most other compiler modules seem to
do the same.
Since commit e98588aaba (CUDA: Add CUDA_ARCHITECTURES target property,
2020-03-12), `CMAKE_CUDA_ARCHITECTURES` is both initialized and required
by policy CMP0104's `NEW` behavior. Inside a `try_compile` project we
use `cmake_minimum_required(VERSION ...)` with the current running
version of CMake. Now that our version number is 3.18, `CMP0104` gets
set to `NEW` in the `try_compile`. If the outer projects does not set
the policy then `CMAKE_CUDA_ARCHITECTURES` is not available and the
`try_compile` fails to generate.
Teach `try_compile` to check the outer project's policy status and
set policy CMP0104 to `OLD` if needed to match.
Fixes: #20794
We don't distinguish real/virtual architectures during compiler detection.
If the user passes -DCMAKE_CUDA_ARCHITECTURES="70-virtual" we'll test with only
the real architecture.
If it works "architectures" will end up as "70". We check equality using
strings, so this fails and we incorrectly throw an error.
Fix this by comparing against CMAKE_CUDA_ARCHITECTURES with the specifiers
stripped.
We need to deduplicate tested_architectures for the same reason in case the
user specified something like "70-real;70-virtual".
This makes them compatible with `VS_PACKAGE_REFERENCES` and, in
particular, fixes nuget package references in combination with install
targets.
Fixes: #20764
e219527a72 VS: Use StdOutEncoding for VS 16.7 Preview 3 and above
8a7ad923a8 VS: Extract instance version from VS Installer
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4847
b1243201e7 CUDA: Don't RunCMake generate separable compilation tests on Clang
1b4c690543 CUDA: Throw error if CUDA_SEPARABLE_COMPILATION is ON when using Clang
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4827
cbe80818e2 gitlab-ci: support Windows jobs which support concurrent builds
d3e02f1a48 gitlab-ci: support macOS jobs which support concurrent builds
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4849
Refactoring in commit ade3b16e63 (libarchive: Use KWIML to get
fixed-size integer types, 2020-06-01) accidentally changed the method of
defining `int#_t` types from `typedef` to `#define`. Change it back to
`typedef`.
Reported-by: Rolf Eike Beer <eike@sf-mail.de>
Refactoring in commit 12e7bfcbf4 (liblzma: Use KWIML to get fixed-size
integer types, 2020-05-25) accidentally changed the method of defining
`int#_t` types from `typedef` to `#define`. Change it back to
`typedef`.
Reported-by: Rolf Eike Beer <eike@sf-mail.de>
allows cmake to fall back to CMAKE_SYSTEM_ARCH in case CMAKE_SYSTEM_PROCESSOR is not in armclang -mcpu=list
additionally checks if CMAKE_SYSTEM_PROCESSOR belongs to armlink --cpu=list
Fixes: #19962
VS 16.6 added a `StdOutEncoding` setting for custom commands to tell
MSBuild that the output is encoded as UTF-8. In commit bc877a7e94 (Add
support to indicate UTF-8 custom command pipe output encoding,
2020-04-08) CMake learned to add the setting in anticipation of the VS
16.6 release. However, when 16.6 was released it had a bug in the
implementation of custom tasks with StdOutEncoding enabled that was
exposed by our test suite. In commit 5058fb5401 (VS: Drop
StdOutEncoding with VS 16.6 pending investigation, 2020-05-29) we
disabled the setting pending investigation.
The problem is fixed in VS 16.7 Preview 3, so restore use of the
setting when a VS instance of at least that version is detected.
Fixes: #20769
The integer size checks have been replaced with KWIML so their
hard-coded results are no longer needed.
Tell `TEST_BIG_ENDIAN` to use `unsigned short` as the 16-bit integer.
UNIX device APIs do not exist on Windows.
FreeBSD libmd does not exist on Windows.
Fix typo in existing `HAVE_READPASSPHRASE_H` setting.
e262123fee Help: Clarify the effect of EXCLUDE_FROM_ALL on target installation
a09195e7bf Help: Rename 'artefact' to 'artifact' in target_precompile_headers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4840
e76c11aa7c Merge branch 'backport-3.17-pch-no-Fortran' into pch-no-Fortran
10c88c4337 PCH: Do not enable GNU or Intel PCH settings for Fortran
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4843