Skip to content

Commit 23f9749

Browse files
committed
[swift-ide-test] Add plugin related options
1 parent 9a6ad6f commit 23f9749

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tools/swift-ide-test/swift-ide-test.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,22 @@ ImportObjCHeader("import-objc-header",
332332
llvm::cl::desc("header to implicitly import"),
333333
llvm::cl::cat(Category));
334334

335+
static llvm::cl::list<std::string>
336+
PluginPath("plugin-path",
337+
llvm::cl::desc("plugin-path"),
338+
llvm::cl::cat(Category));
339+
340+
static llvm::cl::list<std::string>
341+
LoadPluginLibrary("load-plugin-library",
342+
llvm::cl::desc("load plugin library"),
343+
llvm::cl::cat(Category));
344+
345+
static llvm::cl::list<std::string>
346+
LoadPluginExecutable("load-plugin-executable",
347+
llvm::cl::desc("load plugin executable"),
348+
llvm::cl::cat(Category));
349+
350+
335351
static llvm::cl::opt<bool>
336352
EnableSourceImport("enable-source-import", llvm::cl::Hidden,
337353
llvm::cl::cat(Category), llvm::cl::init(false));
@@ -4473,6 +4489,33 @@ int main(int argc, char *argv[]) {
44734489
}
44744490
}
44754491

4492+
for (auto path : options::PluginPath) {
4493+
InitInvok.getSearchPathOptions().PluginSearchPaths.push_back(path);
4494+
}
4495+
if (!options::LoadPluginLibrary.empty()) {
4496+
std::vector<std::string> paths;
4497+
for (auto path: options::LoadPluginLibrary) {
4498+
llvm::errs() << "LoadPluginLibrary: " << path << "\n";
4499+
paths.push_back(path);
4500+
}
4501+
InitInvok.getSearchPathOptions().setCompilerPluginLibraryPaths(paths);
4502+
}
4503+
if (!options::LoadPluginExecutable.empty()) {
4504+
std::vector<PluginExecutablePathAndModuleNames> pairs;
4505+
for (auto arg: options::LoadPluginExecutable) {
4506+
StringRef path;
4507+
StringRef modulesStr;
4508+
std::tie(path, modulesStr) = StringRef(arg).rsplit('#');
4509+
std::vector<std::string> moduleNames;
4510+
for (auto name : llvm::split(modulesStr, ',')) {
4511+
moduleNames.emplace_back(name);
4512+
}
4513+
pairs.push_back({std::string(path), std::move(moduleNames)});
4514+
}
4515+
4516+
InitInvok.getSearchPathOptions().setCompilerPluginExecutablePaths(std::move(pairs));
4517+
}
4518+
44764519
// Process the clang arguments last and allow them to override previously
44774520
// set options.
44784521
if (!CCArgs.empty()) {

0 commit comments

Comments
 (0)