[ros-diffs] [royce] 19827: store pointer to Backend in the Project class so properties of the Backend object can eventually be queried from the generic rbuild code

royce at svn.reactos.com royce at svn.reactos.com
Fri Dec 2 14:59:40 CET 2005


store pointer to Backend in the Project class so properties of the
Backend object can eventually be queried from the generic rbuild code
Modified: trunk/reactos/tools/rbuild/project.cpp
Modified: trunk/reactos/tools/rbuild/rbuild.cpp
Modified: trunk/reactos/tools/rbuild/rbuild.h
  _____  

Modified: trunk/reactos/tools/rbuild/project.cpp
--- trunk/reactos/tools/rbuild/project.cpp	2005-12-02 12:47:42 UTC
(rev 19826)
+++ trunk/reactos/tools/rbuild/project.cpp	2005-12-02 13:59:35 UTC
(rev 19827)
@@ -19,6 +19,7 @@

 #include <assert.h>
 
 #include "rbuild.h"
+#include "backend/backend.h"
 
 using std::string;
 using std::vector;
@@ -87,13 +88,15 @@
 	  node (NULL),
 	  head (NULL),
 	  configuration (configuration)
-{  
+{
 	ReadXml();
 }
 
 Project::~Project ()
 {
 	size_t i;
+	if ( _backend )
+		delete _backend;
 	for ( i = 0; i < modules.size (); i++ )
 		delete modules[i];
 	for ( i = 0; i < linkerFlags.size (); i++ )
  _____  

Modified: trunk/reactos/tools/rbuild/rbuild.cpp
--- trunk/reactos/tools/rbuild/rbuild.cpp	2005-12-02 12:47:42 UTC
(rev 19826)
+++ trunk/reactos/tools/rbuild/rbuild.cpp	2005-12-02 13:59:35 UTC
(rev 19827)
@@ -243,18 +243,20 @@

 	try
 	{
 		string projectFilename ( RootXmlFile );
+
 		printf ( "Reading build files..." );
 		Project project ( configuration, projectFilename );
 		printf ( "done\n" );
-		project.WriteConfigurationFile ();
-		project.ExecuteInvocations ();
-		Backend* backend = Backend::Factory::Create (
+
+		project.SetBackend ( Backend::Factory::Create (
 			BuildSystem,
 			project,
-			configuration );
-		backend->Process ();
-		delete backend;
+			configuration ) );
 
+		project.WriteConfigurationFile ();
+		project.ExecuteInvocations ();
+		project.GetBackend().Process();
+
 		return 0;
 	}
 	catch ( Exception& ex )
  _____  

Modified: trunk/reactos/tools/rbuild/rbuild.h
--- trunk/reactos/tools/rbuild/rbuild.h	2005-12-02 12:47:42 UTC (rev
19826)
+++ trunk/reactos/tools/rbuild/rbuild.h	2005-12-02 13:59:35 UTC (rev
19827)
@@ -35,11 +35,14 @@

 #endif/*WIN32*/
 #endif/*_MSC_VER*/
 
+#include <infhost.h>
+
 #include "ssprintf.h"
 #include "exception.h"
 #include "xml.h"
-#include <infhost.h>
 
+class Backend; // forward declaration
+
 typedef std::vector<std::string> string_list;
 
 extern std::string ExePrefix;
@@ -191,6 +194,7 @@
 {
 	std::string xmlfile;
 	XMLElement *node, *head;
+	Backend* _backend;
 public:
 	const Configuration& configuration;
 	std::string name;
@@ -205,8 +209,11 @@
 	Project ( const Configuration& configuration,
 	          const std::string& filename );
 	~Project ();
+	void SetBackend ( Backend* backend ) { _backend = backend; }
+	Backend& GetBackend() { return *_backend; }
 	void WriteConfigurationFile ();
 	void ExecuteInvocations ();
+
 	void ProcessXML ( const std::string& path );
 	Module* LocateModule ( const std::string& name );
 	const Module* LocateModule ( const std::string& name ) const;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051202/04914bf6/attachment.html


More information about the Ros-diffs mailing list