add support for <if> and <property>
[reactos.git] / reactos / tools / rbuild / rbuild.h
index f10993b..02ae038 100644 (file)
@@ -32,6 +32,7 @@ class InvokeFile;
 class Dependency;\r
 class ImportLibrary;\r
 class If;\r
+class Property;\r
 \r
 class Project\r
 {\r
@@ -43,6 +44,8 @@ public:
        std::vector<Module*> modules;\r
        std::vector<Include*> includes;\r
        std::vector<Define*> defines;\r
+       std::vector<Property*> properties;\r
+       std::vector<If*> ifs;\r
 \r
        //Project ();\r
        Project ( const std::string& filename );\r
@@ -53,7 +56,8 @@ public:
 private:\r
        void ReadXml ();\r
        void ProcessXMLSubElement ( const XMLElement& e,\r
-                                   const std::string& path );\r
+                                   const std::string& path,\r
+                                   If* pIf = NULL );\r
 \r
        // disable copy semantics\r
        Project ( const Project& );\r
@@ -248,19 +252,37 @@ class If
 {\r
 public:\r
        const XMLElement& node;\r
-       const Module& module;\r
+       const Project& project;\r
+       const Module* module;\r
        std::string property, value;\r
        std::vector<File*> files;\r
        std::vector<Define*> defines;\r
+       std::vector<Property*> properties;\r
        std::vector<If*> ifs;\r
 \r
        If ( const XMLElement& node_,\r
-            const Module& module_ );\r
+            const Project& project_,\r
+            const Module* module_ );\r
        ~If();\r
 \r
        void ProcessXML();\r
 };\r
 \r
+class Property\r
+{\r
+public:\r
+       const XMLElement& node;\r
+       const Project& project;\r
+       const Module* module;\r
+       std::string name, value;\r
+\r
+       Property ( const XMLElement& node_,\r
+                  const Project& project_,\r
+                  const Module* module_ );\r
+\r
+       void ProcessXML();\r
+};\r
+\r
 extern std::string\r
 FixSeparator ( const std::string& s );\r
 \r