11 #define EXEPOSTFIX ".exe"
38 XMLElement
*node
, *head
;
42 std::vector
<Module
*> modules
;
43 std::vector
<Include
*> includes
;
44 std::vector
<Define
*> defines
;
47 Project ( const std::string
& filename
);
49 void ProcessXML ( const std::string
& path
);
50 Module
* LocateModule ( const std::string
& name
);
51 const Module
* LocateModule ( const std::string
& name
) const;
54 void ProcessXMLSubElement ( const XMLElement
& e
,
55 const std::string
& path
);
57 // disable copy semantics
58 Project ( const Project
& );
59 Project
& operator = ( const Project
& );
76 const Project
& project
;
77 const XMLElement
& node
;
79 std::string extension
;
82 ImportLibrary
* importLibrary
;
83 std::vector
<File
*> files
;
84 std::vector
<Library
*> libraries
;
85 std::vector
<Include
*> includes
;
86 std::vector
<Define
*> defines
;
87 std::vector
<Invoke
*> invocations
;
88 std::vector
<Dependency
*> dependencies
;
90 Module ( const Project
& project
,
91 const XMLElement
& moduleNode
,
92 const std::string
& modulePath
);
94 ModuleType
GetModuleType ( const std::string
& location
,
95 const XMLAttribute
& attribute
);
96 std::string
GetTargetName () const;
97 std::string
GetDependencyPath () const;
98 std::string
GetBasePath() const;
99 std::string
GetPath () const;
100 std::string
GetPathWithPrefix ( const std::string
& prefix
) const;
101 std::string
GetTargets () const;
102 std::string
GetInvocationTarget ( const int index
) const;
105 std::string
GetDefaultModuleExtension () const;
106 void ProcessXMLSubElement ( const XMLElement
& e
,
107 const std::string
& path
);
114 const Project
& project
;
115 const Module
* module
;
116 const XMLElement
& node
;
117 std::string directory
;
120 Include ( const Project
& project
,
121 const XMLElement
& includeNode
);
122 Include ( const Project
& project
,
123 const Module
* module
,
124 const XMLElement
& includeNode
);
135 const Project
& project
;
136 const Module
* module
;
137 const XMLElement
& node
;
141 Define ( const Project
& project
,
142 const XMLElement
& defineNode
);
143 Define ( const Project
& project
,
144 const Module
* module
,
145 const XMLElement
& defineNode
);
158 File ( const std::string
& _name
);
167 const XMLElement
& node
;
168 const Module
& module
;
171 Library ( const XMLElement
& _node
,
172 const Module
& _module
,
173 const std::string
& _name
);
182 const XMLElement
& node
;
183 const Module
& module
;
184 const Module
* invokeModule
;
185 std::vector
<InvokeFile
*> input
;
186 std::vector
<InvokeFile
*> output
;
188 Invoke ( const XMLElement
& _node
,
189 const Module
& _module
);
192 std::string
GetTargets () const;
194 void ProcessXMLSubElement ( const XMLElement
& e
);
195 void ProcessXMLSubElementInput ( const XMLElement
& e
);
196 void ProcessXMLSubElementOutput ( const XMLElement
& e
);
203 const XMLElement
& node
;
205 std::string switches
;
207 InvokeFile ( const XMLElement
& _node
,
208 const std::string
& _name
);
217 const XMLElement
& node
;
218 const Module
& module
;
219 const Module
* dependencyModule
;
221 Dependency ( const XMLElement
& _node
,
222 const Module
& _module
);
231 const XMLElement
& node
;
232 const Module
& module
;
233 std::string basename
;
234 std::string definition
;
236 ImportLibrary ( const XMLElement
& _node
,
237 const Module
& module
);
243 FixSeparator ( const std::string
& s
);
245 #endif /* __RBUILD_H */