1 /*===-- clang-c/Platform.h - C Index platform decls   -------------*- C -*-===*\
2 |*                                                                            *|
3 |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
4 |* Exceptions.                                                                *|
5 |* See https://llvm.org/LICENSE.txt for license information.                  *|
6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
7 |*                                                                            *|
8 |*===----------------------------------------------------------------------===*|
9 |*                                                                            *|
10 |* This header provides platform specific macros (dllimport, deprecated, ...) *|
11 |*                                                                            *|
12 \*===----------------------------------------------------------------------===*/
13 
14 #ifndef LLVM_CLANG_C_PLATFORM_H
15 #define LLVM_CLANG_C_PLATFORM_H
16 
17 #include "clang-c/ExternC.h"
18 
19 LLVM_CLANG_C_EXTERN_C_BEGIN
20 
21 /* Windows DLL import/export. */
22 #ifndef CINDEX_NO_EXPORTS
23   #define CINDEX_EXPORTS
24 #endif
25 #ifdef _WIN32
26   #ifdef CINDEX_EXPORTS
27     #ifdef _CINDEX_LIB_
28       #define CINDEX_LINKAGE __declspec(dllexport)
29     #else
30       #define CINDEX_LINKAGE __declspec(dllimport)
31     #endif
32   #endif
33 #elif defined(CINDEX_EXPORTS) && defined(__GNUC__)
34   #define CINDEX_LINKAGE __attribute__((visibility("default")))
35 #endif
36 
37 #ifndef CINDEX_LINKAGE
38   #define CINDEX_LINKAGE
39 #endif
40 
41 #ifdef __GNUC__
42   #define CINDEX_DEPRECATED __attribute__((deprecated))
43 #else
44   #ifdef _MSC_VER
45     #define CINDEX_DEPRECATED __declspec(deprecated)
46   #else
47     #define CINDEX_DEPRECATED
48   #endif
49 #endif
50 
51 LLVM_CLANG_C_EXTERN_C_END
52 
53 #endif
54