class MingwModuleHandler\r
{\r
public:\r
+ typedef std::vector<std::string> string_list;\r
+\r
static std::map<ModuleType,MingwModuleHandler*>* handler_map;\r
static int ref;\r
\r
static void SetMakefile ( FILE* f );\r
static MingwModuleHandler* LookupHandler ( const std::string& location,\r
ModuleType moduletype_ );\r
- virtual void Process ( const Module& module ) = 0;\r
+ virtual void Process ( const Module& module, string_list& clean_files ) = 0;\r
bool IncludeDirectoryTarget ( const std::string& directory ) const;\r
void GenerateDirectoryTargets () const;\r
static std::string GetObjectFilename ( const std::string& sourceFilename );\r
+ void GenerateCleanTarget ( const Module& module,\r
+ const string_list& clean_files ) const;\r
protected:\r
const std::string &PassThruCacheDirectory ( const std::string &f ) const;\r
std::string GetWorkingDirectory () const;\r
std::string GetModuleArchiveFilename ( const Module& module ) const;\r
bool IsGeneratedFile ( const File& file ) const;\r
std::string GetImportLibraryDependency ( const Module& importedModule ) const;\r
- std::string GetImportLibraryDependencies ( const Module& module ) const;\r
std::string GetModuleDependencies ( const Module& module ) const;\r
std::string GetAllDependencies ( const Module& module ) const;\r
std::string GetSourceFilenames ( const Module& module,\r
std::string GetSourceFilenamesWithoutGeneratedFiles ( const Module& module ) const;\r
\r
std::string GetObjectFilenames ( const Module& module ) const;\r
- void GenerateMacrosAndTargetsHost ( const Module& module ) const;\r
- void GenerateMacrosAndTargetsTarget ( const Module& module ) const;\r
+ void GenerateMacrosAndTargetsHost ( const Module& module,\r
+ string_list& clean_files ) const;\r
+ void GenerateMacrosAndTargetsTarget ( const Module& module,\r
+ string_list& clean_files ) const;\r
void GenerateMacrosAndTargetsTarget ( const Module& module,\r
const std::string* cflags,\r
- const std::string* nasmflags ) const;\r
+ const std::string* nasmflags,\r
+ string_list& clean_files ) const;\r
std::string GetInvocationDependencies ( const Module& module ) const;\r
void GenerateInvocations ( const Module& module ) const;\r
\r
void GeneratePreconditionDependencies ( const Module& module ) const;\r
std::string GetCFlagsMacro ( const Module& module ) const;\r
std::string GetObjectsMacro ( const Module& module ) const;\r
+ std::string GetLinkingDependenciesMacro ( const Module& module ) const;\r
+ std::string GetLibsMacro ( const Module& module ) const;\r
std::string GetLinkerMacro ( const Module& module ) const;\r
void GenerateLinkerCommand ( const Module& module,\r
const std::string& linker,\r
const std::string& linkerParameters,\r
- const std::string& objectFilenames ) const;\r
- void GenerateImportLibraryTargetIfNeeded ( const Module& module ) const;\r
+ const std::string& objectsMacro,\r
+ const std::string& libsMacro,\r
+ string_list& clean_files ) const;\r
+ void GenerateImportLibraryTargetIfNeeded ( const Module& module, string_list& clean_files ) const;\r
std::string GetDefinitionDependencies ( const Module& module ) const;\r
std::string GetLinkingDependencies ( const Module& module ) const;\r
bool IsCPlusPlusModule ( const Module& module ) const;\r
std::string GenerateGccIncludeParametersFromVector ( const std::vector<Include*>& includes ) const;\r
std::string GenerateCompilerParametersFromVector ( const std::vector<CompilerFlag*>& compilerFlags ) const;\r
std::string GenerateLinkerParametersFromVector ( const std::vector<LinkerFlag*>& linkerFlags ) const;\r
+ std::string GenerateImportLibraryDependenciesFromVector ( const std::vector<Library*>& libraries ) const;\r
std::string GenerateLinkerParameters ( const Module& module ) const;\r
void GenerateMacro ( const char* assignmentOperation,\r
const std::string& macro,\r
const std::vector<File*>& files,\r
const std::vector<Include*>& includes,\r
const std::vector<Define*>& defines,\r
+ const std::vector<Library*>& libraries,\r
const std::vector<CompilerFlag*>* compilerFlags,\r
const std::vector<LinkerFlag*>* linkerFlags,\r
const std::vector<If*>& ifs,\r
const std::string& nasmflags_macro,\r
const std::string& windresflags_macro,\r
const std::string& linkerflags_macro,\r
- const std::string& objs_macro) const;\r
+ const std::string& objs_macro,\r
+ const std::string& libs_macro,\r
+ const std::string& linkdeps_macro ) const;\r
void GenerateMacros ( const Module& module,\r
const std::string& cflags_macro,\r
const std::string& nasmflags_macro,\r
const std::string& windresflags_macro,\r
const std::string& linkerflags_macro,\r
- const std::string& objs_macro) const;\r
+ const std::string& objs_macro,\r
+ const std::string& libs_macro,\r
+ const std::string& linkDepsMacro ) const;\r
std::string GenerateGccIncludeParameters ( const Module& module ) const;\r
std::string GenerateGccParameters ( const Module& module ) const;\r
std::string GenerateNasmParameters ( const Module& module ) const;\r
const std::string& sourceFilename,\r
const std::string& windresflagsMacro ) const;\r
void GenerateWinebuildCommands ( const Module& module,\r
- const std::string& sourceFilename ) const;\r
+ const std::string& sourceFilename,\r
+ string_list& clean_files ) const;\r
void GenerateCommands ( const Module& module,\r
const std::string& sourceFilename,\r
const std::string& cc,\r
const std::string& cppc,\r
const std::string& cflagsMacro,\r
const std::string& nasmflagsMacro,\r
- const std::string& windresflagsMacro ) const;\r
+ const std::string& windresflagsMacro,\r
+ string_list& clean_files ) const;\r
void GenerateObjectFileTargets ( const Module& module,\r
const std::vector<File*>& files,\r
const std::vector<If*>& ifs,\r
const std::string& cppc,\r
const std::string& cflagsMacro,\r
const std::string& nasmflagsMacro,\r
- const std::string& windresflagsMacro ) const;\r
+ const std::string& windresflagsMacro,\r
+ string_list& clean_files ) const;\r
void GenerateObjectFileTargets ( const Module& module,\r
const std::string& cc,\r
const std::string& cppc,\r
const std::string& cflagsMacro,\r
const std::string& nasmflagsMacro,\r
- const std::string& windresflagsMacro ) const;\r
- void GetCleanTargets ( std::vector<std::string>& out,\r
+ const std::string& windresflagsMacro,\r
+ string_list& clean_files ) const;\r
+ void GetCleanTargets ( string_list& out,\r
const std::vector<File*>& files,\r
const std::vector<If*>& ifs ) const;\r
std::string GenerateArchiveTarget ( const Module& module,\r
const std::string& cppc,\r
const std::string& ar,\r
const std::string* clags,\r
- const std::string* nasmflags ) const;\r
+ const std::string* nasmflags,\r
+ string_list& clean_files ) const;\r
std::string GetSpecObjectDependencies ( const std::string& filename ) const;\r
std::string GetDefaultDependencies ( const Module& module ) const;\r
};\r
{\r
public:\r
MingwBuildToolModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateBuildToolModuleTarget ( const Module& module );\r
+ void GenerateBuildToolModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwKernelModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateKernelModuleTarget ( const Module& module );\r
+ void GenerateKernelModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwStaticLibraryModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateStaticLibraryModuleTarget ( const Module& module );\r
+ void GenerateStaticLibraryModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwObjectLibraryModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateObjectLibraryModuleTarget ( const Module& module );\r
+ void GenerateObjectLibraryModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwKernelModeDLLModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateKernelModeDLLModuleTarget ( const Module& module );\r
+ void GenerateKernelModeDLLModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwKernelModeDriverModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateKernelModeDriverModuleTarget ( const Module& module );\r
+ void GenerateKernelModeDriverModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwNativeDLLModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateNativeDLLModuleTarget ( const Module& module );\r
+ void GenerateNativeDLLModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwNativeCUIModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateNativeCUIModuleTarget ( const Module& module );\r
+ void GenerateNativeCUIModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwWin32DLLModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateExtractWineDLLResourcesTarget ( const Module& module );\r
- void GenerateWin32DLLModuleTarget ( const Module& module );\r
+ void GenerateExtractWineDLLResourcesTarget ( const Module& module, string_list& clean_files );\r
+ void GenerateWin32DLLModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwWin32CUIModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateWin32CUIModuleTarget ( const Module& module );\r
+ void GenerateWin32CUIModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwWin32GUIModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateWin32GUIModuleTarget ( const Module& module );\r
+ void GenerateWin32GUIModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwBootLoaderModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateBootLoaderModuleTarget ( const Module& module );\r
+ void GenerateBootLoaderModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwBootSectorModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateBootSectorModuleTarget ( const Module& module );\r
+ void GenerateBootSectorModuleTarget ( const Module& module, string_list& clean_files );\r
};\r
\r
\r
{\r
public:\r
MingwIsoModuleHandler ();\r
- virtual void Process ( const Module& module );\r
+ virtual void Process ( const Module& module, string_list& clean_files );\r
private:\r
- void GenerateIsoModuleTarget ( const Module& module );\r
+ void GenerateIsoModuleTarget ( const Module& module, string_list& clean_files );\r
std::string GetBootstrapCdDirectories ( const std::string bootcdDirectory,\r
const Module& module ) const;\r
std::string GetNonModuleCdDirectories ( const std::string bootcdDirectory,\r