enum CompilerType
{
+ CompilerTypeDontCare,
CompilerTypeCC,
- CompilerTypeCXX,
CompilerTypeCPP,
- CompilerTypeAS,
- CompilerTypeMIDL,
- CompilerTypeRC,
- CompilerTypeNASM,
-
- CompilerTypesCount
};
class FileLocation
bool default_value = false );
};
-class CompilerDirective
-{
-private:
- std::bitset<CompilerTypesCount> compilersSet;
-
-public:
- void SetCompiler ( CompilerType compiler );
- void UnsetCompiler ( CompilerType compiler );
- void SetAllCompilers ();
- void UnsetAllCompilers ();
- void ParseCompilers ( const XMLElement& node, const std::string& defaultValue );
-
- bool IsCompilerSet ( CompilerType compiler ) const;
-};
-
-class Include: public CompilerDirective
+class Include
{
public:
FileLocation *directory;
const XMLElement* node;
const Module* module;
DirectoryLocation GetDefaultDirectoryTree ( const Module* module ) const;
- void Initialize ();
};
-class Define: public CompilerDirective
+class Define
{
public:
const Project& project;
const Module* module;
const XMLElement* node;
std::string name;
- std::string arguments;
std::string value;
std::string backend;
- bool redefine;
+ bool overridable;
Define ( const Project& project,
const XMLElement& defineNode );
Define ( const Project& project,
const Module* module,
const std::string& name_,
- const std::string& backend_ = "",
- bool redefine_ = false );
+ const std::string& backend_ = "" );
~Define();
void ProcessXML();
private:
};
-class CompilerFlag: public CompilerDirective
+class CompilerFlag
{
public:
const Project& project;
const Module* module;
const XMLElement& node;
std::string flag;
+ CompilerType compiler;
CompilerFlag ( const Project& project,
const XMLElement& compilerFlagNode );