Type CompileGraph(CodeGenMode mode, out CompilationResult results) { results = default; RoslynEcsTranslator translator = (RoslynEcsTranslator)GraphModel.CreateTranslator(); translator.AllowNoJobsFallback = false; // because of the hack in the translator constructor, override right after ((EcsStencil)Stencil).UseJobSystem = mode == CodeGenMode.Jobs || mode == CodeGenMode.JobsTracing; var compilationOptions = CompilationOptions.LiveEditing; if (mode == CodeGenMode.JobsTracing || mode == CodeGenMode.NoJobsTracing) { compilationOptions |= CompilationOptions.Tracing; } results = GraphModel.Compile(AssemblyType.Memory, translator, compilationOptions); var results2 = results; Assert.That(results?.status, Is.EqualTo(CompilationStatus.Succeeded), () => $"Compilation failed, errors: {String.Join("\n", results2?.errors)}\r\n{FormatCode(results2)}"); return(EcsStencil.LiveCompileGraph(GraphModel, results, includeVscriptingAssemblies: true)); }
protected GraphDefinition CompileGraph(out CompilationResult results) { results = default; DotsTranslator translator = (DotsTranslator)GraphModel.CreateTranslator(); var compilationOptions = CompilationOptions.LiveEditing; results = GraphModel.Compile(AssemblyType.Memory, translator, compilationOptions); var results2 = results; Assert.That(results?.status, Is.EqualTo(CompilationStatus.Succeeded), () => $"Compilation failed, errors: {String.Join("\n", results2?.errors)}"); return(((DotsTranslator.DotsCompilationResult)results).GraphDefinition); }
void TestExtractMacro(IEnumerable <IGraphElementModel> toExtract, IO inputs, IO outputs) { MacroRefNodeModel macroRef = GraphModel.ExtractNodesAsMacro(m_MacroGraphModel, Vector2.zero, toExtract); Assert.That(macroRef.GraphAssetModel.GraphModel, Is.EqualTo(m_MacroGraphModel)); inputs.Check(m_MacroGraphModel, macroRef.InputVariablePorts.ToList(), ModifierFlags.ReadOnly); outputs.Check(m_MacroGraphModel, macroRef.OutputVariablePorts.ToList(), ModifierFlags.WriteOnly); CompilationResult compilationResult = GraphModel.Compile(AssemblyType.None, GraphModel.CreateTranslator(), CompilationOptions.Default); Assert.That( compilationResult.status, Is.EqualTo(CompilationStatus.Succeeded)); Debug.Log(compilationResult.sourceCode[0]); }
Type CompileGraph(CodeGenMode mode) { RoslynEcsTranslator translator = (RoslynEcsTranslator)GraphModel.CreateTranslator(); translator.AllowNoJobsFallback = false; // because of the hack in the translator constructor, override right after ((EcsStencil)Stencil).UseJobSystem = mode == CodeGenMode.Jobs; CompilationResult results = GraphModel.Compile(AssemblyType.Memory, translator, CompilationOptions.LiveEditing); if (results?.sourceCode != null && results.sourceCode.Length != 0) { LogAssert.Expect(LogType.Log, new Regex("using.*")); Debug.Log(results.sourceCode[(int)SourceCodePhases.Initial]); } Assert.That(results?.status, Is.EqualTo(CompilationStatus.Succeeded), () => $"Compilation failed, errors: {String.Join("\n", results?.errors)}"); return(EcsStencil.LiveCompileGraph(GraphModel, results, includeVscriptingAssemblies: true)); }