176d0d1350c82fbb584d77551cca2508081bf6d9
11 #define EXEPOSTFIX ".exe"
41 XMLElement
*node
, *head
;
45 std::vector
<Module
*> modules
;
46 std::vector
<Include
*> includes
;
47 std::vector
<Define
*> defines
;
48 std::vector
<LinkerFlag
*> linkerFlags
;
49 std::vector
<Property
*> properties
;
53 Project ( const std::string
& filename
);
55 void ProcessXML ( const std::string
& path
);
56 Module
* LocateModule ( const std::string
& name
);
57 const Module
* LocateModule ( const std::string
& name
) const;
60 void ProcessXMLSubElement ( const XMLElement
& e
,
61 const std::string
& path
,
64 // disable copy semantics
65 Project ( const Project
& );
66 Project
& operator = ( const Project
& );
86 const Project
& project
;
87 const XMLElement
& node
;
89 std::string extension
;
92 ImportLibrary
* importLibrary
;
93 std::vector
<File
*> files
;
94 std::vector
<Library
*> libraries
;
95 std::vector
<Include
*> includes
;
96 std::vector
<Define
*> defines
;
97 std::vector
<Invoke
*> invocations
;
98 std::vector
<Dependency
*> dependencies
;
100 std::vector
<LinkerFlag
*> linkerFlags
;
102 Module ( const Project
& project
,
103 const XMLElement
& moduleNode
,
104 const std::string
& modulePath
);
106 ModuleType
GetModuleType ( const std::string
& location
,
107 const XMLAttribute
& attribute
);
108 bool HasImportLibrary () const;
109 std::string
GetTargetName () const;
110 std::string
GetDependencyPath () const;
111 std::string
GetBasePath () const;
112 std::string
GetPath () const;
113 std::string
GetPathWithPrefix ( const std::string
& prefix
) const;
114 std::string
GetTargets () const;
115 std::string
GetInvocationTarget ( const int index
) const;
118 std::string
GetDefaultModuleExtension () const;
119 void ProcessXMLSubElement ( const XMLElement
& e
,
120 const std::string
& path
,
128 const Project
& project
;
129 const Module
* module
;
130 const XMLElement
& node
;
131 std::string directory
;
132 std::string basePath
;
134 Include ( const Project
& project
,
135 const XMLElement
& includeNode
);
136 Include ( const Project
& project
,
137 const Module
* module
,
138 const XMLElement
& includeNode
);
149 const Project
& project
;
150 const Module
* module
;
151 const XMLElement
& node
;
155 Define ( const Project
& project
,
156 const XMLElement
& defineNode
);
157 Define ( const Project
& project
,
158 const Module
* module
,
159 const XMLElement
& defineNode
);
173 File ( const std::string
& _name
, bool _first
);
182 const XMLElement
& node
;
183 const Module
& module
;
186 Library ( const XMLElement
& _node
,
187 const Module
& _module
,
188 const std::string
& _name
);
197 const XMLElement
& node
;
198 const Module
& module
;
199 const Module
* invokeModule
;
200 std::vector
<InvokeFile
*> input
;
201 std::vector
<InvokeFile
*> output
;
203 Invoke ( const XMLElement
& _node
,
204 const Module
& _module
);
207 std::string
GetTargets () const;
209 void ProcessXMLSubElement ( const XMLElement
& e
);
210 void ProcessXMLSubElementInput ( const XMLElement
& e
);
211 void ProcessXMLSubElementOutput ( const XMLElement
& e
);
218 const XMLElement
& node
;
220 std::string switches
;
222 InvokeFile ( const XMLElement
& _node
,
223 const std::string
& _name
);
232 const XMLElement
& node
;
233 const Module
& module
;
234 const Module
* dependencyModule
;
236 Dependency ( const XMLElement
& _node
,
237 const Module
& _module
);
246 const XMLElement
& node
;
247 const Module
& module
;
248 std::string basename
;
249 std::string definition
;
251 ImportLibrary ( const XMLElement
& _node
,
252 const Module
& module
);
261 const XMLElement
& node
;
262 const Project
& project
;
263 const Module
* module
;
264 std::string property
, value
;
265 std::vector
<File
*> files
;
266 std::vector
<Include
*> includes
;
267 std::vector
<Define
*> defines
;
268 std::vector
<Property
*> properties
;
269 std::vector
<If
*> ifs
;
271 If ( const XMLElement
& node_
,
272 const Project
& project_
,
273 const Module
* module_
);
283 const Project
& project
;
284 const Module
* module
;
285 const XMLElement
& node
;
288 LinkerFlag ( const Project
& project
,
289 const XMLElement
& linkerFlagNode
);
290 LinkerFlag ( const Project
& project
,
291 const Module
* module
,
292 const XMLElement
& linkerFlagNode
);
303 const XMLElement
& node
;
304 const Project
& project
;
305 const Module
* module
;
306 std::string name
, value
;
308 Property ( const XMLElement
& node_
,
309 const Project
& project_
,
310 const Module
* module_
);
316 FixSeparator ( const std::string
& s
);
319 NormalizeFilename ( const std::string
& filename
);
321 #endif /* __RBUILD_H */