/// <summary> /// Application entry point. /// </summary> /// <param name="arguments">Command line arguments.</param> private static void Main(string[] arguments) { try { BuildSystemModule executingModule; string[] executingModuleArguments; if (arguments.Length > 0) { executingModuleArguments = arguments.SubArray(1); switch (arguments[0]) { case "--generate-project-files": executingModule = new ProjectGenerator.ProjectGeneratorModule(); break; default: executingModuleArguments = arguments; goto case "--generate-project-files"; } } else { executingModule = new ProjectGenerator.ProjectGeneratorModule(); executingModuleArguments = arguments; } Environment.Exit(executingModule.Execute(executingModuleArguments)); } catch (BuildSystemException exception) { Console.Error.WriteLine("Internal unhanded error was caught while running the Build System:"); Console.Error.WriteLine(exception.Message); } #if !DEBUG // We need Visual Studio to debug break when the exception is thrown, not just silently shut down. catch (Exception Exception) { Console.Error.WriteLine("Unhanded error was caught while running the Build System:"); Console.Error.WriteLine(Exception.ToString()); } #endif // if !DEBUG Environment.Exit(1); }