-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
2,013 additions
and
677 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
#include <stdint.h> | ||
|
||
/*==-- clang-c/BuildSystem.h - Utilities for use by build systems -*- 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 various utilities for use by build systems. *| | ||
|* *| | ||
\*===----------------------------------------------------------------------===*/ | ||
|
||
#ifndef LLVM_CLANG_C_BUILDSYSTEM_H | ||
#define LLVM_CLANG_C_BUILDSYSTEM_H | ||
|
||
#include "clang-c/Platform.h" | ||
#include "clang-c/CXErrorCode.h" | ||
#include "clang-c/CXString.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* \defgroup BUILD_SYSTEM Build system utilities | ||
* @{ | ||
*/ | ||
|
||
/** | ||
* \brief Return the timestamp for use with Clang's | ||
* \c -fbuild-session-timestamp= option. | ||
*/ | ||
CINDEX_LINKAGE unsigned long long clang_getBuildSessionTimestamp(void); | ||
|
||
/** | ||
* \brief Object encapsulating information about overlaying virtual | ||
* file/directories over the real file system. | ||
*/ | ||
typedef struct CXVirtualFileOverlayImpl *CXVirtualFileOverlay; | ||
|
||
/** | ||
* \brief Create a \c CXVirtualFileOverlay object. | ||
* Must be disposed with \c clang_VirtualFileOverlay_dispose(). | ||
* | ||
* \param options is reserved, always pass 0. | ||
*/ | ||
CINDEX_LINKAGE CXVirtualFileOverlay | ||
clang_VirtualFileOverlay_create(unsigned options); | ||
|
||
/** | ||
* \brief Map an absolute virtual file path to an absolute real one. | ||
* The virtual path must be canonicalized (not contain "."/".."). | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_VirtualFileOverlay_addFileMapping(CXVirtualFileOverlay, | ||
const char *virtualPath, | ||
const char *realPath); | ||
|
||
/** | ||
* \brief Set the case sensitivity for the \c CXVirtualFileOverlay object. | ||
* The \c CXVirtualFileOverlay object is case-sensitive by default, this | ||
* option can be used to override the default. | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_VirtualFileOverlay_setCaseSensitivity(CXVirtualFileOverlay, | ||
int caseSensitive); | ||
|
||
/** | ||
* \brief Write out the \c CXVirtualFileOverlay object to a char buffer. | ||
* | ||
* \param options is reserved, always pass 0. | ||
* \param out_buffer_ptr pointer to receive the buffer pointer, which should be | ||
* disposed using \c clang_free(). | ||
* \param out_buffer_size pointer to receive the buffer size. | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_VirtualFileOverlay_writeToBuffer(CXVirtualFileOverlay, unsigned options, | ||
char **out_buffer_ptr, | ||
unsigned *out_buffer_size); | ||
|
||
/** | ||
* \brief free memory allocated by libclang, such as the buffer returned by | ||
* \c CXVirtualFileOverlay() or \c clang_ModuleMapDescriptor_writeToBuffer(). | ||
* | ||
* \param buffer memory pointer to free. | ||
*/ | ||
CINDEX_LINKAGE void clang_free(void *buffer); | ||
|
||
/** | ||
* \brief Dispose a \c CXVirtualFileOverlay object. | ||
*/ | ||
CINDEX_LINKAGE void clang_VirtualFileOverlay_dispose(CXVirtualFileOverlay); | ||
|
||
/** | ||
* \brief Object encapsulating information about a module.map file. | ||
*/ | ||
typedef struct CXModuleMapDescriptorImpl *CXModuleMapDescriptor; | ||
|
||
/** | ||
* \brief Create a \c CXModuleMapDescriptor object. | ||
* Must be disposed with \c clang_ModuleMapDescriptor_dispose(). | ||
* | ||
* \param options is reserved, always pass 0. | ||
*/ | ||
CINDEX_LINKAGE CXModuleMapDescriptor | ||
clang_ModuleMapDescriptor_create(unsigned options); | ||
|
||
/** | ||
* \brief Sets the framework module name that the module.map describes. | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_ModuleMapDescriptor_setFrameworkModuleName(CXModuleMapDescriptor, | ||
const char *name); | ||
|
||
/** | ||
* \brief Sets the umbrealla header name that the module.map describes. | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_ModuleMapDescriptor_setUmbrellaHeader(CXModuleMapDescriptor, | ||
const char *name); | ||
|
||
/** | ||
* \brief Write out the \c CXModuleMapDescriptor object to a char buffer. | ||
* | ||
* \param options is reserved, always pass 0. | ||
* \param out_buffer_ptr pointer to receive the buffer pointer, which should be | ||
* disposed using \c clang_free(). | ||
* \param out_buffer_size pointer to receive the buffer size. | ||
* \returns 0 for success, non-zero to indicate an error. | ||
*/ | ||
CINDEX_LINKAGE enum CXErrorCode | ||
clang_ModuleMapDescriptor_writeToBuffer(CXModuleMapDescriptor, unsigned options, | ||
char **out_buffer_ptr, | ||
unsigned *out_buffer_size); | ||
|
||
/** | ||
* \brief Dispose a \c CXModuleMapDescriptor object. | ||
*/ | ||
CINDEX_LINKAGE void clang_ModuleMapDescriptor_dispose(CXModuleMapDescriptor); | ||
|
||
/** | ||
* @} | ||
*/ | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* CLANG_C_BUILD_SYSTEM_H */ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#include <stdint.h> | ||
|
||
/*===-- clang-c/CXErrorCode.h - C Index Error Codes --------------*- 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 CXErrorCode enumerators. *| | ||
|* *| | ||
\*===----------------------------------------------------------------------===*/ | ||
|
||
#ifndef LLVM_CLANG_C_CXERRORCODE_H | ||
#define LLVM_CLANG_C_CXERRORCODE_H | ||
|
||
#include "clang-c/Platform.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* \brief Error codes returned by libclang routines. | ||
* | ||
* Zero (\c CXError_Success) is the only error code indicating success. Other | ||
* error codes, including not yet assigned non-zero values, indicate errors. | ||
*/ | ||
enum CXErrorCode { | ||
/** | ||
* \brief No error. | ||
*/ | ||
CXError_Success = 0, | ||
|
||
/** | ||
* \brief A generic error code, no further details are available. | ||
* | ||
* Errors of this kind can get their own specific error codes in future | ||
* libclang versions. | ||
*/ | ||
CXError_Failure = 1, | ||
|
||
/** | ||
* \brief libclang crashed while performing the requested operation. | ||
*/ | ||
CXError_Crashed = 2, | ||
|
||
/** | ||
* \brief The function detected that the arguments violate the function | ||
* contract. | ||
*/ | ||
CXError_InvalidArguments = 3, | ||
|
||
/** | ||
* \brief An AST deserialization error has occurred. | ||
*/ | ||
CXError_ASTReadError = 4 | ||
}; | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
#endif | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.