From db2a685287e57d9dfec09c867152c465af6fc6b0 Mon Sep 17 00:00:00 2001 From: "Arnaud A. de Grandmaison" Date: Thu, 28 Jun 2012 22:01:06 +0000 Subject: [PATCH] Factor CXString out of Index.h No functionnal or interface change. This is done to prepare the landing of CompilationDatabase in libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159382 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang-c/CXString.h | 61 ++++++++++++++++++++++++++++++++++++++ include/clang-c/Index.h | 57 ++--------------------------------- include/clang-c/Platform.h | 45 ++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 54 deletions(-) create mode 100644 include/clang-c/CXString.h create mode 100644 include/clang-c/Platform.h diff --git a/include/clang-c/CXString.h b/include/clang-c/CXString.h new file mode 100644 index 0000000000..74c31660ef --- /dev/null +++ b/include/clang-c/CXString.h @@ -0,0 +1,61 @@ +/*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This header provides the interface to C Index strings. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef CLANG_CXSTRING_H +#define CLANG_CXSTRING_H + +#include "clang-c/Platform.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \defgroup CINDEX_STRING String manipulation routines + * \ingroup CINDEX + * + * @{ + */ + +/** + * \brief A character string. + * + * The \c CXString type is used to return strings from the interface when + * the ownership of that string might different from one call to the next. + * Use \c clang_getCString() to retrieve the string data and, once finished + * with the string data, call \c clang_disposeString() to free the string. + */ +typedef struct { + void *data; + unsigned private_flags; +} CXString; + +/** + * \brief Retrieve the character data associated with the given string. + */ +CINDEX_LINKAGE const char *clang_getCString(CXString string); + +/** + * \brief Free the given string, + */ +CINDEX_LINKAGE void clang_disposeString(CXString string); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index 2397ae1925..fd048775d3 100644 --- a/include/clang-c/Index.h +++ b/include/clang-c/Index.h @@ -20,31 +20,13 @@ #include #include +#include "clang-c/Platform.h" +#include "clang-c/CXString.h" + #ifdef __cplusplus extern "C" { #endif -/* MSVC DLL import/export. */ -#ifdef _MSC_VER - #ifdef _CINDEX_LIB_ - #define CINDEX_LINKAGE __declspec(dllexport) - #else - #define CINDEX_LINKAGE __declspec(dllimport) - #endif -#else - #define CINDEX_LINKAGE -#endif - -#ifdef __GNUC__ - #define CINDEX_DEPRECATED __attribute__((deprecated)) -#else - #ifdef _MSC_VER - #define CINDEX_DEPRECATED __declspec(deprecated) - #else - #define CINDEX_DEPRECATED - #endif -#endif - /** \defgroup CINDEX libclang: C Interface to Clang * * The C Interface to Clang provides a relatively small API that exposes @@ -156,39 +138,6 @@ typedef struct CXVersion { int Subminor; } CXVersion; -/** - * \defgroup CINDEX_STRING String manipulation routines - * - * @{ - */ - -/** - * \brief A character string. - * - * The \c CXString type is used to return strings from the interface when - * the ownership of that string might different from one call to the next. - * Use \c clang_getCString() to retrieve the string data and, once finished - * with the string data, call \c clang_disposeString() to free the string. - */ -typedef struct { - void *data; - unsigned private_flags; -} CXString; - -/** - * \brief Retrieve the character data associated with the given string. - */ -CINDEX_LINKAGE const char *clang_getCString(CXString string); - -/** - * \brief Free the given string, - */ -CINDEX_LINKAGE void clang_disposeString(CXString string); - -/** - * @} - */ - /** * \brief Provides a shared context for creating translation units. * diff --git a/include/clang-c/Platform.h b/include/clang-c/Platform.h new file mode 100644 index 0000000000..0f866c6456 --- /dev/null +++ b/include/clang-c/Platform.h @@ -0,0 +1,45 @@ +/*===-- clang-c/Platform.h - C Index platform decls -------------*- C -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This header provides platform specific macros (dllimport, deprecated, ...) *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef CLANG_C_PLATFORM_H +#define CLANG_C_PLATFORM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* MSVC DLL import/export. */ +#ifdef _MSC_VER + #ifdef _CINDEX_LIB_ + #define CINDEX_LINKAGE __declspec(dllexport) + #else + #define CINDEX_LINKAGE __declspec(dllimport) + #endif +#else + #define CINDEX_LINKAGE +#endif + +#ifdef __GNUC__ + #define CINDEX_DEPRECATED __attribute__((deprecated)) +#else + #ifdef _MSC_VER + #define CINDEX_DEPRECATED __declspec(deprecated) + #else + #define CINDEX_DEPRECATED + #endif +#endif + +#ifdef __cplusplus +} +#endif +#endif -- 2.50.1