public Config() { // KeepBenchmarkFiles = true; //Add(Job.Default.With(CsProjClassicNetToolchain.Net472)); Add(Job.Default.With(CsProjClassicNetToolchain.From("net48"))); //Add(Job.Default.With(CsProjCoreToolchain.Current.Value)); //var toolchain = CsProjCoreToolchain.Current.Value; //var jobWithCustomConfiguration = Job.Dry.WithCustomBuildConfiguration("CUSTOM").With(toolchain); //Add(jobWithCustomConfiguration); }
internal static IToolchain GetToolchain(this Runtime runtime, Descriptor descriptor = null, bool preferMsBuildToolchains = false) { switch (runtime) { case ClrRuntime clrRuntime: if (RuntimeInformation.IsNetCore || preferMsBuildToolchains) { return(clrRuntime.RuntimeMoniker != RuntimeMoniker.NotRecognized ? GetToolchain(clrRuntime.RuntimeMoniker) : CsProjClassicNetToolchain.From(clrRuntime.MsBuildMoniker)); } return(RoslynToolchain.Instance); case MonoRuntime mono: if (!string.IsNullOrEmpty(mono.AotArgs)) { return(MonoAotToolchain.Instance); } return(RoslynToolchain.Instance); case CoreRuntime coreRuntime: if (descriptor != null && descriptor.Type.Assembly.IsLinqPad()) { return(InProcessEmitToolchain.Instance); } if (coreRuntime.RuntimeMoniker != RuntimeMoniker.NotRecognized) { return(GetToolchain(coreRuntime.RuntimeMoniker)); } return(CsProjCoreToolchain.From(new DotNetCli.NetCoreAppSettings(coreRuntime.MsBuildMoniker, null, coreRuntime.Name))); case CoreRtRuntime coreRtRuntime: return(coreRtRuntime.RuntimeMoniker != RuntimeMoniker.NotRecognized ? GetToolchain(coreRtRuntime.RuntimeMoniker) : CoreRtToolchain.CreateBuilder().UseCoreRtNuGet().TargetFrameworkMoniker(coreRtRuntime.MsBuildMoniker).ToToolchain()); default: throw new ArgumentOutOfRangeException(nameof(runtime), runtime, "Runtime not supported"); } }
internal static string GetRuntimeVersion() { #if CLASSIC if (IsMono()) { var monoRuntimeType = Type.GetType("Mono.Runtime"); var monoDisplayName = monoRuntimeType?.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); if (monoDisplayName != null) { string version = monoDisplayName.Invoke(null, null)?.ToString(); if (version != null) { int bracket1 = version.IndexOf('('), bracket2 = version.IndexOf(')'); if (bracket1 != -1 && bracket2 != -1) { string comment = version.Substring(bracket1 + 1, bracket2 - bracket1 - 1); var commentParts = comment.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (commentParts.Length > 2) { version = version.Substring(0, bracket1) + "(" + commentParts[0] + " " + commentParts[1] + ")"; } } } return("Mono " + version); } } string frameworkVersion = CsProjClassicNetToolchain.GetCurrentNetFrameworkVersion(); string clrVersion = System.Environment.Version.ToString(); return($".NET Framework {frameworkVersion} (CLR {clrVersion})"); #else var runtimeVersion = GetNetCoreVersion() ?? "?"; var coreclrAssemblyInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(object).GetTypeInfo().Assembly.Location); var corefxAssemblyInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(System.Text.RegularExpressions.Regex).GetTypeInfo().Assembly.Location); return($".NET Core {runtimeVersion} (CoreCLR {coreclrAssemblyInfo.FileVersion}, CoreFX {corefxAssemblyInfo.FileVersion})"); #endif }
.AsDefault(); // this way we tell BDN that it's a default config which can be overwritten /// <summary> /// we need our own toolchain because MSBuild by default does not copy recursive native dependencies to the output /// </summary> private IToolchain CreateToolchain() { TimeSpan timeout = TimeSpan.FromMinutes(5); #if NETFRAMEWORK var tfm = "net461"; var csProj = CsProjClassicNetToolchain.From(tfm, timeout: timeout); #else var settings = AppDomain.CurrentDomain.GetData("FX_PRODUCT_VERSION") == null ? NetCoreAppSettings.NetCoreApp21 : NetCoreAppSettings.NetCoreApp31; settings = settings.WithTimeout(timeout); var tfm = settings.TargetFrameworkMoniker; var csProj = CsProjCoreToolchain.From(settings); #endif return(new Toolchain( tfm, new ProjectGenerator(tfm), // custom generator that copies native dependencies csProj.Builder, csProj.Executor)); }
internal static string GetRuntimeVersion() { #if CLASSIC if (IsMono()) { var monoRuntimeType = Type.GetType("Mono.Runtime"); var monoDisplayName = monoRuntimeType?.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); if (monoDisplayName != null) { string version = monoDisplayName.Invoke(null, null)?.ToString(); if (version != null) { int bracket1 = version.IndexOf('('), bracket2 = version.IndexOf(')'); if (bracket1 != -1 && bracket2 != -1) { string comment = version.Substring(bracket1 + 1, bracket2 - bracket1 - 1); var commentParts = comment.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (commentParts.Length > 2) { version = version.Substring(0, bracket1) + "(" + commentParts[0] + " " + commentParts[1] + ")"; } } } return("Mono " + version); } } string frameworkVersion = CsProjClassicNetToolchain.GetCurrentNetFrameworkVersion(); string clrVersion = System.Environment.Version.ToString(); return($".NET Framework {frameworkVersion} (CLR {clrVersion})"); #else var runtimeVersion = GetNetCoreVersion() ?? "?"; string frameworkVersion = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription.Replace(".NET Core ", ""); return($".NET Core {runtimeVersion} (Framework {frameworkVersion})"); #endif }
public NetFramework472JobAttribute() { var job = Job.Default.With(Runtime.Clr).With(Jit.RyuJit).With(Platform.X64).With(CsProjClassicNetToolchain.From("net472")); Config = ManualConfig.CreateEmpty().With(job); }