1 /*
2 Copyright Rene Rivera 2008-2014
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7 
8 #ifndef MSGPACK_PREDEF_COMPILER_LLVM_H
9 #define MSGPACK_PREDEF_COMPILER_LLVM_H
10 
11 /* Other compilers that emulate this one need to be detected first. */
12 
13 #include <rpc/msgpack/predef/compiler/clang.h>
14 
15 #include <rpc/msgpack/predef/version_number.h>
16 #include <rpc/msgpack/predef/make.h>
17 
18 /*`
19 [heading `MSGPACK_COMP_LLVM`]
20 
21 [@http://en.wikipedia.org/wiki/LLVM LLVM] compiler.
22 
23 [table
24     [[__predef_symbol__] [__predef_version__]]
25 
26     [[`__llvm__`] [__predef_detection__]]
27     ]
28  */
29 
30 #define MSGPACK_COMP_LLVM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
31 
32 #if defined(__llvm__)
33 #   define MSGPACK_COMP_LLVM_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
34 #endif
35 
36 #ifdef MSGPACK_COMP_LLVM_DETECTION
37 #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
38 #       define MSGPACK_COMP_LLVM_EMULATED MSGPACK_COMP_LLVM_DETECTION
39 #   else
40 #       undef MSGPACK_COMP_LLVM
41 #       define MSGPACK_COMP_LLVM MSGPACK_COMP_LLVM_DETECTION
42 #   endif
43 #   define MSGPACK_COMP_LLVM_AVAILABLE
44 #   include <rpc/msgpack/predef/detail/comp_detected.h>
45 #endif
46 
47 #define MSGPACK_COMP_LLVM_NAME "LLVM"
48 
49 #include <rpc/msgpack/predef/detail/test.h>
50 MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM,MSGPACK_COMP_LLVM_NAME)
51 
52 #ifdef MSGPACK_COMP_LLVM_EMULATED
53 #include <rpc/msgpack/predef/detail/test.h>
54 MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM_EMULATED,MSGPACK_COMP_LLVM_NAME)
55 #endif
56 
57 
58 #endif
59