예제 #1
0
        public static void Build(Dictionary <string, string> args)
        {
            BuilderSettings           settings  = new BuilderSettings();
            AssemblyGeneratorSettings asettings = SettingsManager.GetSettings <AssemblyGeneratorSettings>();
            LinkerSettings            ls        = SettingsManager.GetSettings <LinkerSettings>();
            HlCompilerSettings        hls       = SettingsManager.GetSettings <HlCompilerSettings>();

            ArgumentSyntaxParser.Parse(
                args,
                settings,
                asettings,
                ls,
                hls
                );

            SettingsManager.SaveSettings(ls);
            SettingsManager.SaveSettings(asettings);
            SettingsManager.SaveSettings(hls);

            List <string> ar = new List <string>();

            foreach (string key in args.Keys)
            {
                ar.Add('-' + key);
                string[] vals = args[key].Split(' ');
                ar.AddRange(vals);
            }

            Build(settings, ar.ToArray());
        }
예제 #2
0
        public static void Start(InstructionSet set)
        {
            if (s_IsStarted)
            {
                return;
            }

            AppRootHelper.SetAppDomainBase();

            CpuSettings.FallbackSet = set;

            s_IsStarted = true;

            Directory.CreateDirectory(SourceDirectory);
            Directory.CreateDirectory(OutputDirectory);
            Directory.CreateDirectory(InternalDirectory);

            EventManager.RegisterDefaultHandlers();

            Logger.OnLogReceive += (tag, msg) => Console.WriteLine($"[{tag}]{msg}");

            //Set Linker Export Flag
            //Useful for Debugging and Required for DLR Wrapper.
            LinkerSettings settings = SettingsManager.GetSettings <LinkerSettings>();

            settings.ExportLinkerInfo = true;
            SettingsManager.SaveSettings(settings);
        }
예제 #3
0
        public override void Help()
        {
            BuilderSettings           settings  = new BuilderSettings();
            AssemblyGeneratorSettings asettings = SettingsManager.GetSettings <AssemblyGeneratorSettings>();
            LinkerSettings            ls        = SettingsManager.GetSettings <LinkerSettings>();
            HlCompilerSettings        hls       = SettingsManager.GetSettings <HlCompilerSettings>();

            HelpSubSystem.WriteSubsystem("vis build", settings, asettings, ls, hls);
        }
예제 #4
0
파일: Program.cs 프로젝트: ByteChkR/VisCPU
        private static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Arguments:");
                Console.WriteLine("\t-c : Compile Main File");
                Console.WriteLine("\t-clean : Clean Build Directory");
                Console.WriteLine("\t-r : Run Dynamic Commandline");
                Console.WriteLine("\t-o : Optimize Assembly");
                Console.WriteLine("\t-d : Debug(Make all labels and data sections visible)");

                return;
            }

            bool compile   = args.Any(x => x == "-c");
            bool clean     = args.Any(x => x == "-clean");
            bool run       = args.Any(x => x == "-r");
            bool optimized = args.Any(x => x == "-o");
            bool debug     = args.Any(x => x == "-d");

            FirstSetup.Start();

            LinkerSettings linkerSettings = SettingsManager.GetSettings <LinkerSettings>();

            linkerSettings.NoHiddenItems = debug;
            SettingsManager.SaveSettings(linkerSettings);

            AssemblyGeneratorSettings gsettings = SettingsManager.GetSettings <AssemblyGeneratorSettings>();

            gsettings.Format = "v1"; //Set Raw Assembly Mode
            SettingsManager.SaveSettings(gsettings);

            HlCompilerSettings settings = SettingsManager.GetSettings <HlCompilerSettings>();

            settings.OptimizeAll = optimized;
            SettingsManager.SaveSettings(settings);

            string output = null;

            output = compile ? VisHelper.Compile(clean) : FirstSetup.DefaultFile;

            if (run)
            {
                if (output == null)
                {
                    Console.WriteLine($"Output file error.");

                    FirstSetup.End(EndOptions.Default);

                    return;
                }

                ConsoleLoop(output);
            }

            FirstSetup.End(EndOptions.Default);
        }
예제 #5
0
        public static void Build(IEnumerable <string> args)
        {
            BuilderSettings           settings  = new BuilderSettings();
            AssemblyGeneratorSettings asettings = SettingsManager.GetSettings <AssemblyGeneratorSettings>();
            LinkerSettings            ls        = SettingsManager.GetSettings <LinkerSettings>();
            HlCompilerSettings        hls       = SettingsManager.GetSettings <HlCompilerSettings>();

            ArgumentSyntaxParser.Parse(
                args.ToArray(),
                settings,
                asettings,
                ls,
                hls
                );

            SettingsManager.SaveSettings(ls);
            SettingsManager.SaveSettings(asettings);
            SettingsManager.SaveSettings(hls);
            Build(settings, args);
        }