@@ -332,6 +332,22 @@ ImportObjCHeader("import-objc-header",
332
332
llvm::cl::desc (" header to implicitly import" ),
333
333
llvm::cl::cat(Category));
334
334
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
+
335
351
static llvm::cl::opt<bool >
336
352
EnableSourceImport (" enable-source-import" , llvm::cl::Hidden,
337
353
llvm::cl::cat (Category), llvm::cl::init(false ));
@@ -4473,6 +4489,32 @@ int main(int argc, char *argv[]) {
4473
4489
}
4474
4490
}
4475
4491
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
+ paths.push_back (path);
4499
+ }
4500
+ InitInvok.getSearchPathOptions ().setCompilerPluginLibraryPaths (paths);
4501
+ }
4502
+ if (!options::LoadPluginExecutable.empty ()) {
4503
+ std::vector<PluginExecutablePathAndModuleNames> pairs;
4504
+ for (auto arg: options::LoadPluginExecutable) {
4505
+ StringRef path;
4506
+ StringRef modulesStr;
4507
+ std::tie (path, modulesStr) = StringRef (arg).rsplit (' #' );
4508
+ std::vector<std::string> moduleNames;
4509
+ for (auto name : llvm::split (modulesStr, ' ,' )) {
4510
+ moduleNames.emplace_back (name);
4511
+ }
4512
+ pairs.push_back ({std::string (path), std::move (moduleNames)});
4513
+ }
4514
+
4515
+ InitInvok.getSearchPathOptions ().setCompilerPluginExecutablePaths (std::move (pairs));
4516
+ }
4517
+
4476
4518
// Process the clang arguments last and allow them to override previously
4477
4519
// set options.
4478
4520
if (!CCArgs.empty ()) {
0 commit comments