use ROS_TEMPORARY and ROS_INTERMEDIATE to allow builder to override locations for...
[reactos.git] / reactos / tools / rbuild / backend / mingw / mingw.h
1 #ifndef MINGW_H
2 #define MINGW_H
3
4 #include "../backend.h"
5 #include "modulehandler.h"
6
7 class MingwModuleHandlerList : public std::vector<MingwModuleHandler*>
8 {
9 public:
10 MingwModuleHandlerList()
11 {
12 }
13 ~MingwModuleHandlerList()
14 {
15 for ( size_t i = 0; i < size(); i++ )
16 {
17 delete (*this)[i];
18 }
19 }
20 private:
21 // disable copy semantics
22 MingwModuleHandlerList ( const MingwModuleHandlerList& );
23 MingwModuleHandlerList& operator = ( const MingwModuleHandlerList& );
24 };
25
26
27 class MingwBackend : public Backend
28 {
29 public:
30 MingwBackend ( Project& project );
31 virtual void Process ();
32 private:
33 void ProcessModule ( Module& module );
34 void GetModuleHandlers ( MingwModuleHandlerList& moduleHandlers ) const;
35 void CreateMakefile ();
36 void CloseMakefile ();
37 void GenerateHeader ();
38 void GenerateGlobalVariables ();
39 void GenerateAllTarget ();
40 FILE* fMakefile;
41 };
42
43 std::string FixupTargetFilename ( const std::string& targetFilename );
44
45 #endif /* MINGW_H */