When a CUDA sdk doesn't have nvcc, defer to the existence of
a version.txt file. When we do this fall back we also reconstruct
the CUDA version via version.txt
Fixes#20643
During compiler identification, if CMAKE_{C,CXX}_COMPILER_TARGET is
defined, the corresponding clang target flag is used to guaranty proper
target architecture detection.
Fix logic added by commit fc5afbe970 (FindCURL: support COMPONENTS to
check features, 2018-11-28, v3.14.0-rc1~287^2~2).
When searching for particular components and `curl-config` reports one of
the components being searched for first in the list, `find_package` fails.
This is due to the check that treats non-zero index in the list as success
and zero index as failure, while documentation on `list(FIND)` states that
failure to find an element results in return value of -1 (not 0). I'm
hitting this when building cURL with support for HTTP and HTTPS protocols
only, and then trying to `find_package(CURL COMPONENTS HTTP HTTPS)`.
I'm using `if(NOT x EQUAL -1)` check form as it appears to be the most used
throughout the modules.
While fixing this issue I've looked through all the uses of `list(FIND)` in
other modules but wasn't able to find improper use except here.
Since commit 8cc384f629 (Compilers: Add paths from -print-sysroot to
system prefix path, 2020-03-25, v3.18.0-rc1~337^2) we prepend the
compiler's sysroot to `CMAKE_SYSTEM_PREFIX_PATH`. This does not
make sense when the prefix is just `/`, such as on Ubuntu 16.04's
system compiler.
Fixes: #21019
The optimization from commit 627fc5b44f (ExternalProject: Avoid
unnecessary checkout on clone, 2019-07-29, v3.16.0-rc1~325^2) triggers a
bug in the Git 2.20.x series that is not in older or newer versions.
Drop the optimization for that specific range of Git versions.
Fixes: #21009
7f786c6a40 Tests: Cover CheckTypeSize with uint8_t and std::uint8_t
371072e9e1 CheckTypeSize: Use C++-style headers to check for std:: types
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5008
Since commit 9b97cb5562 (PGI: Add language standards for PGI,
2017-05-01, v3.9.0-rc1~174^2), we have passed the `-A` flag to
the PGI C++ compiler when specifying a C++ standard flag with
compiler extensions turned off. The flag is not meant for that.
The PGI C++ standard flags do not turn extensions on by default
and have a separate `--gnu_extensions` flag for that which we
already use when CXX_EXTENSIONS is ON. Simply drop the `-A` flag.
Fixes: #20997
When `CMAKE_OSX_ARCHITECTURES` is not specified, we add the Xcode
setting `ONLY_ACTIVE_ARCH = YES` with the intention of targeting the
native architecture of the host. However, the default `ARCHS` value
chosen by "Xcode 12 Universal Apps" includes multiple architectures.
Add an explicit `ARCHS` setting with value `$(NATIVE_ARCH_ACTUAL)`
to tell Xcode to use the host's native architecture only.
Fixes: #20893
Explain the purpose of this variable and the conditions under which
it can be set. Point out that it should not be set explicitly without
also setting `CMAKE_CUDA_COMPILER` explicitly.
Issue: #20826
The object and library files have to be listed after the `--run-linker`
flag.
But after this flag the `--cmd_file` flag for response files cannot be
used any more.
Putting the whole command line into a response file would work, but
this is not supported by CMake (yet).
By adding the compiler flags via `<FLAGS>` to the linker call,
the linker can decide which default library to use.
CMake replaces `<FLAGS>` by the content of `CMAKE_<LANG>_FLAGS`.
So any relevant flag needs to be defined in this variable, preferably
in a toolchain file.
The compiler flags have to be specified before the `--run_linker`
flag and the linker flags afterwards.
Replaces Merge-request !4890
The path to the 32 bit libraries in the Intel windows/redist folder use
ia32. I don't remember if this has changed at some point, but ia32 has
been used at least since Intel Fortran XE 2018.
The version is determined in two steps. First, the "spec date" is
detected and cached. Second, the date is converted to a version.
Move the second step out of the spec date cache guard condition
so that it runs every time even if the spec date is already cached.
Fixes: #19150