Browse Source

Added an option to enable or disable RTTI (#892)

Fixes #819
pull/894/head
Mohit Mohta 8 years ago committed by Dimitar Dobrev
parent
commit
5227e517fc
  1. 1
      src/CppParser/Parser.cpp
  2. 2
      src/Generator/Driver.cs
  3. 15
      src/Parser/ParserOptions.cs

1
src/CppParser/Parser.cpp

@ -269,7 +269,6 @@ void Parser::SetupHeader() @@ -269,7 +269,6 @@ void Parser::SetupHeader()
args.push_back(opts->microsoftMode ? "-std=gnu++14" : "-std=gnu++11");
break;
}
args.push_back("-fno-rtti");
for (unsigned I = 0, E = opts->Arguments.size(); I != E; ++I)
{

2
src/Generator/Driver.cs

@ -65,7 +65,7 @@ namespace CppSharp @@ -65,7 +65,7 @@ namespace CppSharp
public void Setup()
{
ValidateOptions();
ParserOptions.SetupIncludes();
ParserOptions.Setup();
Context = new BindingContext(Options, ParserOptions);
Context.TypeMaps.SetupTypeMaps(Options.GeneratorKind);
Generator = CreateGeneratorFromKind(Options.GeneratorKind);

15
src/Parser/ParserOptions.cs

@ -14,6 +14,7 @@ namespace CppSharp.Parser @@ -14,6 +14,7 @@ namespace CppSharp.Parser
public bool IsItaniumLikeAbi { get { return Abi != CppAbi.Microsoft; } }
public bool IsMicrosoftAbi { get { return Abi == CppAbi.Microsoft; } }
public bool EnableRtti { get; set; }
/// Sets up the parser options to work with the given Visual Studio toolchain.
public void SetupMSVC()
@ -72,12 +73,24 @@ namespace CppSharp.Parser @@ -72,12 +73,24 @@ namespace CppSharp.Parser
AddArguments("-stdlib=libc++");
}
public void SetupIncludes()
public void Setup()
{
SetupArguments();
SetupIncludes();
}
private void SetupIncludes()
{
if (Platform.IsMacOS)
SetupXcode();
else if (Platform.IsWindows && !NoBuiltinIncludes)
SetupMSVC();
}
private void SetupArguments()
{
if (!EnableRtti)
AddArguments("-fno-rtti");
}
}
}

Loading…
Cancel
Save