diff --git a/src/Microsoft.DotNet.Tools.Compiler/Program.cs b/src/Microsoft.DotNet.Tools.Compiler/Program.cs index 9d17b3b3a..281986a3c 100644 --- a/src/Microsoft.DotNet.Tools.Compiler/Program.cs +++ b/src/Microsoft.DotNet.Tools.Compiler/Program.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -182,21 +182,22 @@ namespace Microsoft.DotNet.Tools.Compiler } // Add project source files - compilerArgs.AddRange(context.ProjectFile.Files.SourceFiles.Select(s => $"\"{s}\"")); + var sourceFiles = context.ProjectFile.Files.SourceFiles; + compilerArgs.AddRange(sourceFiles.Select(s => $"\"{s}\"")); if (!AddResources(context.ProjectFile, compilerArgs, intermediateOutputPath)) { return false; } - // TODO: Read this from the project - const string compiler = "csc"; + var compilerName = context.ProjectFile.CompilerName; + compilerName = compilerName ?? "csc"; // Write RSP file - var rsp = Path.Combine(intermediateOutputPath, $"dotnet-compile.{compiler}.rsp"); + var rsp = Path.Combine(intermediateOutputPath, $"dotnet-compile.{compilerName}.rsp"); File.WriteAllLines(rsp, compilerArgs); - var result = Command.Create($"dotnet-compile-{compiler}", $"\"{rsp}\"") + var result = Command.Create($"dotnet-compile-{compilerName}", $"\"{rsp}\"") .OnErrorLine(line => { var diagnostic = ParseDiagnostic(context.ProjectDirectory, line); diff --git a/src/Microsoft.Extensions.ProjectModel/Project.cs b/src/Microsoft.Extensions.ProjectModel/Project.cs index 82e02e9c3..0c2341812 100644 --- a/src/Microsoft.Extensions.ProjectModel/Project.cs +++ b/src/Microsoft.Extensions.ProjectModel/Project.cs @@ -74,6 +74,8 @@ namespace Microsoft.Extensions.ProjectModel public string[] Tags { get; set; } + public string CompilerName { get; set; } + public ProjectFilesCollection Files { get; set; } public IDictionary Commands { get; } = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/src/Microsoft.Extensions.ProjectModel/ProjectReader.cs b/src/Microsoft.Extensions.ProjectModel/ProjectReader.cs index 9237488b2..e2a4dd777 100644 --- a/src/Microsoft.Extensions.ProjectModel/ProjectReader.cs +++ b/src/Microsoft.Extensions.ProjectModel/ProjectReader.cs @@ -139,6 +139,7 @@ namespace Microsoft.Extensions.ProjectModel project.ProjectUrl = rawProject.ValueAsString("projectUrl"); project.LicenseUrl = rawProject.ValueAsString("licenseUrl"); project.IconUrl = rawProject.ValueAsString("iconUrl"); + project.CompilerName = rawProject.ValueAsString("compilerName"); project.Authors = rawProject.ValueAsStringArray("authors") ?? Array.Empty(); project.Owners = rawProject.ValueAsStringArray("owners") ?? Array.Empty(); diff --git a/src/Microsoft.Extensions.ProjectModel/project.json b/src/Microsoft.Extensions.ProjectModel/project.json index c17c5cd2f..fc475de1e 100644 --- a/src/Microsoft.Extensions.ProjectModel/project.json +++ b/src/Microsoft.Extensions.ProjectModel/project.json @@ -1,7 +1,6 @@ { "version": "1.0.0-*", "description": "Types to model a .NET Project", - "dependencies": { "Microsoft.CSharp": "4.0.1-beta-23419", "System.Collections": "4.0.11-beta-23419",