| ## `c_std` and `cpp_std` options now accepts a list of values |
| |
| Projects that prefer GNU C, but can fallback to ISO C, can now set, for |
| example, `default_options: 'c_std=gnu11,c11'`, and it will use `gnu11` when |
| available, but fallback to `c11` otherwise. It is an error only if none of the |
| values are supported by the current compiler. |
| |
| Likewise, a project that can take benefit of `c++17` but can still build with |
| `c++11` can set `default_options: 'cpp_std=c++17,c++11'`. |
| |
| This allows us to deprecate `gnuXX` values from the MSVC compiler. That means |
| that `default_options: 'c_std=gnu11'` will now print a warning with MSVC |
| but fallback to `c11`. No warning is printed if at least one |
| of the values is valid, i.e. `default_options: 'c_std=gnu11,c11'`. |
| |
| In the future that deprecation warning will become an hard error because |
| `c_std=gnu11` should mean GNU is required, for projects that cannot be |
| built with MSVC for example. |