Skip to content

Commit d72b697

Browse files
committed
[libclang][cas] Add libclang APIs to setup options for the LLVM CAS plugin library
(cherry picked from commit b55116b)
1 parent 6a04c48 commit d72b697

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

clang/include/clang-c/CAS.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,19 @@ CINDEX_LINKAGE void clang_experimental_cas_Options_dispose(CXCASOptions);
6969
CINDEX_LINKAGE void
7070
clang_experimental_cas_Options_setOnDiskPath(CXCASOptions, const char *Path);
7171

72+
/**
73+
* Configure the path to a library that implements the LLVM CAS plugin API.
74+
*/
75+
CINDEX_LINKAGE void
76+
clang_experimental_cas_Options_setPluginPath(CXCASOptions, const char *Path);
77+
78+
/**
79+
* Set a value for a named option that the CAS plugin supports.
80+
*/
81+
CINDEX_LINKAGE void
82+
clang_experimental_cas_Options_setPluginOption(CXCASOptions, const char *Name,
83+
const char *Value);
84+
7285
/**
7386
* Creates instances for a CAS object store and action cache based on the
7487
* configuration of a \p CXCASOptions.

clang/tools/libclang/CCAS.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,19 @@ void clang_experimental_cas_Options_setOnDiskPath(CXCASOptions COpts,
3535
Opts.CASPath = Path;
3636
}
3737

38+
void clang_experimental_cas_Options_setPluginPath(CXCASOptions COpts,
39+
const char *Path) {
40+
CASOptions &Opts = *unwrap(COpts);
41+
Opts.PluginPath = Path;
42+
}
43+
44+
void clang_experimental_cas_Options_setPluginOption(CXCASOptions COpts,
45+
const char *Name,
46+
const char *Value) {
47+
CASOptions &Opts = *unwrap(COpts);
48+
Opts.PluginOptions.emplace_back(Name, Value);
49+
}
50+
3851
CXCASDatabases clang_experimental_cas_Databases_create(CXCASOptions COpts,
3952
CXString *Error) {
4053
CASOptions &Opts = *unwrap(COpts);

clang/tools/libclang/libclang.map

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,8 @@ LLVM_16 {
480480
clang_experimental_cas_Options_create;
481481
clang_experimental_cas_Options_dispose;
482482
clang_experimental_cas_Options_setOnDiskPath;
483+
clang_experimental_cas_Options_setPluginOption;
484+
clang_experimental_cas_Options_setPluginPath;
483485
clang_experimental_DependencyScannerService_create_v1;
484486
clang_experimental_DependencyScannerServiceOptions_create;
485487
clang_experimental_DependencyScannerServiceOptions_dispose;

0 commit comments

Comments
 (0)