• Raul Tambre's avatar
    cmStandardLevelResolver: Avoid unnecessary flags, fix unset level logic · 4a0485be
    Raul Tambre authored
    The changes are part of CMP0128.
    When the standard level is unset:
    * Flags are added if extension mode doesn't match the compiler's default.
      Previously logic only worked if LANG_EXTENSIONS was ON. Fixes #22224.
    * The full flag is used. Previously CMAKE_LANG_EXTENSION_COMPILE_OPTION was
      used. This was only supported for IAR.
    * Avoid adding flags if not necessary per the detected compiler defaults.
    * Fixed check for when the requested standard is older. It now matches the
      nearby comments.
    I reworded the fallback comment as its logic was a bit difficult to wrap my
    head around.