Browse Source

Minor changes to the auto-compilation of C# code.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/593/head
Dimitar Dobrev 10 years ago
parent
commit
985171596a
  1. 23
      src/Generator/Driver.cs

23
src/Generator/Driver.cs

@ -318,7 +318,7 @@ namespace CppSharp
return Generator.Generate(); return Generator.Generate();
} }
public void WriteCode(List<GeneratorOutput> outputs) public void SaveCode(List<GeneratorOutput> outputs)
{ {
var outputPath = Path.GetFullPath(Options.OutputDir); var outputPath = Path.GetFullPath(Options.OutputDir);
@ -363,9 +363,6 @@ namespace CppSharp
public void CompileCode() public void CompileCode()
{ {
if (!Options.CompileCode)
return;
var assemblyFile = string.IsNullOrEmpty(Options.LibraryName) ? var assemblyFile = string.IsNullOrEmpty(Options.LibraryName) ?
"out.dll" : Options.LibraryName + ".dll"; "out.dll" : Options.LibraryName + ".dll";
@ -407,22 +404,19 @@ namespace CppSharp
compilerResults = codeProvider.CompileAssemblyFromDom( compilerResults = codeProvider.CompileAssemblyFromDom(
compilerParameters, compileUnits.ToArray()); compilerParameters, compileUnits.ToArray());
} }
var errors = compilerResults.Errors.Cast<CompilerError>().Where(e => !e.IsWarning).ToList(); var errors = compilerResults.Errors.Cast<CompilerError>().Where(e => !e.IsWarning).ToList();
foreach (var error in errors) foreach (var error in errors)
Diagnostics.Error(error.ToString()); Diagnostics.Error(error.ToString());
if (errors.Count == 0) HasCompilationErrors = errors.Count > 0;
if (!HasCompilationErrors)
{ {
Diagnostics.Message("Compilation succeeded."); Diagnostics.Message("Compilation succeeded.");
var wrapper = Path.Combine(outputDir, assemblyFile); var wrapper = Path.Combine(outputDir, assemblyFile);
foreach (var library in Options.Libraries) foreach (var library in Options.Libraries)
libraryMappings[library] = wrapper; libraryMappings[library] = wrapper;
} }
else
{
HasCompilationErrors = true;
}
} }
public void AddTranslationUnitPass(TranslationUnitPass pass) public void AddTranslationUnitPass(TranslationUnitPass pass)
@ -497,10 +491,11 @@ namespace CppSharp
} }
if (!driver.Options.DryRun) if (!driver.Options.DryRun)
driver.WriteCode(outputs); {
driver.SaveCode(outputs);
if (driver.Options.IsCSharpGenerator) if (driver.Options.IsCSharpGenerator && driver.Options.CompileCode)
driver.CompileCode(); driver.CompileCode();
}
} }
} }
} }
Loading…
Cancel
Save