11 #define EXEPOSTFIX ".exe"
40 XMLElement
*node
, *head
;
44 std::vector
<Module
*> modules
;
45 std::vector
<Include
*> includes
;
46 std::vector
<Define
*> defines
;
47 std::vector
<Property
*> properties
;
51 Project ( const std::string
& filename
);
53 void ProcessXML ( const std::string
& path
);
54 Module
* LocateModule ( const std::string
& name
);
55 const Module
* LocateModule ( const std::string
& name
) const;
58 void ProcessXMLSubElement ( const XMLElement
& e
,
59 const std::string
& path
,
62 // disable copy semantics
63 Project ( const Project
& );
64 Project
& operator = ( const Project
& );
82 const Project
& project
;
83 const XMLElement
& node
;
85 std::string extension
;
88 ImportLibrary
* importLibrary
;
89 std::vector
<File
*> files
;
90 std::vector
<Library
*> libraries
;
91 std::vector
<Include
*> includes
;
92 std::vector
<Define
*> defines
;
93 std::vector
<Invoke
*> invocations
;
94 std::vector
<Dependency
*> dependencies
;
97 Module ( const Project
& project
,
98 const XMLElement
& moduleNode
,
99 const std::string
& modulePath
);
101 ModuleType
GetModuleType ( const std::string
& location
,
102 const XMLAttribute
& attribute
);
103 bool HasImportLibrary () const;
104 std::string
GetTargetName () const;
105 std::string
GetDependencyPath () const;
106 std::string
GetBasePath() const;
107 std::string
GetPath () const;
108 std::string
GetPathWithPrefix ( const std::string
& prefix
) const;
109 std::string
GetTargets () const;
110 std::string
GetInvocationTarget ( const int index
) const;
113 std::string
GetDefaultModuleExtension () const;
114 void ProcessXMLSubElement ( const XMLElement
& e
,
115 const std::string
& path
,
123 const Project
& project
;
124 const Module
* module
;
125 const XMLElement
& node
;
126 std::string directory
;
129 Include ( const Project
& project
,
130 const XMLElement
& includeNode
);
131 Include ( const Project
& project
,
132 const Module
* module
,
133 const XMLElement
& includeNode
);
144 const Project
& project
;
145 const Module
* module
;
146 const XMLElement
& node
;
150 Define ( const Project
& project
,
151 const XMLElement
& defineNode
);
152 Define ( const Project
& project
,
153 const Module
* module
,
154 const XMLElement
& defineNode
);
167 File ( const std::string
& _name
);
176 const XMLElement
& node
;
177 const Module
& module
;
180 Library ( const XMLElement
& _node
,
181 const Module
& _module
,
182 const std::string
& _name
);
191 const XMLElement
& node
;
192 const Module
& module
;
193 const Module
* invokeModule
;
194 std::vector
<InvokeFile
*> input
;
195 std::vector
<InvokeFile
*> output
;
197 Invoke ( const XMLElement
& _node
,
198 const Module
& _module
);
201 std::string
GetTargets () const;
203 void ProcessXMLSubElement ( const XMLElement
& e
);
204 void ProcessXMLSubElementInput ( const XMLElement
& e
);
205 void ProcessXMLSubElementOutput ( const XMLElement
& e
);
212 const XMLElement
& node
;
214 std::string switches
;
216 InvokeFile ( const XMLElement
& _node
,
217 const std::string
& _name
);
226 const XMLElement
& node
;
227 const Module
& module
;
228 const Module
* dependencyModule
;
230 Dependency ( const XMLElement
& _node
,
231 const Module
& _module
);
240 const XMLElement
& node
;
241 const Module
& module
;
242 std::string basename
;
243 std::string definition
;
245 ImportLibrary ( const XMLElement
& _node
,
246 const Module
& module
);
254 const XMLElement
& node
;
255 const Project
& project
;
256 const Module
* module
;
257 std::string property
, value
;
258 std::vector
<File
*> files
;
259 std::vector
<Include
*> includes
;
260 std::vector
<Define
*> defines
;
261 std::vector
<Property
*> properties
;
262 std::vector
<If
*> ifs
;
264 If ( const XMLElement
& node_
,
265 const Project
& project_
,
266 const Module
* module_
);
275 const XMLElement
& node
;
276 const Project
& project
;
277 const Module
* module
;
278 std::string name
, value
;
280 Property ( const XMLElement
& node_
,
281 const Project
& project_
,
282 const Module
* module_
);
288 FixSeparator ( const std::string
& s
);
290 #endif /* __RBUILD_H */