Browse Source

DriverOptions now inherits from ParserOptions instead of providing a member.

pull/86/head
triton 12 years ago
parent
commit
c619d67eb6
  1. 18
      src/Generator/Driver.cs
  2. 37
      src/Generator/Options.cs
  3. 2
      src/Generator/Passes/CleanUnitPass.cs
  4. 2
      src/Generator/Passes/GenerateAbstractImplementationsPass.cs
  5. 2
      src/Generator/Passes/GenerateInlinesCodePass.cs
  6. 2
      src/Generator/Utils/TestsUtils.cs

18
src/Generator/Driver.cs

@ -127,13 +127,13 @@ namespace CppSharp @@ -127,13 +127,13 @@ namespace CppSharp
Defines = Options.Defines,
LibraryDirs = Options.LibraryDirs,
#endif
Abi = Options.Parser.Abi,
ToolSetToUse = Options.Parser.ToolSetToUse,
TargetTriple = Options.Parser.TargetTriple,
NoStandardIncludes = Options.Parser.NoStandardIncludes,
NoBuiltinIncludes = Options.Parser.NoBuiltinIncludes,
MicrosoftMode = Options.Parser.MicrosoftMode,
Verbose = Options.Parser.Verbose,
Abi = Options.Abi,
ToolSetToUse = Options.ToolSetToUse,
TargetTriple = Options.TargetTriple,
NoStandardIncludes = Options.NoStandardIncludes,
NoBuiltinIncludes = Options.NoBuiltinIncludes,
MicrosoftMode = Options.MicrosoftMode,
Verbose = Options.Verbose,
};
return options;
@ -151,7 +151,7 @@ namespace CppSharp @@ -151,7 +151,7 @@ namespace CppSharp
parser.SourceParsed += OnSourceFileParsed;
parser.LibraryParsed += OnFileParsed;
parser.ParseProject(Project, Options.Parser);
parser.ParseProject(Project, Options);
#if !OLD_PARSER
ASTContext = ClangParser.ConvertASTContext(parser.ASTContext);
@ -167,7 +167,7 @@ namespace CppSharp @@ -167,7 +167,7 @@ namespace CppSharp
foreach (var library in Options.Libraries)
{
var parser = new ClangParser();
var res = parser.ParseLibrary(library, Options.Parser);
var res = parser.ParseLibrary(library, Options);
if (res.Kind != ParserResultKind.Success)
continue;

37
src/Generator/Options.cs

@ -12,27 +12,25 @@ using CppAbi = CppSharp.Parser.AST.CppAbi; @@ -12,27 +12,25 @@ using CppAbi = CppSharp.Parser.AST.CppAbi;
namespace CppSharp
{
public class DriverOptions
public class DriverOptions : ParserOptions
{
static public bool IsUnixPlatform
{
get
{
var platform = Environment.OSVersion.Platform;
return platform == PlatformID.Unix || platform == PlatformID.MacOSX;
}
}
public DriverOptions()
{
Defines = new List<string>();
IncludeDirs = new List<string>();
SystemIncludeDirs = new List<string>();
Headers = new List<string>();
Libraries = new List<string>();
var platform = Environment.OSVersion.Platform;
var isUnix = platform == PlatformID.Unix || platform == PlatformID.MacOSX;
Parser = new ParserOptions
{
Abi = isUnix ? CppAbi.Itanium : CppAbi.Microsoft,
MicrosoftMode = !isUnix
};
Abi = IsUnixPlatform ? CppAbi.Itanium : CppAbi.Microsoft;
MicrosoftMode = !IsUnixPlatform;
OutputDir = Directory.GetCurrentDirectory();
LibraryDirs = new List<string>();
Libraries = new List<string>();
CheckSymbols = true;
@ -47,26 +45,19 @@ namespace CppSharp @@ -47,26 +45,19 @@ namespace CppSharp
}
// General options
public bool Verbose;
public bool Quiet;
public bool ShowHelpText;
public bool OutputDebug;
// Parser options
public List<string> Defines;
public List<string> IncludeDirs;
public List<string> SystemIncludeDirs;
public List<string> Headers;
public ParserOptions Parser;
public bool IgnoreParseWarnings;
public bool IgnoreParseErrors;
public bool IsItaniumAbi { get { return Parser.Abi == CppAbi.Itanium; } }
public bool IsMicrosoftAbi { get { return Parser.Abi == CppAbi.Microsoft; } }
public bool IsItaniumAbi { get { return Abi == CppAbi.Itanium; } }
public bool IsMicrosoftAbi { get { return Abi == CppAbi.Microsoft; } }
// Library options
public List<string> LibraryDirs;
public List<string> Libraries;
public bool CheckSymbols;

2
src/Generator/Passes/CleanUnitPass.cs

@ -25,7 +25,7 @@ namespace CppSharp.Passes @@ -25,7 +25,7 @@ namespace CppSharp.Passes
var includePath = filePath;
var shortestIncludePath = filePath;
foreach (var path in DriverOptions.Parser.IncludeDirs)
foreach (var path in DriverOptions.IncludeDirs)
{
int idx = filePath.IndexOf(path, System.StringComparison.Ordinal);
if (idx == -1) continue;

2
src/Generator/Passes/GenerateAbstractImplementationsPass.cs

@ -129,7 +129,7 @@ namespace CppSharp.Passes @@ -129,7 +129,7 @@ namespace CppSharp.Passes
private void FillVTable(Class @class, IList<Method> abstractMethods, Class internalImplementation)
{
switch (Driver.Options.Parser.Abi)
switch (Driver.Options.Abi)
{
case CppAbi.Microsoft:
CreateVTableMS(@class, abstractMethods, internalImplementation);

2
src/Generator/Passes/GenerateInlinesCodePass.cs

@ -37,7 +37,7 @@ namespace CppSharp.Passes @@ -37,7 +37,7 @@ namespace CppSharp.Passes
private void WriteInlinedSymbols()
{
switch (Driver.Options.Parser.Abi)
switch (Driver.Options.Abi)
{
case CppAbi.Microsoft:
var defBuilder = new StringBuilder("EXPORTS\r\n");

2
src/Generator/Utils/TestsUtils.cs

@ -73,7 +73,7 @@ namespace CppSharp.Utils @@ -73,7 +73,7 @@ namespace CppSharp.Utils
var path = Path.GetFullPath(GetTestsDirectory(name));
options.Parser.IncludeDirs.Add(path);
options.IncludeDirs.Add(path);
Console.WriteLine("Looking for tests in: {0}", path);
var files = Directory.EnumerateFiles(path, "*.h");

Loading…
Cancel
Save