1 // Copyright 2021 Peter Dimov
2 // Distributed under the Boost Software License, Version 1.0.
3 // https://www.boost.org/LICENSE_1_0.txt)
5 #if !defined(__APPLE__)
7 # define BOOST_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
10 # define BOOST_CLANG_REPORTED_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
12 // https://en.wikipedia.org/wiki/Xcode#Toolchain_versions
14 # if BOOST_CLANG_REPORTED_VERSION >= 130000
15 # define BOOST_CLANG_VERSION 120000
17 # elif BOOST_CLANG_REPORTED_VERSION >= 120005
18 # define BOOST_CLANG_VERSION 110100
20 # elif BOOST_CLANG_REPORTED_VERSION >= 120000
21 # define BOOST_CLANG_VERSION 100000
23 # elif BOOST_CLANG_REPORTED_VERSION >= 110003
24 # define BOOST_CLANG_VERSION 90000
26 # elif BOOST_CLANG_REPORTED_VERSION >= 110000
27 # define BOOST_CLANG_VERSION 80000
29 # elif BOOST_CLANG_REPORTED_VERSION >= 100001
30 # define BOOST_CLANG_VERSION 70000
32 # elif BOOST_CLANG_REPORTED_VERSION >= 100000
33 # define BOOST_CLANG_VERSION 60001
35 # elif BOOST_CLANG_REPORTED_VERSION >= 90100
36 # define BOOST_CLANG_VERSION 50002
38 # elif BOOST_CLANG_REPORTED_VERSION >= 90000
39 # define BOOST_CLANG_VERSION 40000
41 # elif BOOST_CLANG_REPORTED_VERSION >= 80000
42 # define BOOST_CLANG_VERSION 30900
44 # elif BOOST_CLANG_REPORTED_VERSION >= 70300
45 # define BOOST_CLANG_VERSION 30800
47 # elif BOOST_CLANG_REPORTED_VERSION >= 70000
48 # define BOOST_CLANG_VERSION 30700
50 # elif BOOST_CLANG_REPORTED_VERSION >= 60100
51 # define BOOST_CLANG_VERSION 30600
53 # elif BOOST_CLANG_REPORTED_VERSION >= 60000
54 # define BOOST_CLANG_VERSION 30500
56 # elif BOOST_CLANG_REPORTED_VERSION >= 50100
57 # define BOOST_CLANG_VERSION 30400
59 # elif BOOST_CLANG_REPORTED_VERSION >= 50000
60 # define BOOST_CLANG_VERSION 30300
62 # elif BOOST_CLANG_REPORTED_VERSION >= 40200
63 # define BOOST_CLANG_VERSION 30200
65 # elif BOOST_CLANG_REPORTED_VERSION >= 30100
66 # define BOOST_CLANG_VERSION 30100
68 # elif BOOST_CLANG_REPORTED_VERSION >= 20100
69 # define BOOST_CLANG_VERSION 30000
72 # define BOOST_CLANG_VERSION 20900
76 # undef BOOST_CLANG_REPORTED_VERSION