Android NDK r16b comes with
Android clang version 5.0.300080 (based on LLVM 5.0.300080)
Although it claims version 5, it does not support the `-std=c++17`
or `-std=c++2a` flags that upstream Clang does.
Android NDK r17-beta1 comes with
Android (4639204 based on r316199) clang version 6.0.1
that does have the flags.
8570dc7f64 Help: Update compiler versions in cmake-compile-features.7.rst
874d3d2948 Help: Add release note for C++ 20 support
7f295b1bd3 Features: Activate C++ 20 support for Clang 5.0+
71cb8ce3a1 Features: Activate C++ 20 support for GNU 8.0+
8f146c4508 Features: Activate C++ 20 support for MSVC 19.12.25835+
7fe580a362 Features: Add infrastructure for C++ 20 language standard
1b328e09a3 Features: Use -std=c++17 for C++ 17 on Clang 5.0+
0bc3e5788a Features: Use -std=c++17 for C++ 17 on GNU 8.0+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1892
This is useful if, for example, you want ccache to be used
for nvcc. With the current behavior, cmake always picks up
/usr/local/cuda/bin/nvcc, even if there is a ccache nvcc
stub in the PATH. Allowing for CUDA_NVCC_EXECUTABLE lets
us work around the problem.
Signed-off-by: Edward Z. Yang <ezyang@fb.com>
The MSVC C compiler has no notion of C language standards or flags.
Tell CMake to assume that all language standards are available.
Record available C language features depending on the version of
the compiler.
Fixes: #17858
GCC supports the __null builtin basically forever (since at least 2.95), which
behaves very much like nullptr later does. Use this instead of plain "0" as
fallback value, otherwise passing the define to functions annotated with
__attribute__((sentinel)) will result in a compiler warning.
Since commit v3.8.0-rc3~7^2 (FindwxWidgets: Add support for VS 2017 v141
toolset, 2017-03-22) more MSVC updates have been released that use a
MSVC_VERSION value higher than 1910. Revise our checks accordingly.
Issue: #16735
The change in commit v3.11.0-rc1~306^2 (FindQt4: Set PLUGINS and IMPORTS
dir even if empty, 2017-11-19) regressed existing builds on some
machines. Revert it for CMake 3.11 pending further investigation.
Fixes: #17814, #17817
Issue: #14155, #17492
This sets variables like PROJECT_HOMEPAGE_URL, which can be
used as default values for various things (packaging modules,
doxygen defaults, etc.). Some packaging modules have been
updated to do this as part of this commit.
Co-Author: Craig Scott <craig.scott@crascit.com>
Features recorded by commit v3.6.0-rc1~120^2~5 (Features: Record
standards and features for Intel C++ on UNIX, 2016-04-28) for the Intel
compiler left out initializer list support because our test case in
`Tests/CompileFeatures/cxx_generalized_initializers.cpp` caused an
internal compiler error. It turns out this is because the Intel
compiler asserts the `initializer_list` constructor signatures to verify
that they match its own `<initializer_list>` header. It was our dummy
implementation used to test the language feature without any headers
that caused the ICE. Revise it to use a constructor signature accepted
by the Intel compiler.
Fixes: #17829