diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-11-15 19:35:01 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-11-15 19:35:01 +0000 |
commit | b86b8dc7ef89405205f94635c1073cdb1a7093eb (patch) | |
tree | 31b8e89368366243825b07fcab61c4a359796f2c /lib/Frontend | |
parent | 0b69d132583217d4072421e3e83fa1f3942d854a (diff) |
Add a -cc1-level option -fmodule-name=<name>, which will be used when
building modules.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144680 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/CompilerInstance.cpp | 7 | ||||
-rw-r--r-- | lib/Frontend/CompilerInvocation.cpp | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index 0e3b25168f..ea2c3bd6c6 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -278,9 +278,7 @@ void CompilerInstance::createPreprocessor() { llvm::sys::path::append(SpecificModuleCache, getInvocation().getModuleHash()); PP->getHeaderSearchInfo().configureModules(SpecificModuleCache, - getPreprocessorOpts().ModuleBuildPath.empty() - ? std::string() - : getPreprocessorOpts().ModuleBuildPath.back()); + getLangOpts().CurrentModule); // Handle generating dependencies, if requested. const DependencyOutputOptions &DepOpts = getDependencyOutputOpts(); @@ -992,6 +990,9 @@ static void compileModule(CompilerInstance &ImportingInstance, Invocation->getLangOpts().resetNonModularOptions(); Invocation->getPreprocessorOpts().resetNonModularOptions(); + // Note the name of the module we're building. + Invocation->getLangOpts().CurrentModule = ModuleName; + // Note that this module is part of the module build path, so that we // can detect cycles in the module graph. Invocation->getPreprocessorOpts().ModuleBuildPath.push_back(ModuleName); diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index c247e21737..015288c853 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -788,6 +788,8 @@ static void LangOptsToArgs(const LangOptions &Opts, Res.push_back("-fdeprecated-macro"); if (Opts.ApplePragmaPack) Res.push_back("-fapple-pragma-pack"); + if (!Opts.CurrentModule.empty()) + Res.push_back("-fmodule-name=" + Opts.CurrentModule); } static void PreprocessorOptsToArgs(const PreprocessorOptions &Opts, @@ -1785,6 +1787,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, Opts.ParseUnknownAnytype = Args.hasArg(OPT_funknown_anytype); Opts.DebuggerSupport = Args.hasArg(OPT_fdebugger_support); Opts.ApplePragmaPack = Args.hasArg(OPT_fapple_pragma_pack); + Opts.CurrentModule = Args.getLastArgValue(OPT_fmodule_name); // Record whether the __DEPRECATED define was requested. Opts.Deprecated = Args.hasFlag(OPT_fdeprecated_macro, |