示例#1
0
        static void Main(string[] args)
        {
            Config.Parse(args);
            string ProjectFile = Config.Result;

            if (string.IsNullOrEmpty(ProjectFile))
            {
                ProjectFile = "project.xml";
            }

            Log(AppVersion);
            try
            {
                Log("Loading data...");
                Catalog.DataDirectory = Config.GetPath("Data") ?? Path.Combine(AppPath, "data");
                Catalog.WorkDirectory = "build";
                Catalog.Initialize();

                Log("Loading project...");
                Project project;
                project = Catalog.LoadProject(ProjectFile);

                RepositoryResolver.ResolveForProject(project);

                Log("Generating files...");
                MakefileGenerator m = new MakefileGenerator(project);
                m.UseExternalMakefile = false;
                m.Export("Makefile");

                Make make = new Make();
                foreach (var rule in Config.Rules)
                {
                    Log($"Rule {rule}");
                    make.Run(rule);
                }

                Log("Finished");
            }
            catch (Exception e)
            {
                Log($"Unhandled: {e.Message}", "Error");
            }
        }