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