conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.13k stars 968 forks source link

[feature] Support for Xcode 15 (currently RC) #14494

Closed janosvitok closed 1 year ago

janosvitok commented 1 year ago

What is your suggestion?

It's that time of year again... Xcode 15 is approaching (currently RC)

Related PRs: https://github.com/conan-io/conan/pull/12064 https://github.com/conan-io/conan/pull/10797 https://github.com/conan-io/conan/pull/9642

Related issues: https://github.com/conan-io/conan/issues/12063 https://github.com/conan-io/conan/issues/10509 https://github.com/conan-io/conan/issues/9641

XCode 15 RC reports compiler version as "15.0".

Apple clang version 15.0.0 (clang-1500.0.40.1)

I'll create a PR later

In conan 1.47 the condition was lifted that only major number must match; now the major one has changed again.

Have you read the CONTRIBUTING guide?

memsharded commented 1 year ago

Thanks for the suggestion. Adding this to the 2.0.10 milestone, the PR should target release/2.0 branch, thanks for offering to contribute it!

One of the most important things to check is if they are changing any compiler default, like the cppstd, it would be good to explicitly comment it in the PR.

janosvitok commented 1 year ago

clang-1500.0.40.1.txt

#define __cplusplus 199711L  // c++98
#define __cpp_exceptions 199711L // c++98
#define __cpp_impl_destroying_delete 201806L  // c++20
#define __cpp_named_character_escapes 202207L // c++23
#define __cpp_rtti 199711L // c++98
#define __cpp_threadsafe_static_init 200806L  // c++11
echo '' | ./clang -x c++ --std=abc -E -
error: invalid value 'abc' in '--std=abc'
note: use 'c++98' or 'c++03' for 'ISO C++ 1998 with amendments' standard
note: use 'gnu++98' or 'gnu++03' for 'ISO C++ 1998 with amendments and GNU extensions' standard
note: use 'c++11' for 'ISO C++ 2011 with amendments' standard
note: use 'gnu++11' for 'ISO C++ 2011 with amendments and GNU extensions' standard
note: use 'c++14' for 'ISO C++ 2014 with amendments' standard
note: use 'gnu++14' for 'ISO C++ 2014 with amendments and GNU extensions' standard
note: use 'c++17' for 'ISO C++ 2017 with amendments' standard
note: use 'gnu++17' for 'ISO C++ 2017 with amendments and GNU extensions' standard
note: use 'c++20' for 'ISO C++ 2020 DIS' standard
note: use 'gnu++20' for 'ISO C++ 2020 DIS with GNU extensions' standard
note: use 'c++2b' for 'Working draft for ISO C++ 2023 DIS' standard
note: use 'gnu++2b' for 'Working draft for ISO C++ 2023 DIS with GNU extensions' standard