1*67e74705SXin Li /*===-- clang-c/Platform.h - C Index platform decls -------------*- C -*-===*\ 2*67e74705SXin Li |* *| 3*67e74705SXin Li |* The LLVM Compiler Infrastructure *| 4*67e74705SXin Li |* *| 5*67e74705SXin Li |* This file is distributed under the University of Illinois Open Source *| 6*67e74705SXin Li |* License. See LICENSE.TXT for details. *| 7*67e74705SXin Li |* *| 8*67e74705SXin Li |*===----------------------------------------------------------------------===*| 9*67e74705SXin Li |* *| 10*67e74705SXin Li |* This header provides platform specific macros (dllimport, deprecated, ...) *| 11*67e74705SXin Li |* *| 12*67e74705SXin Li \*===----------------------------------------------------------------------===*/ 13*67e74705SXin Li 14*67e74705SXin Li #ifndef LLVM_CLANG_C_PLATFORM_H 15*67e74705SXin Li #define LLVM_CLANG_C_PLATFORM_H 16*67e74705SXin Li 17*67e74705SXin Li #ifdef __cplusplus 18*67e74705SXin Li extern "C" { 19*67e74705SXin Li #endif 20*67e74705SXin Li 21*67e74705SXin Li /* MSVC DLL import/export. */ 22*67e74705SXin Li #ifdef _MSC_VER 23*67e74705SXin Li #ifdef _CINDEX_LIB_ 24*67e74705SXin Li #define CINDEX_LINKAGE __declspec(dllexport) 25*67e74705SXin Li #else 26*67e74705SXin Li #define CINDEX_LINKAGE __declspec(dllimport) 27*67e74705SXin Li #endif 28*67e74705SXin Li #else 29*67e74705SXin Li #define CINDEX_LINKAGE 30*67e74705SXin Li #endif 31*67e74705SXin Li 32*67e74705SXin Li #ifdef __GNUC__ 33*67e74705SXin Li #define CINDEX_DEPRECATED __attribute__((deprecated)) 34*67e74705SXin Li #else 35*67e74705SXin Li #ifdef _MSC_VER 36*67e74705SXin Li #define CINDEX_DEPRECATED __declspec(deprecated) 37*67e74705SXin Li #else 38*67e74705SXin Li #define CINDEX_DEPRECATED 39*67e74705SXin Li #endif 40*67e74705SXin Li #endif 41*67e74705SXin Li 42*67e74705SXin Li #ifdef __cplusplus 43*67e74705SXin Li } 44*67e74705SXin Li #endif 45*67e74705SXin Li #endif 46