dang created this revision. dang added a reviewer: Bigcheese. Herald added subscribers: cfe-commits, dexonsmith. Herald added a project: clang.
Depends on D84669 <https://reviews.llvm.org/D84669> Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D84670 Files: clang/include/clang/Driver/Options.td clang/lib/Frontend/CompilerInvocation.cpp
Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -1678,10 +1678,8 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, const std::string &WorkingDir) { - Opts.Sysroot = std::string(Args.getLastArgValue(OPT_isysroot, "/")); if (const Arg *A = Args.getLastArg(OPT_stdlib_EQ)) Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); - Opts.ResourceDir = std::string(Args.getLastArgValue(OPT_resource_dir)); // Canonicalize -fmodules-cache-path before storing it. SmallString<128> P(Args.getLastArgValue(OPT_fmodules_cache_path)); @@ -1694,8 +1692,6 @@ llvm::sys::path::remove_dots(P); Opts.ModuleCachePath = std::string(P.str()); - Opts.ModuleUserBuildPath = - std::string(Args.getLastArgValue(OPT_fmodules_user_build_path)); // Only the -fmodule-file=<name>=<file> form. for (const auto *A : Args.filtered(OPT_fmodule_file)) { StringRef Val = A->getValue(); @@ -1707,14 +1703,6 @@ } for (const auto *A : Args.filtered(OPT_fprebuilt_module_path)) Opts.AddPrebuiltModulePath(A->getValue()); - Opts.ModuleCachePruneInterval = - getLastArgIntValue(Args, OPT_fmodules_prune_interval, 7 * 24 * 60 * 60); - Opts.ModuleCachePruneAfter = - getLastArgIntValue(Args, OPT_fmodules_prune_after, 31 * 24 * 60 * 60); - Opts.BuildSessionTimestamp = - getLastArgUInt64Value(Args, OPT_fbuild_session_timestamp, 0); - if (const Arg *A = Args.getLastArg(OPT_fmodule_format_EQ)) - Opts.ModuleFormat = A->getValue(); for (const auto *A : Args.filtered(OPT_fmodules_ignore_macro)) { StringRef MacroDef = A->getValue(); Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -1279,6 +1279,30 @@ HelpText<"Show commands to run and use verbose output">, MarshallingInfoFlag<"HeaderSearchOpts->Verbose", "false">; +def fmodules_user_build_path : Separate<["-"], "fmodules-user-build-path">, Group<i_Group>, + Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">, + HelpText<"Specify the module user build path">, + MarshallingInfoString<"HeaderSearchOpts->ModuleUserBuildPath">; +def fmodules_prune_interval : Joined<["-"], "fmodules-prune-interval=">, Group<i_Group>, + Flags<[CC1Option]>, MetaVarName<"<seconds>">, + HelpText<"Specify the interval (in seconds) between attempts to prune the module cache">, + MarshallingInfoStringInt<"HeaderSearchOpts->ModuleCachePruneInterval", "7 * 24 * 60 * 60">; +def fmodules_prune_after : Joined<["-"], "fmodules-prune-after=">, Group<i_Group>, + Flags<[CC1Option]>, MetaVarName<"<seconds>">, + HelpText<"Specify the interval (in seconds) after which a module file will be considered unused">, + MarshallingInfoStringInt<"HeaderSearchOpts->ModuleCachePruneAfter", "31 * 24 *60 * 60">; +def fbuild_session_timestamp : Joined<["-"], "fbuild-session-timestamp=">, + Group<i_Group>, Flags<[CC1Option]>, MetaVarName<"<time since Epoch in seconds>">, + HelpText<"Time when the current build session started">, + MarshallingInfoStringInt<"HeaderSearchOpts->BuildSessionTimestamp">; +def isysroot : JoinedOrSeparate<["-"], "isysroot">, Group<clang_i_Group>, Flags<[CC1Option]>, + HelpText<"Set the system root directory (usually /)">, MetaVarName<"<dir>">, + MarshallingInfoString<"HeaderSearchOpts->Sysroot", [{std::string("/")}]>; +def resource_dir : Separate<["-"], "resource-dir">, + Flags<[DriverOption, CC1Option, CoreOption, HelpHidden]>, + HelpText<"The directory which holds the compiler resource files">, + MarshallingInfoString<"HeaderSearchOpts->ResourceDir">; + let Flags = [CC1Option, NoDriverOption] in { def fmodule_map_file_home_is_cwd : Flag<["-"], "fmodule-map-file-home-is-cwd">, @@ -1299,6 +1323,11 @@ "semantics of a module in an implicit build">, MarshallingInfoFlag<"HeaderSearchOpts->ModulesStrictContextHash", "false">; +def fmodule_format_EQ : Joined<["-"], "fmodule-format=">, + HelpText<"Select the container format for clang modules and PCH. " + "Supported options are 'raw' and 'obj'.">, + MarshallingInfoString<"HeaderSearchOpts->ModuleFormat", [{std::string("raw")}]>; + } // Flags = [CC1Option, NoDriverOption] // Language Options @@ -2443,24 +2472,12 @@ def fmodules_cache_path : Joined<["-"], "fmodules-cache-path=">, Group<i_Group>, Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">, HelpText<"Specify the module cache path">; -def fmodules_user_build_path : Separate<["-"], "fmodules-user-build-path">, Group<i_Group>, - Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">, - HelpText<"Specify the module user build path">; def fprebuilt_module_path : Joined<["-"], "fprebuilt-module-path=">, Group<i_Group>, Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">, HelpText<"Specify the prebuilt module path">; -def fmodules_prune_interval : Joined<["-"], "fmodules-prune-interval=">, Group<i_Group>, - Flags<[CC1Option]>, MetaVarName<"<seconds>">, - HelpText<"Specify the interval (in seconds) between attempts to prune the module cache">; -def fmodules_prune_after : Joined<["-"], "fmodules-prune-after=">, Group<i_Group>, - Flags<[CC1Option]>, MetaVarName<"<seconds>">, - HelpText<"Specify the interval (in seconds) after which a module file will be considered unused">; def fmodules_search_all : Flag <["-"], "fmodules-search-all">, Group<f_Group>, Flags<[DriverOption, CC1Option]>, HelpText<"Search even non-imported modules to resolve references">; -def fbuild_session_timestamp : Joined<["-"], "fbuild-session-timestamp=">, - Group<i_Group>, Flags<[CC1Option]>, MetaVarName<"<time since Epoch in seconds>">, - HelpText<"Time when the current build session started">; def fbuild_session_file : Joined<["-"], "fbuild-session-file=">, Group<i_Group>, MetaVarName<"<file>">, HelpText<"Use the last modification time of <file> as the build session timestamp">; @@ -2935,8 +2952,6 @@ HelpText<"Set the -iwithprefix/-iwithprefixbefore prefix">, MetaVarName<"<dir>">; def iquote : JoinedOrSeparate<["-"], "iquote">, Group<clang_i_Group>, Flags<[CC1Option]>, HelpText<"Add directory to QUOTE include search path">, MetaVarName<"<directory>">; -def isysroot : JoinedOrSeparate<["-"], "isysroot">, Group<clang_i_Group>, Flags<[CC1Option]>, - HelpText<"Set the system root directory (usually /)">, MetaVarName<"<dir>">; def isystem : JoinedOrSeparate<["-"], "isystem">, Group<clang_i_Group>, Flags<[CC1Option]>, HelpText<"Add directory to SYSTEM include search path">, MetaVarName<"<directory>">; @@ -3537,9 +3552,6 @@ def rewrite_legacy_objc : Flag<["-"], "rewrite-legacy-objc">, Flags<[DriverOption]>, HelpText<"Rewrite Legacy Objective-C source to C++">; def rdynamic : Flag<["-"], "rdynamic">; -def resource_dir : Separate<["-"], "resource-dir">, - Flags<[DriverOption, CC1Option, CoreOption, HelpHidden]>, - HelpText<"The directory which holds the compiler resource files">; def resource_dir_EQ : Joined<["-"], "resource-dir=">, Flags<[DriverOption, CoreOption]>, Alias<resource_dir>; def rpath : Separate<["-"], "rpath">, Flags<[LinkerInput]>, Group<Link_Group>; @@ -4516,9 +4528,6 @@ Flag<["-"], "fmodules-local-submodule-visibility">, HelpText<"Enforce name visibility rules across submodules of the same " "top-level module.">; -def fmodule_format_EQ : Joined<["-"], "fmodule-format=">, - HelpText<"Select the container format for clang modules and PCH. " - "Supported options are 'raw' and 'obj'.">; def ftest_module_file_extension_EQ : Joined<["-"], "ftest-module-file-extension=">, HelpText<"introduce a module file extension for testing purposes. "
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits