================
@@ -1829,6 +1831,53 @@ Compilation *Driver::BuildCompilation(ArrayRef<const
char *> ArgList) {
// Populate the tool chains for the offloading devices, if any.
CreateOffloadingDeviceToolChains(*C, Inputs);
+ modules::StdModuleManifest Manifest;
+ if (C->getArgs().hasFlag(options::OPT_fmodules_driver,
+ options::OPT_fno_modules_driver, false)) {
+ Diags.Report(diag::remark_performing_driver_managed_module_build);
+ // TODO: Once -fmodules-driver is no longer experimental, move
+ // TODO: The detection logic to implicitly enable -fmodules-driver is kept
+ // here only for diagnostics until the feature is no longer experimental.
+ auto EnableOrErr = modules::shouldUseModulesDriver(Inputs, getVFS(),
Diags);
+ if (!EnableOrErr) {
+ llvm::handleAllErrors(
+ EnableOrErr.takeError(), [&](const llvm::FileError &Err) {
+ Diags.Report(diag::err_cannot_open_file)
+ << Err.getFileName() << Err.messageWithoutFileInfo();
+ });
+ return C;
+ }
+
+ // Read the standard modules manifest, and if available, add all discovered
+ // modules to the compilation. Compilation jobs for modules discovered from
+ // the manifest, which are not imported by any other source input, are
+ // pruned later.
+ const auto StdModuleManifestPath =
+ GetStdModuleManifestPath(*C, C->getDefaultToolChain());
+ if (StdModuleManifestPath == "<NOT PRESENT>") {
----------------
ChuanqiXu9 wrote:
nit: maybe we can avoid hardcoding by judging this by if it is a path.
https://github.com/llvm/llvm-project/pull/152770
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits