static void Main(string[] args) { IAssemblyLoader assemblyLoader = new AssemblyLoader(); assemblyLoader.AddPrivatePath(@"X:\MonoTest\bin\"); assemblyLoader.LoadModule(@"X:\MonoTest\bin\Mosa.HelloWorld.exe"); ITypeSystem typeSystem = new TypeSystem(); typeSystem.LoadModules(assemblyLoader.Modules); return; }
private void Compile() { IAssemblyLoader assemblyLoader = new AssemblyLoader(); assemblyLoader.InitializePrivatePaths(this.GetInputFileNames()); foreach (string file in this.GetInputFileNames()) { assemblyLoader.LoadModule(file); } ITypeSystem typeSystem = new TypeSystem(); typeSystem.LoadModules(assemblyLoader.Modules); int nativePointerSize; int nativePointerAlignment; this.architectureSelector.Architecture.GetTypeRequirements(BuiltInSigType.IntPtr, out nativePointerSize, out nativePointerAlignment); TypeLayout typeLayout = new TypeLayout(typeSystem, nativePointerSize, nativePointerAlignment); // Create the compiler using (AotCompiler aot = new AotCompiler(this.architectureSelector.Architecture, typeSystem, typeLayout)) { aot.Pipeline.AddRange(new IAssemblyCompilerStage[] { this.bootFormatStage, new InterruptBuilderStage(), new AssemblyCompilationStage(), //new FakeSystemObjectGenerationStage(), new MethodCompilerSchedulerStage(), new TypeInitializers.TypeInitializerSchedulerStage(), this.bootFormatStage, new CilHeaderBuilderStage(), new ObjectFileLayoutStage(), this.linkerStage, this.mapFileWrapper }); aot.Run(); } }