Ninja: Restore support for compilers not defining a C++ standard level
Since !7369 (merged) (commit 386465bf), the Ninja generator checks for
C++20 support using logic that requires CMAKE_<LANG>_STANDARD_DEFAULT
to be non-empty. On some compilers, such as ARMClang
, CMake does not
automatically detect and set default language standards, thus causing
HaveStandardAvailable
to raise an internal error.
To fix this issue, if CMAKE_CXX_STANDARD_DEFAULT
is empty, assume all
standards to be supported instead of calling HaveStandardAvailable
.
This is consistent with how CompileFeaturesNode::Evaluate
handles this
case.
Fixes: #24146 (closed)
Backport: release
Edited by Brad King