[rbuild] Remove distinction between Iso/IsoRegTest, and LiveIso/LiveIsoRegTest module...
[reactos.git] / reactos / tools / rbuild / backend / mingw / modulehandler.h
index d6a529d..6b8e9b5 100644 (file)
@@ -57,10 +57,17 @@ public:
 
        static const FileLocation* GetImportLibraryFilename (
                const Module& module,
-               string_list* pclean_files );
+               string_list* pclean_files,
+               bool delayimp );
 
        static std::string GenerateGccDefineParametersFromVector ( const std::vector<Define*>& defines, std::set<std::string> &used_defs );
-       static std::string GenerateGccIncludeParametersFromVector ( const std::vector<Include*>& includes );
+       static std::string GenerateDefineParametersFromVector ( const std::vector<Define*>& defines, CompilerType compiler );
+       static std::string GenerateCompilerParametersFromVector ( const std::vector<CompilerFlag*>& compilerFlags, const CompilerType type );
+       static std::string GenerateIncludeParametersFromVector ( const std::vector<Include*>& includes, CompilerType compiler );
+
+       static void GenerateParameters ( const char* prefix,
+                                                                        const char* assignmentOperation,
+                                                                        const IfableData& data );
 
        std::string GetModuleTargets ( const Module& module );
        void GetObjectsVector ( const IfableData& data,
@@ -83,13 +90,15 @@ public:
 
        void OutputCopyCommand ( const FileLocation& source,
                                 const FileLocation& destination );
+       void OutputCopyCommandSingle ( const FileLocation& source,
+                                      const FileLocation& destination );
 protected:
        virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits );
        std::string GetWorkingDirectory () const;
        std::string GetBasename ( const std::string& filename ) const;
        std::string GetCompilationUnitDependencies ( const CompilationUnit& compilationUnit ) const;
        const FileLocation* GetModuleArchiveFilename () const;
-       std::string GetImportLibraryDependency ( const Module& importedModule );
+       std::string GetImportLibraryDependency ( const Module& importedModule, bool delayimp );
        void GetTargets ( const Module& dependencyModule,
                          string_list& targets );
        void GetModuleDependencies ( string_list& dependencies );
@@ -102,7 +111,7 @@ protected:
        std::string GetLinkingDependenciesMacro () const;
        std::string GetLibsMacro () const;
        std::string GetLinkerMacro () const;
-       std::string GetDebugFormat () const;
+       static std::string GetDebugFormat ();
        void GenerateCleanObjectsAsYouGoCode () const;
        void GenerateRunRsymCode () const;
        void GenerateRunStripCode () const;
@@ -112,6 +121,7 @@ protected:
        void GeneratePhonyTarget() const;
        void GenerateBuildMapCode ( const FileLocation *mapTarget = NULL );
        void GenerateRules ();
+       void GenerateImportLibraryTarget (const FileLocation *defFilename, const FileLocation *library_target, bool delayimp);
        void GenerateImportLibraryTargetIfNeeded ();
        void GetDefinitionDependencies ( std::vector<FileLocation>& dependencies ) const;
        std::string GetLinkingDependencies () const;
@@ -121,15 +131,9 @@ protected:
 private:
        std::string ConcatenatePaths ( const std::string& path1,
                                       const std::string& path2 ) const;
-       std::string GenerateCompilerParametersFromVector ( const std::vector<CompilerFlag*>& compilerFlags, const CompilerType type ) const;
        std::string GenerateLinkerParametersFromVector ( const std::vector<LinkerFlag*>& linkerFlags ) const;
        std::string GenerateImportLibraryDependenciesFromVector ( const std::vector<Library*>& libraries );
        std::string GenerateLinkerParameters () const;
-       void GenerateMacro ( const char* assignmentOperation,
-                            const std::string& macro,
-                            const IfableData& data,
-                            std::set<const Define *>* used_defs,
-                            bool generatingCompilerMacro );
        void GenerateMacros ( const char* op,
                              const IfableData& data,
                              const std::vector<LinkerFlag*>* linkerFlags,
@@ -137,6 +141,7 @@ private:
        void GenerateSourceMacros ( const IfableData& data );
        void GenerateObjectMacros ( const IfableData& data );
        const FileLocation* GetPrecompiledHeaderFilename () const;
+       const FileLocation* GetPrecompiledHeaderPath () const;
        const FileLocation* GetDlldataFilename () const;
        void GenerateGccCommand ( const FileLocation* sourceFile,
                                  const Rule *rule,
@@ -318,8 +323,10 @@ private:
        void GetBootstrapCdFiles ( std::vector<FileLocation>& out ) const;
        void GetNonModuleCdFiles ( std::vector<FileLocation>& out ) const;
        void GetCdFiles ( std::vector<FileLocation>& out ) const;
-       void OutputBootstrapfileCopyCommands ( const std::string& bootcdDirectory );
-       void OutputCdfileCopyCommands ( const std::string& bootcdDirectory );
+       void OutputBootstrapfileCopyCommands ( const std::string& bootcdDirectory,
+                                              std::vector<FileLocation>& destinations );
+       void OutputCdfileCopyCommands ( const std::string& bootcdDirectory,
+                                       std::vector<FileLocation>& destinations );
 };
 
 
@@ -332,11 +339,15 @@ private:
        void GenerateLiveIsoModuleTarget ();
        void CreateDirectory ( const std::string& directory );
        void OutputModuleCopyCommands ( std::string& livecdDirectory,
-                                       std::string& livecdReactos );
+                                       std::string& livecdReactos,
+                                       std::vector<FileLocation>& destinations );
        void OutputNonModuleCopyCommands ( std::string& livecdDirectory,
-                                          std::string& livecdReactos );
-       void OutputProfilesDirectoryCommands ( std::string& livecdDirectory );
-       void OutputLoaderCommands ( std::string& livecdDirectory );
+                                          std::string& livecdReactos,
+                                          std::vector<FileLocation>& destinations );
+       void OutputProfilesDirectoryCommands ( std::string& livecdDirectory,
+                                              std::vector<FileLocation>& destinations );
+       void OutputLoaderCommands ( std::string& livecdDirectory,
+                                   std::vector<FileLocation>& destinations );
        void OutputRegistryCommands ( std::string& livecdDirectory );
 };