Ejemplo n.º 1
0
		public int Launch () {
			Parser.DebugParser = debug_parser;

			if (RemainingArguments.Length == 0) {
				DoAbout ();
				return 1;
			}

			if (keyfile == null) {
				Console.Error.WriteLine ("A keypair file must be specified to sign the assembly.");
				return 1;
			}

			if (assembly_version == null) {
				Console.Error.WriteLine ("An assembly version must be given to install the assembly.");
				return 1;
			}

			if (!File.Exists (keyfile)) {
				Console.Error.WriteLine ("The specified keypair file \"{0}\" does not exist.", keyfile);
				return 1;
			}


			if (outfile == null) {
				string inbase = Path.GetFileNameWithoutExtension (RemainingArguments[0]);

				// hacky ...
				outfile = "MBuildDynamic." + inbase + ".dll";
			}

			switch (source_language) {
			case "csharp":
				prov = new CSharpCodeProvider();
				resource_arg = "/resource:";
				break;
			case "vb":
				prov = new VBCodeProvider ();
				resource_arg = "/resource:"; // ???
				break;
			default:
				Console.Error.WriteLine ("Unknown source language \"{0}\" -- cannot continue.",
						   source_language);
				return 1;
			}

			Driver driver = new Driver ();

			foreach (string s in refs)
			    if (driver.LoadAssembly (s))
				return 1;

			for (int i = 0; i < RemainingArguments.Length; i++) {
			    if (driver.ParseFile (RemainingArguments[i]))
				return 1;
			}

			if (driver.Prepare ())
			    return 2;

			if (debug_codegen)
			    return DoDebugCodegen (driver.GetUnits (assembly_version, keyfile));

			foreach (string nfile in natives)
			    if (driver.AddNativeFile (nfile))
				return 1;

			return DoCompilePass (driver.GetUnits (assembly_version, keyfile));
		}
Ejemplo n.º 2
0
        public int Launch()
        {
            Parser.DebugParser = debug_parser;

            if (RemainingArguments.Length == 0)
            {
                DoAbout();
                return(1);
            }

            if (keyfile == null)
            {
                Console.Error.WriteLine("A keypair file must be specified to sign the assembly.");
                return(1);
            }

            if (assembly_version == null)
            {
                Console.Error.WriteLine("An assembly version must be given to install the assembly.");
                return(1);
            }

            if (!File.Exists(keyfile))
            {
                Console.Error.WriteLine("The specified keypair file \"{0}\" does not exist.", keyfile);
                return(1);
            }


            if (outfile == null)
            {
                string inbase = Path.GetFileNameWithoutExtension(RemainingArguments[0]);

                // hacky ...
                outfile = "MBuildDynamic." + inbase + ".dll";
            }

            switch (source_language)
            {
            case "csharp":
                prov         = new CSharpCodeProvider();
                resource_arg = "/resource:";
                break;

            case "vb":
                prov         = new VBCodeProvider();
                resource_arg = "/resource:";                 // ???
                break;

            default:
                Console.Error.WriteLine("Unknown source language \"{0}\" -- cannot continue.",
                                        source_language);
                return(1);
            }

            Driver driver = new Driver();

            foreach (string s in refs)
            {
                if (driver.LoadAssembly(s))
                {
                    return(1);
                }
            }

            for (int i = 0; i < RemainingArguments.Length; i++)
            {
                if (driver.ParseFile(RemainingArguments[i]))
                {
                    return(1);
                }
            }

            if (driver.Prepare())
            {
                return(2);
            }

            if (debug_codegen)
            {
                return(DoDebugCodegen(driver.GetUnits(assembly_version, keyfile)));
            }

            foreach (string nfile in natives)
            {
                if (driver.AddNativeFile(nfile))
                {
                    return(1);
                }
            }

            return(DoCompilePass(driver.GetUnits(assembly_version, keyfile)));
        }