-Add a new module type 'cabinet' to handle .cab files generation
[reactos.git] / reactos / tools / rbuild / rbuild.h
index b2a7367..1b6adba 100644 (file)
@@ -134,6 +134,7 @@ public:
        std::string name;
        directory_map subdirs;
        Directory ( const std::string& name );
+       ~Directory();
        void Add ( const char* subdir );
        void GenerateTree ( DirectoryLocation root,
                            bool verbose );
@@ -256,7 +257,7 @@ private:
        const Property* LookupProperty ( const std::string& name ) const;
        void SetConfigurationOption ( char* s,
                                      std::string name,
-                                     std::string* alternativeName );
+                                     std::string alternativeName );
        void SetConfigurationOption ( char* s,
                                      std::string name );
        void ReadXml ();
@@ -300,13 +301,24 @@ enum ModuleType
        EmbeddedTypeLib = 26,
        ElfExecutable = 27,
        RpcProxy,
+       HostStaticLibrary,
+       TypeDontCare,
+       Cabinet
 };
 
 enum HostType
 {
        HostFalse,
        HostDefault,
-       HostTrue
+       HostTrue,
+       HostDontCare,
+};
+
+enum CompilerType
+{
+       CompilerTypeDontCare,
+       CompilerTypeCC,
+       CompilerTypeCPP,
 };
 
 class FileLocation
@@ -560,6 +572,7 @@ public:
        ImportLibrary ( const Project& project,
                        const XMLElement& node,
                        const Module& module );
+       ~ImportLibrary ();
 };
 
 
@@ -590,6 +603,7 @@ public:
        const Module* module;
        const XMLElement& node;
        std::string flag;
+       CompilerType compiler;
 
        CompilerFlag ( const Project& project,
                       const XMLElement& compilerFlagNode );
@@ -628,11 +642,11 @@ class LinkerScript
 public:
        const XMLElement& node;
        const Module& module;
-       FileLocation file;
+       const FileLocation *file;
 
        LinkerScript ( const XMLElement& node,
                       const Module& module,
-                      const FileLocationfile );
+                      const FileLocation *file );
        ~LinkerScript ();
        void ProcessXML();
 };
@@ -806,6 +820,7 @@ public:
        CDFile ( const Project& project,
                 const XMLElement& bootstrapNode,
                 const std::string& path );
+       ~CDFile ();
 private:
        static std::string ReplaceVariable ( const std::string& name,
                                             const std::string& value,
@@ -822,6 +837,7 @@ public:
        InstallFile ( const Project& project,
                      const XMLElement& bootstrapNode,
                      const std::string& path );
+       ~InstallFile ();
 };
 
 
@@ -830,12 +846,13 @@ class PchFile
 public:
        const XMLElement& node;
        const Module& module;
-       FileLocation file;
+       const FileLocation *file;
 
        PchFile (
                const XMLElement& node,
                const Module& module,
-               const FileLocation& file );
+               const FileLocation *file );
+       ~PchFile();
        void ProcessXML();
 };