-Add a new module type 'cabinet' to handle .cab files generation
[reactos.git] / reactos / tools / rbuild / backend / mingw / modulehandler.h
index b806738..987343b 100644 (file)
@@ -22,6 +22,7 @@
 #include "mingw.h"
 
 class MingwBackend;
+class Rule;
 
 extern std::string
 GetTargetMacro ( const Module&, bool with_dollar = true );
@@ -97,8 +98,7 @@ protected:
                                  bool includeGeneratedFiles ) const;
        void GetSourceFilenamesWithoutGeneratedFiles ( std::vector<FileLocation>& list ) const;
        const FileLocation* GetObjectFilename ( const FileLocation* sourceFile,
-                                               const Module& module,
-                                               string_list* pclean_files ) const;
+                                               const Module& module ) const;
 
        std::string GetObjectFilenames ();
 
@@ -112,10 +112,7 @@ protected:
        void GenerateRunRsymCode () const;
        void GenerateRunStripCode () const;
        void GenerateLinkerCommand ( const std::string& dependencies,
-                                    const std::string& linker,
                                     const std::string& linkerParameters,
-                                    const std::string& objectsMacro,
-                                    const std::string& libsMacro,
                                     const std::string& pefixupParameters );
        void GeneratePhonyTarget() const;
        void GenerateBuildMapCode ( const FileLocation *mapTarget = NULL );
@@ -152,6 +149,7 @@ private:
        std::string GenerateNasmParameters () const;
        const FileLocation* GetPrecompiledHeaderFilename () const;
        void GenerateGccCommand ( const FileLocation* sourceFile,
+                                 const Rule *rule,
                                  const std::string& extraDependencies );
        void GenerateCommands ( const CompilationUnit& compilationUnit,
                                const std::string& extraDependencies );
@@ -228,6 +226,17 @@ private:
 };
 
 
+class MingwHostStaticLibraryModuleHandler : public MingwModuleHandler
+{
+public:
+       MingwHostStaticLibraryModuleHandler ( const Module& module );
+       virtual HostType DefaultHost() { return HostTrue; }
+       virtual void Process ();
+private:
+       void GenerateHostStaticLibraryModuleTarget ();
+};
+
+
 class MingwObjectLibraryModuleHandler : public MingwModuleHandler
 {
 public:
@@ -477,6 +486,14 @@ public:
        virtual void Process ();
 };
 
+class MingwCabinetModuleHandler : public MingwModuleHandler
+{
+public:
+       MingwCabinetModuleHandler ( const Module& module );
+       virtual HostType DefaultHost() { return HostFalse; }
+       virtual void Process ();
+};
+
 class MingwEmbeddedTypeLibModuleHandler : public MingwModuleHandler
 {
 public: