Add support for -fXX feature flags
This commit is contained in:
parent
9411a232a4
commit
c6aae718bd
3 changed files with 23 additions and 0 deletions
|
|
@ -74,6 +74,13 @@ public:
|
||||||
do_set_flags(standard, flags);
|
do_set_flags(standard, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// \effects Enables an `-fXXX` flag.
|
||||||
|
/// \returns Whether or not it was a known feature and enabled.
|
||||||
|
bool enable_feature(std::string name)
|
||||||
|
{
|
||||||
|
return do_enable_feature(name);
|
||||||
|
}
|
||||||
|
|
||||||
/// \effects Adds the given path to the set of include directories.
|
/// \effects Adds the given path to the set of include directories.
|
||||||
void add_include_dir(std::string path)
|
void add_include_dir(std::string path)
|
||||||
{
|
{
|
||||||
|
|
@ -121,6 +128,14 @@ private:
|
||||||
/// \effects Sets the given C++ standard and compilation flags.
|
/// \effects Sets the given C++ standard and compilation flags.
|
||||||
virtual void do_set_flags(cpp_standard standard, compile_flags flags) = 0;
|
virtual void do_set_flags(cpp_standard standard, compile_flags flags) = 0;
|
||||||
|
|
||||||
|
/// \effects Sets the given feature flags.
|
||||||
|
/// \returns Whether or not it was a known feature and set.
|
||||||
|
virtual bool do_enable_feature(std::string name)
|
||||||
|
{
|
||||||
|
(void)name;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// \effects Adds the given path to the set of include directories.
|
/// \effects Adds the given path to the set of include directories.
|
||||||
virtual void do_add_include_dir(std::string path) = 0;
|
virtual void do_add_include_dir(std::string path) = 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,8 @@ public:
|
||||||
private:
|
private:
|
||||||
void do_set_flags(cpp_standard standard, compile_flags flags) override;
|
void do_set_flags(cpp_standard standard, compile_flags flags) override;
|
||||||
|
|
||||||
|
bool do_enable_feature(std::string name) override;
|
||||||
|
|
||||||
void do_add_include_dir(std::string path) override;
|
void do_add_include_dir(std::string path) override;
|
||||||
|
|
||||||
void do_add_macro_definition(std::string name, std::string definition) override;
|
void do_add_macro_definition(std::string name, std::string definition) override;
|
||||||
|
|
|
||||||
|
|
@ -386,6 +386,12 @@ void libclang_compile_config::do_set_flags(cpp_standard standard, compile_flags
|
||||||
add_flag("-fms-extensions");
|
add_flag("-fms-extensions");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool libclang_compile_config::do_enable_feature(std::string name)
|
||||||
|
{
|
||||||
|
add_flag("-f" + std::move(name));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void libclang_compile_config::do_add_include_dir(std::string path)
|
void libclang_compile_config::do_add_include_dir(std::string path)
|
||||||
{
|
{
|
||||||
add_flag("-I" + std::move(path));
|
add_flag("-I" + std::move(path));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue