Ejemplo n.º 1
0
    public override void CompileDynamicLibrary(string outputFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        string[] array = sources.ToArray <string>();
        string   text  = NativeCompiler.Aggregate(array.Select(new Func <string, string>(base.ObjectFileFor)), " ", " " + Environment.NewLine);
        string   includePathsString = NativeCompiler.Aggregate(includePaths.Union(this.m_IncludePaths), "/I \"", "\" ");
        string   text2 = NativeCompiler.Aggregate(libraries.Union(this.m_Libraries), " ", " ");
        string   text3 = NativeCompiler.Aggregate(libraryPaths.Union(this.m_Settings.LibPaths), "/LIBPATH:\"", "\" ");

        this.GenerateEmptyPdbFile(outputFile);
        NativeCompiler.ParallelFor <string>(array, delegate(string file)
        {
            this.Compile(file, includePathsString);
        });
        string contents = string.Format(" {0} {1} {2} /DEBUG /INCREMENTAL:NO /MACHINE:{4} /DLL /out:\"{3}\" /DEF:\"{5}\" ", new object[]
        {
            text,
            text2,
            text3,
            outputFile,
            this.m_Settings.MachineSpecification,
            this.m_DefFile
        });
        string tempFileName = Path.GetTempFileName();

        File.WriteAllText(tempFileName, contents);
        base.Execute(string.Format("@{0}", tempFileName), "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\link.exe");
    }
Ejemplo n.º 2
0
    public override void CompileDynamicLibrary(string outputFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        // ISSUE: object of a compiler-generated type is created
        // ISSUE: variable of a compiler-generated type
        MSVCCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey75 libraryCAnonStorey75 = new MSVCCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey75();
        // ISSUE: reference to a compiler-generated field
        libraryCAnonStorey75.\u003C\u003Ef__this = this;
        string[] array = sources.ToArray <string>();
        string   str1  = NativeCompiler.Aggregate(((IEnumerable <string>)array).Select <string, string>(new Func <string, string>(((NativeCompiler)this).ObjectFileFor)), " \"", "\" " + Environment.NewLine);

        // ISSUE: reference to a compiler-generated field
        libraryCAnonStorey75.includePathsString = NativeCompiler.Aggregate(includePaths.Union <string>((IEnumerable <string>) this.m_IncludePaths), "/I \"", "\" ");
        string str2 = NativeCompiler.Aggregate(libraries.Union <string>((IEnumerable <string>) this.m_Libraries), " ", " ");
        string str3 = NativeCompiler.Aggregate(libraryPaths.Union <string>((IEnumerable <string>) this.m_Settings.LibPaths), "/LIBPATH:\"", "\" ");

        this.GenerateEmptyPdbFile(outputFile);
        // ISSUE: reference to a compiler-generated method
        NativeCompiler.ParallelFor <string>(array, new Action <string>(libraryCAnonStorey75.\u003C\u003Em__108));
        string contents     = string.Format(" {0} {1} {2} /DEBUG /INCREMENTAL:NO /MACHINE:{4} /DLL /out:\"{3}\" /MAP /DEF:\"{5}\" ", (object)str1, (object)str2, (object)str3, (object)outputFile, (object)this.m_Settings.MachineSpecification, (object)this.m_DefFile);
        string tempFileName = Path.GetTempFileName();

        File.WriteAllText(tempFileName, contents);
        this.Execute(string.Format("@{0}", (object)tempFileName), "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\link.exe");
        this.ExecuteCommand(Path.Combine(MonoInstallationFinder.GetFrameWorksFolder(), "Tools/MapFileParser/MapFileParser.exe"), "-format=MSVC", "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outputFile), Path.GetFileNameWithoutExtension(outputFile) + ".map")) + "\"", "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outputFile), "SymbolMap")) + "\"");
    }
Ejemplo n.º 3
0
    public override void CompileDynamicLibrary(string outFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        string[] array       = sources.ToArray <string>();
        string   includeDirs = includePaths.Aggregate(string.Empty, (string current, string sourceDir) => current + "-I" + sourceDir + " ");
        string   text        = NativeCompiler.Aggregate(libraries, "-force_load ", " ");
        string   text2       = NativeCompiler.Aggregate(libraryPaths.Union(this.m_Settings.LibPaths), "-L", " ");

        NativeCompiler.ParallelFor <string>(array, delegate(string file)
        {
            this.Compile(file, includeDirs);
        });
        string arg_11A_1 = "ld";

        string[] expr_95 = new string[9];
        expr_95[0] = "-dylib";
        expr_95[1] = "-arch " + this.m_Settings.MachineSpecification;
        expr_95[2] = "-macosx_version_min 10.6";
        expr_95[3] = "-lSystem";
        expr_95[4] = "-lstdc++";
        expr_95[5] = "-o " + outFile;
        expr_95[6] = array.Select(new Func <string, string>(base.ObjectFileFor)).Aggregate((string buff, string s) => buff + " " + s);
        expr_95[7] = text2;
        expr_95[8] = text;
        base.ExecuteCommand(arg_11A_1, expr_95);
    }
Ejemplo n.º 4
0
 internal GeneratorBase(NativeCompiler compiler)
 {
     if (compiler == null)
     {
         throw new ArgumentNullException("compiler");
     }
     this.Compiler = compiler;
 }
Ejemplo n.º 5
0
        public ExpressionsEvaluator()
        {
            NativeCompiler = new NativeCompiler();
            NativeCompiler.AddDll(PathUtility.GetFullPath("Computator.NET.DataTypes.dll"));

            _tslCompiler          = new TslCompiler();
            Logger                = LogManager.GetLogger(GetType().FullName);
            AdditionalObjectsCode = "";
            AdditionalUsings      = "";
        }
 public ExpressionsEvaluator()
 {
     NativeCompiler = new NativeCompiler();
     _tslCompiler   = new TslCompiler();
     Logger         = new SimpleLogger.SimpleLogger(GlobalConfig.AppName)
     {
         ClassName = GetType().FullName
     };
     AdditionalObjectsCode = "";
     AdditionalUsings      = "";
 }
Ejemplo n.º 7
0
        public ScriptEvaluator()
        {
            FunctionType     = FunctionType.Scripting;
            AdditionalUsings = @"
            //using System.Collections.Generic;
            //using System.Windows.Forms.Integration;
            //using System.Linq;
            //using Computator.NET.Charting;
            //using Complex = System.Numerics.Complex;
            //using DenseVector = MathNet.Numerics.LinearAlgebra.Complex.DenseVector;
            //using MathNet.Numerics.LinearAlgebra;
            //using MathNet.Numerics.LinearAlgebra.Double;
            //using Meta.Numerics; 
            //using System.IO;
            //using System.Windows.Forms;
            //using System.Windows.Media;
            //using System.Windows.Media.Media3D;
            //using Computator.NET.Charting.Chart3D;
            //using Computator.NET.Charting.ComplexCharting;
            //using Computator.NET.Charting.RealCharting;
            //using Computator.NET.DataTypes;
            //using Computator.NET.DataTypes.SettingsTypes;
            //using Meta.Numerics.Matrices;
            ";

            NativeCompiler.AddDll(GlobalConfig.FullPath("Computator.NET.Charting.dll"));
            NativeCompiler.AddDll(GlobalConfig.FullPath("Computator.NET.DataTypes.dll"));
            /////////////////////////
            NativeCompiler.AddDll("System.Drawing.dll");
#if !__MonoCS__
            NativeCompiler.AddDll("System.Windows.Forms.DataVisualization.dll");
#else
            NativeCompiler.AddDll(GlobalConfig.FullPath("DataVisualizationX.dll"));
#endif
            NativeCompiler.AddDll("System.Windows.Forms.dll");
            NativeCompiler.AddDll("System.Xaml.dll");
            //NativeCompiler.AddDll("Microsoft.CSharp.dll");

#if !__MonoCS__
            NativeCompiler.AddDll(typeof(System.Windows.Media.Media3D.AmbientLight).Assembly.Location);
            //"PresentationCore.dll");
            NativeCompiler.AddDll(typeof(System.Windows.Data.XmlDataProvider).Assembly.Location);
            //"PresentationFramework.dll");
            NativeCompiler.AddDll(typeof(System.Windows.Forms.Integration.ElementHost).Assembly.Location);
            //"WindowsFormsIntegration.dll");
#endif
            NativeCompiler.AddDll(typeof(PresentationTraceSources).Assembly.Location);
            //"WindowsBase.dll");

            NativeCompiler.IsScripting = true;

            _additionalObjectsCodeCopy = AdditionalObjectsCode = NumericalExtensions.ToCode + ScriptingExtensionObjects.ToCode;
            Logger.ClassName           = GetType().FullName;
        }
Ejemplo n.º 8
0
        public void Run()
        {
            var outputDirectory = GetCppOutputDirectoryInStagingArea();
            var managedDir      = Path.GetFullPath(Path.Combine(m_StagingAreaData, "Managed"));

            // Make all assemblies in Staging/Managed writable for stripping.
            foreach (var file in Directory.GetFiles(managedDir))
            {
                var fileInfo = new FileInfo(file);
                fileInfo.IsReadOnly = false;
            }

            var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(m_PlatformProvider.target);

            var managedStrippingLevel = PlayerSettings.GetManagedStrippingLevel(buildTargetGroup);

            // IL2CPP does not support a managed stripping level of disabled. If the player settings
            // do try this (which should not be possible from the editor), use Low instead.
            if (managedStrippingLevel == ManagedStrippingLevel.Disabled)
            {
                managedStrippingLevel = ManagedStrippingLevel.Low;
            }
            AssemblyStripper.StripAssemblies(managedDir, m_PlatformProvider.CreateUnityLinkerPlatformProvider(), m_PlatformProvider, m_RuntimeClassRegistry, managedStrippingLevel);

            // The IL2CPP editor integration here is responsible to give il2cpp.exe an empty directory to use.
            FileUtil.CreateOrCleanDirectory(outputDirectory);

            if (m_ModifyOutputBeforeCompile != null)
            {
                m_ModifyOutputBeforeCompile(outputDirectory);
            }

            var pipelineData = new Il2CppBuildPipelineData(m_PlatformProvider.target, managedDir);

            ConvertPlayerDlltoCpp(pipelineData, outputDirectory, managedDir, m_PlatformProvider.supportsManagedDebugging);

            var compiler = m_PlatformProvider.CreateNativeCompiler();

            if (compiler != null && m_PlatformProvider.CreateIl2CppNativeCodeBuilder() == null)
            {
                var nativeLibPath = OutputFileRelativePath();

                var includePaths = new List <string>(m_PlatformProvider.includePaths);
                includePaths.Add(outputDirectory);

                m_PlatformProvider.CreateNativeCompiler().CompileDynamicLibrary(
                    nativeLibPath,
                    NativeCompiler.AllSourceFilesIn(outputDirectory),
                    includePaths,
                    m_PlatformProvider.libraryPaths,
                    new string[0]);
            }
        }
Ejemplo n.º 9
0
        protected async Task <NativeCompiler> ConfigureAndRunCompiler(AbsolutePath configPath, bool useGameFiles = false)
        {
            var settings = configPath.FromJson <NativeCompilerSettings>();
            var profile  = utils.AddProfile();

            var compiler = new NativeCompiler(
                settings: settings,
                sourcePath: utils.SourcePath,
                downloadsPath: utils.DownloadsPath,
                outputModListPath: OutputFile(profile))
            {
                UseGamePaths = useGameFiles
            };

            Assert.True(await compiler.Begin());
            return(compiler);
        }
Ejemplo n.º 10
0
        public override void CompileDynamicLibrary(string outFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            GccCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey73 libraryCAnonStorey73 = new GccCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey73();
            // ISSUE: reference to a compiler-generated field
            libraryCAnonStorey73.\u003C\u003Ef__this = this;
            string[] array = sources.ToArray <string>();
            // ISSUE: reference to a compiler-generated field
            libraryCAnonStorey73.includeDirs = includePaths.Aggregate <string, string>(string.Empty, (Func <string, string, string>)((current, sourceDir) => current + "-I" + sourceDir + " "));
            string empty = string.Empty;
            string str   = NativeCompiler.Aggregate(libraryPaths.Union <string>((IEnumerable <string>) this.m_Settings.LibPaths), "-L", " ");

            // ISSUE: reference to a compiler-generated method
            NativeCompiler.ParallelFor <string>(array, new System.Action <string>(libraryCAnonStorey73.\u003C\u003Em__FD));
            this.ExecuteCommand(this.m_Settings.LinkerPath, string.Format("-shared {0} -o {1}", (object)this.m_Settings.MachineSpecification, (object)outFile), ((IEnumerable <string>)array).Where <string>(new Func <string, bool>(NativeCompiler.IsSourceFile)).Select <string, string>(new Func <string, string>(((NativeCompiler)this).ObjectFileFor)).Aggregate <string>((Func <string, string, string>)((buff, s) => buff + " " + s)), str, empty);
        }
Ejemplo n.º 11
0
 protected MethodGenerator(NativeCompiler compiler, SmalltalkClass cls, MethodDictionary methods)
     : base(compiler)
 {
     if (cls == null)
     {
         throw new ArgumentNullException("cls");
     }
     if (methods == null)
     {
         throw new ArgumentNullException("methods");
     }
     this.Class   = cls;
     this.Methods = methods;
     this.LiteralEncodingStrategy         = new NativeLiteralEncodingStrategy(this);
     this.DynamicCallStrategy             = new NativeDynamicCallStrategy(this);
     this.DiscreteBindingEncodingStrategy = new NativeDiscreteBindingEncodingStrategy(this);
 }
Ejemplo n.º 12
0
        internal static InitializerGenerator GetInitializerGenerator(NativeCompiler compiler, CompiledInitializer initializer)
        {
            if (initializer == null)
            {
                throw new ArgumentNullException("initializer");
            }
            switch (initializer.Type)
            {
            case InitializerType.ProgramInitializer:
                RuntimeProgramInitializer programInitializer = initializer as RuntimeProgramInitializer;
                if (programInitializer == null)
                {
                    throw new Exception("Expected to see a RuntimeProgramInitializer");     // ... since we have compiled everything ourself.
                }
                return(new ProgramInitializerGenerator(compiler, programInitializer));

            case InitializerType.GlobalInitializer:
                RuntimeGlobalInitializer globalInitializer = initializer as RuntimeGlobalInitializer;
                if (globalInitializer == null)
                {
                    throw new Exception("Expected to see a RuntimeGlobalInitializer");     // ... since we have compiled everything ourself.
                }
                return(new GlobalInitializerGenerator(compiler, globalInitializer));

            case InitializerType.ClassInitializer:
                RuntimeGlobalInitializer classInitializer = initializer as RuntimeGlobalInitializer;
                if (classInitializer == null)
                {
                    throw new Exception("Expected to see a RuntimeGlobalInitializer");     // ... since we have compiled everything ourself.
                }
                return(new ClassInitializerGenerator(compiler, classInitializer));

            case InitializerType.PoolVariableInitializer:
                RuntimePoolItemInitializer poolItemInitializer = initializer as RuntimePoolItemInitializer;
                if (poolItemInitializer == null)
                {
                    throw new Exception("Expected to see a RuntimePoolItemInitializer");     // ... since we have compiled everything ourself.
                }
                return(new PoolVariableInitializerGenerator(compiler, poolItemInitializer));

            default:
                throw new Exception(String.Format("Unrecognized initializer type {0}", initializer.Type));
            }
        }
Ejemplo n.º 13
0
        public override void CompileDynamicLibrary(string outFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
        {
            string[] array       = sources.ToArray <string>();
            string   includeDirs = includePaths.Aggregate(string.Empty, (string current, string sourceDir) => current + "-I" + sourceDir + " ");
            string   empty       = string.Empty;
            string   text        = NativeCompiler.Aggregate(libraryPaths.Union(this.m_Settings.LibPaths), "-L", " ");

            NativeCompiler.ParallelFor <string>(array, delegate(string file)
            {
                this.Compile(file, includeDirs);
            });
            string arg_F7_1 = this.m_Settings.LinkerPath;

            string[] expr_8E = new string[4];
            expr_8E[0] = string.Format("-shared {0} -o {1}", this.m_Settings.MachineSpecification, outFile);
            expr_8E[1] = array.Where(new Func <string, bool>(NativeCompiler.IsSourceFile)).Select(new Func <string, string>(base.ObjectFileFor)).Aggregate((string buff, string s) => buff + " " + s);
            expr_8E[2] = text;
            expr_8E[3] = empty;
            base.ExecuteCommand(arg_F7_1, expr_8E);
        }
Ejemplo n.º 14
0
        public void Run()
        {
            var outputDirectory = GetCppOutputDirectoryInStagingArea();
            var managedDir      = Path.GetFullPath(Path.Combine(m_StagingAreaData, "Managed"));

            // Make all assemblies in Staging/Managed writable for stripping.
            foreach (var file in Directory.GetFiles(managedDir))
            {
                var fileInfo = new FileInfo(file);
                fileInfo.IsReadOnly = false;
            }

            AssemblyStripper.StripAssemblies(managedDir, m_PlatformProvider, m_RuntimeClassRegistry);

            // The IL2CPP editor integration here is responsible to give il2cpp.exe an empty directory to use.
            FileUtil.CreateOrCleanDirectory(outputDirectory);

            if (m_ModifyOutputBeforeCompile != null)
            {
                m_ModifyOutputBeforeCompile(outputDirectory);
            }

            ConvertPlayerDlltoCpp(GetUserAssembliesToConvert(managedDir), outputDirectory, managedDir, m_PlatformProvider.supportsManagedDebugging);

            var compiler = m_PlatformProvider.CreateNativeCompiler();

            if (compiler != null && m_PlatformProvider.CreateIl2CppNativeCodeBuilder() == null)
            {
                var nativeLibPath = OutputFileRelativePath();

                var includePaths = new List <string>(m_PlatformProvider.includePaths);
                includePaths.Add(outputDirectory);

                m_PlatformProvider.CreateNativeCompiler().CompileDynamicLibrary(
                    nativeLibPath,
                    NativeCompiler.AllSourceFilesIn(outputDirectory),
                    includePaths,
                    m_PlatformProvider.libraryPaths,
                    new string[0]);
            }
        }
Ejemplo n.º 15
0
    public override void CompileDynamicLibrary(string outFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        // ISSUE: object of a compiler-generated type is created
        // ISSUE: variable of a compiler-generated type
        ClangCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey71 libraryCAnonStorey71 = new ClangCompiler.\u003CCompileDynamicLibrary\u003Ec__AnonStorey71();
        // ISSUE: reference to a compiler-generated field
        libraryCAnonStorey71.\u003C\u003Ef__this = this;
        string[] array = sources.ToArray <string>();
        // ISSUE: reference to a compiler-generated field
        libraryCAnonStorey71.includeDirs = includePaths.Aggregate <string, string>(string.Empty, (Func <string, string, string>)((current, sourceDir) => current + "-I" + sourceDir + " "));
        string str1 = NativeCompiler.Aggregate(libraries, "-force_load ", " ");
        string str2 = NativeCompiler.Aggregate(libraryPaths.Union <string>((IEnumerable <string>) this.m_Settings.LibPaths), "-L", " ");

        // ISSUE: reference to a compiler-generated method
        NativeCompiler.ParallelFor <string>(array, new Action <string>(libraryCAnonStorey71.\u003C\u003Em__F8));
        string str3 = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outFile), Path.GetFileNameWithoutExtension(outFile) + ".map")) + "\"";

        this.ExecuteCommand("ld", "-dylib", "-arch " + this.m_Settings.MachineSpecification, "-macosx_version_min 10.6", "-lSystem", "-lstdc++", "-map", str3, "-o " + outFile, ((IEnumerable <string>)array).Select <string, string>(new Func <string, string>(((NativeCompiler)this).ObjectFileFor)).Aggregate <string>((Func <string, string, string>)((buff, s) => buff + " " + s)), str2, str1);
        string command = Path.Combine(MonoInstallationFinder.GetFrameWorksFolder(), "Tools/MapFileParser/MapFileParser");
        string str4    = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outFile), "SymbolMap")) + "\"";

        this.ExecuteCommand(command, "-format=Clang", str3, str4);
    }
Ejemplo n.º 16
0
    public override void CompileDynamicLibrary(string outFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        string[] array       = sources.ToArray <string>();
        string   includeDirs = includePaths.Aggregate(string.Empty, (string current, string sourceDir) => current + "-I" + sourceDir + " ");
        string   text        = NativeCompiler.Aggregate(libraries, "-force_load ", " ");
        string   text2       = NativeCompiler.Aggregate(libraryPaths.Union(this.m_Settings.LibPaths), "-L", " ");

        NativeCompiler.ParallelFor <string>(array, delegate(string file)
        {
            this.Compile(file, includeDirs);
        });
        string text3     = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outFile), Path.GetFileNameWithoutExtension(outFile) + ".map")) + "\"";
        string arg_15C_1 = "ld";

        string[] expr_C9 = new string[11];
        expr_C9[0]  = "-dylib";
        expr_C9[1]  = "-arch " + this.m_Settings.MachineSpecification;
        expr_C9[2]  = "-macosx_version_min 10.6";
        expr_C9[3]  = "-lSystem";
        expr_C9[4]  = "-lstdc++";
        expr_C9[5]  = "-map";
        expr_C9[6]  = text3;
        expr_C9[7]  = "-o " + outFile;
        expr_C9[8]  = array.Select(new Func <string, string>(base.ObjectFileFor)).Aggregate((string buff, string s) => buff + " " + s);
        expr_C9[9]  = text2;
        expr_C9[10] = text;
        base.ExecuteCommand(arg_15C_1, expr_C9);
        string command = Path.Combine(MonoInstallationFinder.GetFrameWorksFolder(), "Tools/MapFileParser/MapFileParser");
        string text4   = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outFile), "SymbolMap")) + "\"";

        base.ExecuteCommand(command, new string[]
        {
            "-format=Clang",
            text3,
            text4
        });
    }
Ejemplo n.º 17
0
    public override void CompileDynamicLibrary(string outputFile, IEnumerable <string> sources, IEnumerable <string> includePaths, IEnumerable <string> libraries, IEnumerable <string> libraryPaths)
    {
        string[] array = sources.ToArray <string>();
        string   text  = NativeCompiler.Aggregate(array.Select(new Func <string, string>(base.ObjectFileFor)), " \"", "\" " + Environment.NewLine);
        string   includePathsString = NativeCompiler.Aggregate(includePaths.Union(this.m_IncludePaths), "/I \"", "\" ");
        string   text2 = NativeCompiler.Aggregate(libraries.Union(this.m_Libraries), " ", " ");
        string   text3 = NativeCompiler.Aggregate(libraryPaths.Union(this.m_Settings.LibPaths), "/LIBPATH:\"", "\" ");

        this.GenerateEmptyPdbFile(outputFile);
        NativeCompiler.ParallelFor <string>(array, delegate(string file)
        {
            this.Compile(file, includePathsString);
        });
        string contents = string.Format(" {0} {1} {2} /DEBUG /INCREMENTAL:NO /MACHINE:{4} /DLL /out:\"{3}\" /MAP /DEF:\"{5}\" ", new object[]
        {
            text,
            text2,
            text3,
            outputFile,
            this.m_Settings.MachineSpecification,
            this.m_DefFile
        });
        string tempFileName = Path.GetTempFileName();

        File.WriteAllText(tempFileName, contents);
        base.Execute(string.Format("@{0}", tempFileName), MSVCCompiler.VisualStudioDir() + "\\bin\\link.exe");
        string command = Path.Combine(MonoInstallationFinder.GetFrameWorksFolder(), "Tools/MapFileParser/MapFileParser.exe");
        string text4   = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outputFile), Path.GetFileNameWithoutExtension(outputFile) + ".map")) + "\"";
        string text5   = "\"" + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(outputFile), "SymbolMap")) + "\"";

        base.ExecuteCommand(command, new string[]
        {
            "-format=MSVC",
            text4,
            text5
        });
    }
