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