Skip to content

Commit 6701bf6

Browse files
committed
Add support for clang 7.0.x
1 parent 67f7d8c commit 6701bf6

File tree

4 files changed

+98
-0
lines changed

4 files changed

+98
-0
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## [0.24.0] - UNRELEASED
2+
3+
### Added
4+
- Added support for `clang` 7.0.x
5+
16
## [0.23.0] - 2018-06-16
27

38
### Changed

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ clang_3_9 = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9"]
2626
clang_4_0 = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9", "gte_clang_4_0"]
2727
clang_5_0 = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9", "gte_clang_4_0", "gte_clang_5_0"]
2828
clang_6_0 = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9", "gte_clang_4_0", "gte_clang_5_0", "gte_clang_6_0"]
29+
clang_7_0 = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9", "gte_clang_4_0", "gte_clang_5_0", "gte_clang_6_0", "gte_clang_7_0"]
2930

3031
gte_clang_3_6 = []
3132
gte_clang_3_7 = []
@@ -34,6 +35,7 @@ gte_clang_3_9 = []
3435
gte_clang_4_0 = []
3536
gte_clang_5_0 = []
3637
gte_clang_6_0 = []
38+
gte_clang_7_0 = []
3739

3840
runtime = ["libloading"]
3941
static = []

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ To target a version of `libclang`, enable one of the following Cargo features:
3333
([Documentation](https://kylemayes.github.io/clang-sys/5_0/clang_sys))
3434
* `clang_6_0` - requires `libclang` 6.0 or later
3535
([Documentation](https://kylemayes.github.io/clang-sys/6_0/clang_sys))
36+
* `clang_7_0` - requires `libclang` 7.0 or later
37+
([Documentation](https://kylemayes.github.io/clang-sys/7_0/clang_sys))
3638

3739
If you do not enable one of these features, the API provided by `libclang` 3.5 will be available by
3840
default.

src/lib.rs

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
//! * 4.0 - [Documentation](https://kylemayes.github.io/clang-sys/4_0/clang_sys)
2525
//! * 5.0 - [Documentation](https://kylemayes.github.io/clang-sys/5_0/clang_sys)
2626
//! * 6.0 - [Documentation](https://kylemayes.github.io/clang-sys/6_0/clang_sys)
27+
//! * 7.0 - [Documentation](https://kylemayes.github.io/clang-sys/7_0/clang_sys)
2728
2829
#![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)]
2930

@@ -322,6 +323,8 @@ cenum! {
322323
const CXCursor_OMPArraySectionExpr = 147,
323324
/// Only produced by `libclang` 3.9 and later.
324325
const CXCursor_ObjCAvailabilityCheckExpr = 148,
326+
/// Only produced by `libclang` 7.0 and later.
327+
const CXCursor_FixedPointLiteral = 149,
325328
const CXCursor_UnexposedStmt = 200,
326329
const CXCursor_LabelStmt = 201,
327330
const CXCursor_CompoundStmt = 202,
@@ -628,6 +631,38 @@ cenum! {
628631
}
629632
}
630633

634+
cenum! {
635+
#[cfg(feature="gte_clang_7_0")]
636+
enum CXPrintingPolicyProperty {
637+
const CXPrintingPolicy_Indentation = 0,
638+
const CXPrintingPolicy_SuppressSpecifiers = 1,
639+
const CXPrintingPolicy_SuppressTagKeyword = 2,
640+
const CXPrintingPolicy_IncludeTagDefinition = 3,
641+
const CXPrintingPolicy_SuppressScope = 4,
642+
const CXPrintingPolicy_SuppressUnwrittenScope = 5,
643+
const CXPrintingPolicy_SuppressInitializers = 6,
644+
const CXPrintingPolicy_ConstantArraySizeAsWritten = 7,
645+
const CXPrintingPolicy_AnonymousTagLocations = 8,
646+
const CXPrintingPolicy_SuppressStrongLifetime = 9,
647+
const CXPrintingPolicy_SuppressLifetimeQualifiers = 10,
648+
const CXPrintingPolicy_SuppressTemplateArgsInCXXConstructors = 11,
649+
const CXPrintingPolicy_Bool = 12,
650+
const CXPrintingPolicy_Restrict = 13,
651+
const CXPrintingPolicy_Alignof = 14,
652+
const CXPrintingPolicy_UnderscoreAlignof = 15,
653+
const CXPrintingPolicy_UseVoidForZeroParams = 16,
654+
const CXPrintingPolicy_TerseOutput = 17,
655+
const CXPrintingPolicy_PolishForDeclaration = 18,
656+
const CXPrintingPolicy_Half = 19,
657+
const CXPrintingPolicy_MSWChar = 20,
658+
const CXPrintingPolicy_IncludeNewlines = 21,
659+
const CXPrintingPolicy_MSVCFormatting = 22,
660+
const CXPrintingPolicy_ConstantsAsWritten = 23,
661+
const CXPrintingPolicy_SuppressImplicitBase = 24,
662+
const CXPrintingPolicy_FullyQualifiedName = 25,
663+
}
664+
}
665+
631666
cenum! {
632667
enum CXRefQualifierKind {
633668
const CXRefQualifier_None = 0,
@@ -745,6 +780,18 @@ cenum! {
745780
const CXType_Half = 31,
746781
/// Only produced by `libclang` 6.0 and later.
747782
const CXType_Float16 = 32,
783+
/// Only produced by `libclang` 7.0 and later.
784+
const CXType_ShortAccum = 33,
785+
/// Only produced by `libclang` 7.0 and later.
786+
const CXType_Accum = 34,
787+
/// Only produced by `libclang` 7.0 and later.
788+
const CXType_LongAccum = 35,
789+
/// Only produced by `libclang` 7.0 and later.
790+
const CXType_UShortAccum = 36,
791+
/// Only produced by `libclang` 7.0 and later.
792+
const CXType_UAccum = 37,
793+
/// Only produced by `libclang` 7.0 and later.
794+
const CXType_ULongAccum = 38,
748795
const CXType_Complex = 100,
749796
const CXType_Pointer = 101,
750797
const CXType_BlockPointer = 102,
@@ -911,6 +958,8 @@ cenum! {
911958
const CXCodeComplete_IncludeMacros = 1;
912959
const CXCodeComplete_IncludeCodePatterns = 2;
913960
const CXCodeComplete_IncludeBriefComments = 4;
961+
const CXCodeComplete_SkipPreamble = 8;
962+
const CXCodeComplete_IncludeCompletionsWithFixIts = 16;
914963
}
915964
}
916965

@@ -1032,6 +1081,22 @@ cenum! {
10321081
}
10331082
}
10341083

1084+
cenum! {
1085+
#[cfg(feature="gte_clang_7_0")]
1086+
enum CXSymbolRole {
1087+
const CXSymbolRole_None = 0;
1088+
const CXSymbolRole_Declaration = 1;
1089+
const CXSymbolRole_Definition = 2;
1090+
const CXSymbolRole_Reference = 4;
1091+
const CXSymbolRole_Read = 8;
1092+
const CXSymbolRole_Write = 16;
1093+
const CXSymbolRole_Call = 32;
1094+
const CXSymbolRole_Dynamic = 64;
1095+
const CXSymbolRole_AddressOf = 128;
1096+
const CXSymbolRole_Implicit = 256;
1097+
}
1098+
}
1099+
10351100
cenum! {
10361101
enum CXTranslationUnit_Flags {
10371102
const CXTranslationUnit_None = 0;
@@ -1049,6 +1114,8 @@ cenum! {
10491114
const CXTranslationUnit_KeepGoing = 512;
10501115
#[cfg(feature="gte_clang_5_0")]
10511116
const CXTranslationUnit_SingleFileParse = 1024;
1117+
#[cfg(feature="gte_clang_7_0")]
1118+
const CXTranslationUnit_LimitSkipFunctionBodiesToPreamble = 2048;
10521119
}
10531120
}
10541121

@@ -1077,6 +1144,8 @@ opaque!(CXIdxClientFile);
10771144
opaque!(CXIndex);
10781145
opaque!(CXIndexAction);
10791146
opaque!(CXModule);
1147+
#[cfg(feature="gte_clang_7_0")]
1148+
opaque!(CXPrintingPolicy);
10801149
opaque!(CXRemapping);
10811150
#[cfg(feature="gte_clang_5_0")]
10821151
opaque!(CXTargetInfo);
@@ -1220,6 +1289,8 @@ pub struct CXIdxEntityRefInfo {
12201289
pub referencedEntity: *const CXIdxEntityInfo,
12211290
pub parentEntity: *const CXIdxEntityInfo,
12221291
pub container: *const CXIdxContainerInfo,
1292+
#[cfg(feature="gte_clang_7_0")]
1293+
pub role: CXSymbolRole,
12231294
}
12241295

12251296
default!(CXIdxEntityRefInfo);
@@ -1576,6 +1647,8 @@ link! {
15761647
pub fn clang_EvalResult_isUnsignedInt(result: CXEvalResult) -> c_uint;
15771648
#[cfg(feature="gte_clang_3_6")]
15781649
pub fn clang_File_isEqual(left: CXFile, right: CXFile) -> c_int;
1650+
#[cfg(feature="gte_clang_7_0")]
1651+
pub fn clang_File_tryGetRealPathName(file: CXFile) -> CXString;
15791652
pub fn clang_IndexAction_create(index: CXIndex) -> CXIndexAction;
15801653
pub fn clang_IndexAction_dispose(index: CXIndexAction);
15811654
pub fn clang_Location_isFromMainFile(location: CXSourceLocation) -> c_int;
@@ -1587,6 +1660,12 @@ link! {
15871660
pub fn clang_Module_getParent(module: CXModule) -> CXModule;
15881661
pub fn clang_Module_getTopLevelHeader(tu: CXTranslationUnit, module: CXModule, index: c_uint) -> CXFile;
15891662
pub fn clang_Module_isSystem(module: CXModule) -> c_int;
1663+
#[cfg(feature="gte_clang_7_0")]
1664+
pub fn clang_PrintingPolicy_dispose(policy: CXPrintingPolicy);
1665+
#[cfg(feature="gte_clang_7_0")]
1666+
pub fn clang_PrintingPolicy_getProperty(policy: CXPrintingPolicy, property: CXPrintingPolicyProperty) -> c_uint;
1667+
#[cfg(feature="gte_clang_7_0")]
1668+
pub fn clang_PrintingPolicy_setProperty(policy: CXPrintingPolicy, property: CXPrintingPolicyProperty, value: c_uint);
15901669
pub fn clang_Range_isNull(range: CXSourceRange) -> c_int;
15911670
#[cfg(feature="gte_clang_5_0")]
15921671
pub fn clang_TargetInfo_dispose(info: CXTargetInfo);
@@ -1678,7 +1757,11 @@ link! {
16781757
pub fn clang_getCompletionChunkCompletionString(string: CXCompletionString, index: c_uint) -> CXCompletionString;
16791758
pub fn clang_getCompletionChunkKind(string: CXCompletionString, index: c_uint) -> CXCompletionChunkKind;
16801759
pub fn clang_getCompletionChunkText(string: CXCompletionString, index: c_uint) -> CXString;
1760+
#[cfg(feature="gte_clang_7_0")]
1761+
pub fn clang_getCompletionFixIt(results: *mut CXCodeCompleteResults, completion_index: c_uint, fixit_index: c_uint, range: *mut CXSourceRange) -> CXString;
16811762
pub fn clang_getCompletionNumAnnotations(string: CXCompletionString) -> c_uint;
1763+
#[cfg(feature="gte_clang_7_0")]
1764+
pub fn clang_getCompletionNumFixIts(results: *mut CXCodeCompleteResults, completion_index: c_uint) -> c_uint;
16821765
pub fn clang_getCompletionParent(string: CXCompletionString, kind: *mut CXCursorKind) -> CXString;
16831766
pub fn clang_getCompletionPriority(string: CXCompletionString) -> c_uint;
16841767
pub fn clang_getCursor(tu: CXTranslationUnit, location: CXSourceLocation) -> CXCursor;
@@ -1696,6 +1779,10 @@ link! {
16961779
pub fn clang_getCursorLinkage(cursor: CXCursor) -> CXLinkageKind;
16971780
pub fn clang_getCursorLocation(cursor: CXCursor) -> CXSourceLocation;
16981781
pub fn clang_getCursorPlatformAvailability(cursor: CXCursor, deprecated: *mut c_int, deprecated_message: *mut CXString, unavailable: *mut c_int, unavailable_message: *mut CXString, availability: *mut CXPlatformAvailability, n_availability: c_int) -> c_int;
1782+
#[cfg(feature="gte_clang_7_0")]
1783+
pub fn clang_getCursorPrettyPrinted(cursor: CXCursor, policy: CXPrintingPolicy) -> CXString;
1784+
#[cfg(feature="gte_clang_7_0")]
1785+
pub fn clang_getCursorPrintingPolicy(cursor: CXCursor) -> CXPrintingPolicy;
16991786
pub fn clang_getCursorReferenceNameRange(cursor: CXCursor, flags: CXNameRefFlags, index: c_uint) -> CXSourceRange;
17001787
pub fn clang_getCursorReferenced(cursor: CXCursor) -> CXCursor;
17011788
pub fn clang_getCursorResultType(cursor: CXCursor) -> CXType;
@@ -1811,6 +1898,8 @@ link! {
18111898
pub fn clang_isFileMultipleIncludeGuarded(tu: CXTranslationUnit, file: CXFile) -> c_uint;
18121899
pub fn clang_isFunctionTypeVariadic(type_: CXType) -> c_uint;
18131900
pub fn clang_isInvalid(kind: CXCursorKind) -> c_uint;
1901+
#[cfg(feature="gte_clang_7_0")]
1902+
pub fn clang_isInvalidDeclaration(cursor: CXCursor) -> c_uint;
18141903
pub fn clang_isPODType(type_: CXType) -> c_uint;
18151904
pub fn clang_isPreprocessing(kind: CXCursorKind) -> c_uint;
18161905
pub fn clang_isReference(kind: CXCursorKind) -> c_uint;

0 commit comments

Comments
 (0)