Expose -fmodule-name and -fmodule-map-file as driver options.
Review: http://llvm-reviews.chandlerc.com/D1974 llvm-svn: 193069
This commit is contained in:
parent
63c63ac21e
commit
ac42b75195
|
@ -479,12 +479,6 @@ def fsized_deallocation : Flag<["-"], "fsized-deallocation">,
|
|||
|
||||
def nostdsysteminc : Flag<["-"], "nostdsysteminc">,
|
||||
HelpText<"Disable standard system #include directories">;
|
||||
def fmodule_name : Joined<["-"], "fmodule-name=">,
|
||||
MetaVarName<"<name>">,
|
||||
HelpText<"Specify the name of the module to build">;
|
||||
def fmodule_map_file : Joined<["-"], "fmodule-map-file=">,
|
||||
MetaVarName<"<file>">,
|
||||
HelpText<"Load this module map file">;
|
||||
def fdisable_module_hash : Flag<["-"], "fdisable-module-hash">,
|
||||
HelpText<"Disable the module hash">;
|
||||
def c_isystem : JoinedOrSeparate<["-"], "c-isystem">, MetaVarName<"<directory>">,
|
||||
|
|
|
@ -572,6 +572,12 @@ def fmodules : Flag <["-"], "fmodules">, Group<f_Group>,
|
|||
def fmodule_maps : Flag <["-"], "fmodule-maps">, Group<f_Group>,
|
||||
Flags<[DriverOption,CC1Option]>,
|
||||
HelpText<"Read module maps to understand the structure of library headers">;
|
||||
def fmodule_name : JoinedOrSeparate<["-"], "fmodule-name=">, Group<f_Group>,
|
||||
Flags<[DriverOption,CC1Option]>, MetaVarName<"<name>">,
|
||||
HelpText<"Specify the name of the module to build">;
|
||||
def fmodule_map_file : JoinedOrSeparate<["-"], "fmodule-map-file=">,
|
||||
Group<f_Group>, Flags<[DriverOption,CC1Option]>, MetaVarName<"<file>">,
|
||||
HelpText<"Load this module map file">;
|
||||
def fmodules_ignore_macro : Joined<["-"], "fmodules-ignore-macro=">, Group<f_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Ignore the definition of the given macro when building and loading modules">;
|
||||
def fmodules_decluse : Flag <["-"], "fmodules-decluse">, Group<f_Group>,
|
||||
|
|
|
@ -3060,13 +3060,28 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back("-fmodule-maps");
|
||||
}
|
||||
|
||||
// -fmodules-decluse checks that modules used are declared so (off by default).
|
||||
// -fmodules-decluse checks that modules used are declared so (off by
|
||||
// default).
|
||||
if (Args.hasFlag(options::OPT_fmodules_decluse,
|
||||
options::OPT_fno_modules_decluse,
|
||||
false)) {
|
||||
CmdArgs.push_back("-fmodules-decluse");
|
||||
}
|
||||
|
||||
// -fmodule-name specifies the module that is currently being built (or
|
||||
// used for header checking by -fmodule-maps).
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fmodule_name)) {
|
||||
A->claim();
|
||||
A->render(Args, CmdArgs);
|
||||
}
|
||||
|
||||
// -fmodule-map-file can be used to specify a file containing module
|
||||
// definitions.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fmodule_map_file)) {
|
||||
A->claim();
|
||||
A->render(Args, CmdArgs);
|
||||
}
|
||||
|
||||
// If a module path was provided, pass it along. Otherwise, use a temporary
|
||||
// directory.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fmodules_cache_path)) {
|
||||
|
|
Loading…
Reference in New Issue