From 2d36e419c705fd16f1bc6efcc143738dcfcc8f88 Mon Sep 17 00:00:00 2001 From: Andy Gocke Date: Sat, 3 Jun 2017 23:46:34 -0700 Subject: [PATCH] Create a NETCore-targeted Compilers NuGet package (#19190) Creates a new package, Microsoft.NETCore.Compilers, which contains CoreCLR-compatible versions of csc and vbc compiled against the netcoreapp1.1 shared framework. This NuGet package can be referenced by any C# or VB MSBuild project as long as the `dotnet` command line tools and the netcoreapp1.1 framework is installed. --- .gitattributes | 2 + .../Microsoft.NETCore.Compilers.props | 34 ++++++++++++++ build/NuGetAdditionalFiles/RunCsc | 5 +++ build/NuGetAdditionalFiles/RunCsc.cmd | 2 + build/NuGetAdditionalFiles/RunVbc | 5 +++ build/NuGetAdditionalFiles/RunVbc.cmd | 2 + .../VisualBasic/VbcCore/VbcCore.csproj | 1 - src/NuGet/BuildNuGets.csx | 7 ++- src/NuGet/Microsoft.CodeAnalysis.nuspec | 2 +- src/NuGet/Microsoft.NETCore.Compilers.nuspec | 45 +++++++++++++++++++ src/NuGet/Microsoft.Net.Compilers.nuspec | 4 +- src/NuGet/NuGet.proj | 8 ++++ .../PortableFacades/PortableFacades.swr | 2 +- 13 files changed, 110 insertions(+), 9 deletions(-) create mode 100644 build/NuGetAdditionalFiles/Microsoft.NETCore.Compilers.props create mode 100644 build/NuGetAdditionalFiles/RunCsc create mode 100644 build/NuGetAdditionalFiles/RunCsc.cmd create mode 100644 build/NuGetAdditionalFiles/RunVbc create mode 100644 build/NuGetAdditionalFiles/RunVbc.cmd create mode 100644 src/NuGet/Microsoft.NETCore.Compilers.nuspec diff --git a/.gitattributes b/.gitattributes index 70a51e2ddde..fedb5644457 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,6 +12,8 @@ # files must be hard-coded to be cloned with LF src/Compilers/CSharp/CscCore/csc text eol=lf src/Compilers/VisualBasic/VbcCore/vbc text eol=lf +build/NuGetAdditionalFiles/RunCsc text eol=lf +build/NuGetAdditionalFiles/RunVbc text eol=lf ############################################################################### # Set default behavior for command prompt diff. diff --git a/build/NuGetAdditionalFiles/Microsoft.NETCore.Compilers.props b/build/NuGetAdditionalFiles/Microsoft.NETCore.Compilers.props new file mode 100644 index 00000000000..f84aa16dcb1 --- /dev/null +++ b/build/NuGetAdditionalFiles/Microsoft.NETCore.Compilers.props @@ -0,0 +1,34 @@ + + + + + + + + $(MSBuildThisFileDirectory)..\tools\Microsoft.CSharp.Core.targets + $(MSBuildThisFileDirectory)..\tools\Microsoft.VisualBasic.Core.targets + + + + + + false + $(MSBuildThisFileDirectory)..\tools\bincore + RunCsc.cmd + RunCsc + $(MSBuildThisFileDirectory)..\tools\bincore + RunVbc.cmd + RunVbc + + + + + + + diff --git a/build/NuGetAdditionalFiles/RunCsc b/build/NuGetAdditionalFiles/RunCsc new file mode 100644 index 00000000000..d5419ae66d1 --- /dev/null +++ b/build/NuGetAdditionalFiles/RunCsc @@ -0,0 +1,5 @@ +#!/bin/sh + +THISDIR=$(dirname $0) + +dotnet $THISDIR/csc.dll "$@" diff --git a/build/NuGetAdditionalFiles/RunCsc.cmd b/build/NuGetAdditionalFiles/RunCsc.cmd new file mode 100644 index 00000000000..17ad8b6fb77 --- /dev/null +++ b/build/NuGetAdditionalFiles/RunCsc.cmd @@ -0,0 +1,2 @@ +echo off +dotnet %~dp0\csc.dll %* diff --git a/build/NuGetAdditionalFiles/RunVbc b/build/NuGetAdditionalFiles/RunVbc new file mode 100644 index 00000000000..5babac90c52 --- /dev/null +++ b/build/NuGetAdditionalFiles/RunVbc @@ -0,0 +1,5 @@ +#!/bin/sh + +THISDIR=$(dirname $0) + +dotnet $THISDIR/vbc.dll "$@" diff --git a/build/NuGetAdditionalFiles/RunVbc.cmd b/build/NuGetAdditionalFiles/RunVbc.cmd new file mode 100644 index 00000000000..e76259772fe --- /dev/null +++ b/build/NuGetAdditionalFiles/RunVbc.cmd @@ -0,0 +1,2 @@ +echo off +dotnet %~dp0\vbc.dll %* diff --git a/src/Compilers/VisualBasic/VbcCore/VbcCore.csproj b/src/Compilers/VisualBasic/VbcCore/VbcCore.csproj index 09d0536ac2f..70a2a276f57 100644 --- a/src/Compilers/VisualBasic/VbcCore/VbcCore.csproj +++ b/src/Compilers/VisualBasic/VbcCore/VbcCore.csproj @@ -5,7 +5,6 @@ AnyCPU AnyCPU - x64 {8CE3A581-2969-4864-A803-013E9D977C3A} Exe Microsoft.CodeAnalysis.VisualBasic.CommandLine diff --git a/src/NuGet/BuildNuGets.csx b/src/NuGet/BuildNuGets.csx index a5bb49699f2..89a40a3350c 100644 --- a/src/NuGet/BuildNuGets.csx +++ b/src/NuGet/BuildNuGets.csx @@ -76,8 +76,6 @@ var IsCoreBuild = File.Exists(Path.Combine(ToolsetPath, "corerun")); #endregion var NuGetAdditionalFilesPath = Path.Combine(SolutionRoot, "build/NuGetAdditionalFiles"); -var ThirdPartyNoticesPath = Path.Combine(NuGetAdditionalFilesPath, "ThirdPartyNotices.rtf"); -var NetCompilersPropsPath = Path.Combine(NuGetAdditionalFilesPath, "Microsoft.Net.Compilers.props"); string[] RedistPackageNames = { "Microsoft.CodeAnalysis", @@ -111,6 +109,7 @@ string[] NonRedistPackageNames = { "Microsoft.Net.Compilers", "Microsoft.Net.Compilers.netcore", "Microsoft.Net.CSharp.Interactive.netcore", + "Microsoft.NETCore.Compilers", "Microsoft.VisualStudio.IntegrationTest.Utilities", "Microsoft.VisualStudio.LanguageServices.Razor.RemoteClient", }; @@ -128,6 +127,7 @@ var PreReleaseOnlyPackages = new HashSet "Microsoft.CodeAnalysis.VisualBasic.Scripting", "Microsoft.Net.Compilers.netcore", "Microsoft.Net.CSharp.Interactive.netcore", + "Microsoft.NETCore.Compilers", "Microsoft.CodeAnalysis.Remote.Razor.ServiceHub", "Microsoft.CodeAnalysis.Remote.ServiceHub", "Microsoft.CodeAnalysis.Remote.Workspaces", @@ -204,9 +204,8 @@ int PackFiles(string[] nuspecFiles, string licenseUrl) { "authors", Authors }, { "projectURL", ProjectURL }, { "tags", Tags }, - { "thirdPartyNoticesPath", ThirdPartyNoticesPath }, - { "netCompilersPropsPath", NetCompilersPropsPath }, { "emptyDirPath", emptyDir }, + { "additionalFilesPath", NuGetAdditionalFilesPath } }; foreach (var dependencyVersion in dependencyVersions) diff --git a/src/NuGet/Microsoft.CodeAnalysis.nuspec b/src/NuGet/Microsoft.CodeAnalysis.nuspec index 1c04c02ca4e..ad9c455ad80 100644 --- a/src/NuGet/Microsoft.CodeAnalysis.nuspec +++ b/src/NuGet/Microsoft.CodeAnalysis.nuspec @@ -28,6 +28,6 @@ $tags$ - + diff --git a/src/NuGet/Microsoft.NETCore.Compilers.nuspec b/src/NuGet/Microsoft.NETCore.Compilers.nuspec new file mode 100644 index 00000000000..e1f9ca0c575 --- /dev/null +++ b/src/NuGet/Microsoft.NETCore.Compilers.nuspec @@ -0,0 +1,45 @@ + + + + Microsoft.NETCore.Compilers + + CoreCLR-compatible versions of the C# and VB compilers for use in MSBuild. + + en-US + true + $version$ + $authors$ + $licenseUrl$ + $projectUrl$ + $tags$ + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NuGet/Microsoft.Net.Compilers.nuspec b/src/NuGet/Microsoft.Net.Compilers.nuspec index 51952124a68..c6b6d02a71f 100644 --- a/src/NuGet/Microsoft.Net.Compilers.nuspec +++ b/src/NuGet/Microsoft.Net.Compilers.nuspec @@ -18,8 +18,8 @@ true - - + + diff --git a/src/NuGet/NuGet.proj b/src/NuGet/NuGet.proj index 2cf66880af2..65fa5208235 100644 --- a/src/NuGet/NuGet.proj +++ b/src/NuGet/NuGet.proj @@ -4,6 +4,14 @@ + + + + diff --git a/src/Setup/DevDivVsix/PortableFacades/PortableFacades.swr b/src/Setup/DevDivVsix/PortableFacades/PortableFacades.swr index cc4ac553186..6c599270e01 100644 --- a/src/Setup/DevDivVsix/PortableFacades/PortableFacades.swr +++ b/src/Setup/DevDivVsix/PortableFacades/PortableFacades.swr @@ -1,7 +1,7 @@ use vs package name=PortableFacades - version=1.3.0.0 + version=1.4.0.0 folder InstallDir:\Common7\IDE\PrivateAssemblies file source="$(NuGetPackageRoot)\System.AppContext\4.3.0\lib\net46\System.AppContext.dll" vs.file.ngen=yes -- GitLab