54 lines · c
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_H15#define LLVM_CLANG_C_PLATFORM_H16 17#include "clang-c/ExternC.h"18 19LLVM_CLANG_C_EXTERN_C_BEGIN20 21/* Windows DLL import/export. */22#ifndef CINDEX_NO_EXPORTS23 #define CINDEX_EXPORTS24#endif25#if defined(_WIN32) || defined(__CYGWIN__)26 #ifdef CINDEX_EXPORTS27 #ifdef _CINDEX_LIB_28 #define CINDEX_LINKAGE __declspec(dllexport)29 #else30 #define CINDEX_LINKAGE __declspec(dllimport)31 #endif32 #endif33#elif defined(CINDEX_EXPORTS) && defined(__GNUC__)34 #define CINDEX_LINKAGE __attribute__((visibility("default")))35#endif36 37#ifndef CINDEX_LINKAGE38 #define CINDEX_LINKAGE39#endif40 41#ifdef __GNUC__42 #define CINDEX_DEPRECATED __attribute__((deprecated))43#else44 #ifdef _MSC_VER45 #define CINDEX_DEPRECATED __declspec(deprecated)46 #else47 #define CINDEX_DEPRECATED48 #endif49#endif50 51LLVM_CLANG_C_EXTERN_C_END52 53#endif54