Ejemplo n.º 18
0
 public ClassInitializerGenerator(NativeCompiler compiler, RuntimeGlobalInitializer initializer)
     : base(compiler, initializer)
 {
 }
Ejemplo n.º 19
0
 private ClassMethodGenerator(NativeCompiler compiler, SmalltalkClass cls, MethodDictionary methods)
     : base(compiler, cls, methods)
 {
 }
Ejemplo n.º 20
0
        public void Run()
        {
            string cppOutputDirectoryInStagingArea = this.GetCppOutputDirectoryInStagingArea();
            string fullPath = Path.GetFullPath(Path.Combine(this.m_StagingAreaData, "Managed"));

            string[] files = Directory.GetFiles(fullPath);
            for (int i = 0; i < files.Length; i++)
            {
                string   fileName = files[i];
                FileInfo fileInfo = new FileInfo(fileName);
                fileInfo.IsReadOnly = false;
            }
            AssemblyStripper.StripAssemblies(this.m_StagingAreaData, this.m_PlatformProvider, this.m_RuntimeClassRegistry);
            FileUtil.CreateOrCleanDirectory(cppOutputDirectoryInStagingArea);
            if (this.m_ModifyOutputBeforeCompile != null)
            {
                this.m_ModifyOutputBeforeCompile(cppOutputDirectoryInStagingArea);
            }
            this.ConvertPlayerDlltoCpp(this.GetUserAssembliesToConvert(fullPath), cppOutputDirectoryInStagingArea, fullPath);
            INativeCompiler nativeCompiler = this.m_PlatformProvider.CreateNativeCompiler();

            if (nativeCompiler != null && this.m_PlatformProvider.CreateIl2CppNativeCodeBuilder() == null)
            {
                string        outFile = this.OutputFileRelativePath();
                List <string> list    = new List <string>(this.m_PlatformProvider.includePaths);
                list.Add(cppOutputDirectoryInStagingArea);
                this.m_PlatformProvider.CreateNativeCompiler().CompileDynamicLibrary(outFile, NativeCompiler.AllSourceFilesIn(cppOutputDirectoryInStagingArea), list, this.m_PlatformProvider.libraryPaths, new string[0]);
            }
        }
Ejemplo n.º 21
0
 internal NameScopeGenerator(NativeCompiler compiler, string name, bool ignoreSmalltalk)
 {
     this.Compiler        = compiler;
     this.ScopeName       = name;
     this.IgnoreSmalltalk = ignoreSmalltalk;
 }
Ejemplo n.º 22
0
 internal InitializerGenerator(NativeCompiler compiler)
     : base(compiler)
 {
 }
Ejemplo n.º 23
0
 public PoolVariableInitializerGenerator(NativeCompiler compiler, RuntimePoolItemInitializer initializer)
     : base(compiler, initializer)
 {
 }
Ejemplo n.º 24
0
 public void Init()
 {
     nativeCompiler = new NativeCompiler();
 }
Ejemplo n.º 25
0
 internal GlobalVariableGenerator(NativeCompiler compiler, GlobalVariableBinding binding)
     : base(compiler, binding)
 {
 }
Ejemplo n.º 26
0
 internal PoolGenerator(NativeCompiler compiler, PoolBinding binding)
     : base(compiler, binding)
 {
 }
Ejemplo n.º 27
0
 private MethodInformation(NativeCompiler compiler, string name, RuntimeCompiledMethod method)
 {
     this.Compiler   = compiler;
     this.Method     = method;
     this.MethodName = name;
 }
Ejemplo n.º 28
0
 internal RuntimeGenerator(NativeCompiler compiler, MethodInfo extensionScopeInitializer, MethodInfo globalScopeInitializer)
     : base(compiler)
 {
     this.ExtensionScopeInitializer = extensionScopeInitializer;
     this.GlobalScopeInitializer    = globalScopeInitializer;
 }
 internal GlobalConstantGenerator(NativeCompiler compiler, GlobalConstantBinding binding)
     : base(compiler, binding)
 {
 }
Ejemplo n.º 30
0
 public NativeStrategyClient(NativeCompiler compiler, TypeBuilder containingType)
 {
     this.Compiler       = compiler;
     this.ContainingType = containingType;
 }