protected override BuildResult OnBuild (IProgressMonitor monitor, ConfigurationSelector configuration)
{
// create output directory, if not exists
ProjectConfiguration conf = GetConfiguration (configuration) as ProjectConfiguration;
if (conf == null) {
BuildResult cres = new BuildResult ();
cres.AddError (GettextCatalog.GetString ("Configuration '{0}' not found in project '{1}'", configuration.ToString (), Name));
return cres;
}
StringParserService.Properties["Project"] = Name;
if (UsingMSBuildEngine (configuration)) {
return DoBuild (monitor, configuration);
}
string outputDir = conf.OutputDirectory;
try {
DirectoryInfo directoryInfo = new DirectoryInfo (outputDir);
if (!directoryInfo.Exists) {
directoryInfo.Create ();
}
} catch (Exception e) {
throw new ApplicationException ("Can't create project output directory " + outputDir + " original exception:\n" + e.ToString ());
}
//copy references and files marked to "CopyToOutputDirectory"
CopySupportFiles (monitor, configuration);
monitor.Log.WriteLine ("Performing main compilation...");
BuildResult res = DoBuild (monitor, configuration);
if (res != null) {
string errorString = GettextCatalog.GetPluralString ("{0} error", "{0} errors", res.ErrorCount, res.ErrorCount);
string warningString = GettextCatalog.GetPluralString ("{0} warning", "{0} warnings", res.WarningCount, res.WarningCount);
monitor.Log.WriteLine (GettextCatalog.GetString ("Build complete -- ") + errorString + ", " + warningString);
}
return res;
}