@@ -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+
335351static llvm::cl::opt<bool >
336352EnableSourceImport (" enable-source-import" , llvm::cl::Hidden,
337353 llvm::cl::cat (Category), llvm::cl::init(false ));
@@ -4473,6 +4489,32 @@ 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+ 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+
44764518 // Process the clang arguments last and allow them to override previously
44774519 // set options.
44784520 if (!CCArgs.empty ()) {
0 commit comments