_STANDARD_REQUIRED ------------------------ The variations are: * :prop_tgt:`C_STANDARD_REQUIRED` * :prop_tgt:`CXX_STANDARD_REQUIRED` * :prop_tgt:`CUDA_STANDARD_REQUIRED` * :prop_tgt:`HIP_STANDARD_REQUIRED` * :prop_tgt:`OBJC_STANDARD_REQUIRED` * :prop_tgt:`OBJCXX_STANDARD_REQUIRED` These properties specify whether the value of :prop_tgt:`_STANDARD` is a requirement. When false or unset, the :prop_tgt:`_STANDARD` target property is treated as optional and may "decay" to a previous standard if the requested standard is not available. When ``_STANDARD_REQUIRED`` is set to true, :prop_tgt:`_STANDARD` becomes a hard requirement and a fatal error will be issued if that requirement cannot be met. Note that the actual language standard used may be higher than that specified by :prop_tgt:`_STANDARD`, regardless of the value of ``_STANDARD_REQUIRED``. In particular, :ref:`transitive usage requirements ` or the use of :manual:`compile features ` can raise the required language standard above what :prop_tgt:`_STANDARD` specifies. These properties are initialized by the value of the :variable:`CMAKE__STANDARD_REQUIRED` variable if it is set when a target is created. See the :manual:`cmake-compile-features(7)` manual for information on compile features and a list of supported compilers.