internal string[] Generate(RemotableLogger2 logger, BuildEnvironment environment) { if (!_initialized) { throw new InvalidOperationException("Initialize must be called before calling Generate"); } _remoteLoggerProvider.TaskLog = logger; return(new SourceGeneratorHost(environment).Generate()); }
internal string[] Generate(RemotableLogger2 logger, BuildEnvironment environment) { if (!_initialized) { throw new InvalidOperationException("Initialize must be called before calling Generate"); } _remoteLoggerProvider.TaskLog = logger; return(new SourceGeneratorEngine( environment: environment #if IS_BUILD_HOST , assemblyReferenceProvider: Uno.SourceGeneration.Host.Server.DesktopGenerationServerHost.SharedAssemblyReferenceProvider #else , null #endif ).Generate()); }
private string[] GenerateForCollection(EnvironmentPool collection, BuildEnvironment environment) { (RemoteSourceGeneratorEngine Wrapper, AppDomain Domain)hostEntry = (null, null); try { if (!collection.Hosts.TryTake(out hostEntry)) { hostEntry = CreateDomain(environment); } else { // Try pinging the remote appdomain, as it may throw a RemotingException exception with this error: // Error : Object '/b612ce25_b538_486d_882a_28a019c782ed/p6lmd0em_mrlqpchbk5gh2mk_10.rem' has been disconnected or does not exist at the server. try { if (hostEntry.Wrapper.Ping()) { this.Log().Debug($"Reusing generation host ({collection.Entry.ProjectFile}, {string.Join(", ", collection.Entry.SourceGenerators)})"); } } catch (System.Runtime.Remoting.RemotingException /*e*/) { this.Log().Debug($"Discarding disconnected generation host for ({collection.Entry.ProjectFile}, {string.Join(", ", collection.Entry.SourceGenerators)})"); hostEntry = CreateDomain(environment); } } var remotableLogger = new RemotableLogger2(this.Log()); return(hostEntry.Wrapper.Generate(remotableLogger, environment)); } finally { if (collection != null) { collection.Hosts.Add(hostEntry); } } }
internal string[] Generate(RemotableLogger2 logger, BuildEnvironment environment) { _remoteLoggerProvider.TaskLog = logger; return(new SourceGeneratorHost(environment).Generate()); }