Skip to content

Commit

Permalink
Merge branch 'master' into match-bang
Browse files Browse the repository at this point in the history
  • Loading branch information
jwosty committed Apr 10, 2018
2 parents a94123e + 8312643 commit aff0ec1
Show file tree
Hide file tree
Showing 182 changed files with 18,058 additions and 1,717 deletions.
2 changes: 1 addition & 1 deletion DotnetCLIToolsVersion.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.3-servicing-007056
2.1.300-preview3-008433
58 changes: 2 additions & 56 deletions FSharp.Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,60 +1,6 @@
<Project>

<Import Project="build\targets\PackageVersions.props" />
<Import Project="build\targets\CommonPackages.targets" />

<!-- directory locations -->
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<FSharpSourcesRoot>$(RepoRoot)src</FSharpSourcesRoot>
<ToolsRoot>$(RepoRoot)Tools</ToolsRoot>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ProtoOutputPath>$(RepoRoot)Proto\net40\bin</ProtoOutputPath>
</PropertyGroup>

<!-- nuget -->
<PropertyGroup>
<!-- default NuGet package restore location -->
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(NUGET_PACKAGES)</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(MSBuildThisFileDirectory)packages</NuGetPackageRoot>
<!-- ensure there is a trailing slash -->
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' == 'Windows_NT'">$(NuGetPackageRoot)\</NuGetPackageRoot>
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' != 'Windows_NT'">$(NuGetPackageRoot)/</NuGetPackageRoot>
</PropertyGroup>

<!-- signing -->
<PropertyGroup>
<SkipSigning>false</SkipSigning>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
<StrongNames>true</StrongNames>
<DelaySign>true</DelaySign>
</PropertyGroup>

<!-- mono -->
<PropertyGroup>
<MonoPackaging Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">true</MonoPackaging>
</PropertyGroup>

<!-- localization -->
<PropertyGroup>
<EnableXlfLocalization Condition="'$(Configuration)' == 'Proto' or '$(MonoPackaging)' == 'true'">false</EnableXlfLocalization>
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
</PropertyGroup>

<!-- other -->
<PropertyGroup>
<DebugType>portable</DebugType>
<MicroBuildAssemblyFileLanguage>fs</MicroBuildAssemblyFileLanguage>
<UseStandardResourceNames>false</UseStandardResourceNames>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<!-- SDK targets override -->
<PropertyGroup Condition="'$(Configuration)' != 'Proto'">
<ProtoFSharpTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</ProtoFSharpTargetsShim>
<FSharpTargetsShim Condition="Exists('$(ProtoFSharpTargetsShim)')">$(ProtoFSharpTargetsShim)</FSharpTargetsShim>
</PropertyGroup>
<Import Project="FSharpBuild.Directory.Build.props" Condition = " '$(FSharpTestCompilerVersion)' == '' "/>
<Import Project="FSharpTests.Directory.Build.props" Condition = " '$(FSharpTestCompilerVersion)' != '' "/>

</Project>
39 changes: 2 additions & 37 deletions FSharp.Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,41 +1,6 @@
<Project>

<PropertyGroup>
<XlfLanguages>en;$(XlfLanguages)</XlfLanguages>
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('netstandard')) or $(TargetFramework.StartsWith('netcoreapp'))">coreclr</TargetDotnetProfile>
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('net4'))">net40</TargetDotnetProfile>
<ActualOutputPath Condition="'$(Language)' != 'VB'">$(MSBuildProjectDirectory)\$(OutputPath)</ActualOutputPath>
<ActualOutputPath Condition="'$(Language)' == 'VB'">$(OutputPath)</ActualOutputPath>
<FinalOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\bin</FinalOutputPath>
<FinalIntermediateOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\obj</FinalIntermediateOutputPath>
</PropertyGroup>

<Target Name="HACK_CopyOutputsToTheProperLocation"
AfterTargets="AfterBuild"
Condition="'$(DisableOutputPathCopying)' != 'true'">
<!--
Ideally we'd set <OutputPath> to `$(Configuration)\[net40|coreclr]\bin`, but the calculation of `[net40|coreclr]`
depends on the `$(TargetFramework)` variable which is set by the individual project files, but by the time we have
that value (e.g., in this file) it's too late; some targets, particularly from the VsSDK have already used the
values of $(OutputPath)/$(OutDir).
The fix is to not set `$(Outputpath)` and simply copy stuff there after the fact.
-->

<ItemGroup>
<OutputFilesToCopy Include="$(ActualOutputPath)**" />
<IntermediateFilesToCopy Include="$(IntermediateOutputPath)\**" />
</ItemGroup>

<Message Text="Copying build artifacts to $(FinalOutputPath)" />
<MakeDir Directories="$(FinalOutputPath);$(FinalIntermediateOutputPath)" />
<Copy SourceFiles="@(OutputFilesToCopy)" DestinationFolder="$(FinalOutputPath)" />
<Copy SourceFiles="@(IntermediateFilesToCopy)" DestinationFolder="$(FinalIntermediateOutputPath)" />
</Target>

<Import Project="build\targets\AssemblyVersions.props" />
<Import Project="build\targets\ConvertPortablePdbs.targets" />
<Import Project="build\targets\GenerateAssemblyAttributes.targets" />
<Import Project="build\targets\GenerateInternalsVisibleTo.targets" />
<Import Project="FSharpBuild.Directory.Build.targets" Condition = " '$(FSharpTestCompilerVersion)' == '' "/>
<Import Project="FSharpTests.Directory.Build.targets" Condition = " '$(FSharpTestCompilerVersion)' != '' "/>

</Project>
60 changes: 60 additions & 0 deletions FSharpBuild.Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<Project>

<Import Project="build\targets\PackageVersions.props" />
<Import Project="build\targets\CommonPackages.targets" />

<!-- directory locations -->
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<FSharpSourcesRoot>$(RepoRoot)src</FSharpSourcesRoot>
<ToolsRoot>$(RepoRoot)Tools</ToolsRoot>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ProtoOutputPath>$(RepoRoot)Proto\net40\bin</ProtoOutputPath>
</PropertyGroup>

<!-- nuget -->
<PropertyGroup>
<!-- default NuGet package restore location -->
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(NUGET_PACKAGES)</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(MSBuildThisFileDirectory)packages</NuGetPackageRoot>
<!-- ensure there is a trailing slash -->
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' == 'Windows_NT'">$(NuGetPackageRoot)\</NuGetPackageRoot>
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' != 'Windows_NT'">$(NuGetPackageRoot)/</NuGetPackageRoot>
</PropertyGroup>

<!-- signing -->
<PropertyGroup>
<SkipSigning>false</SkipSigning>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
<StrongNames>true</StrongNames>
<DelaySign>true</DelaySign>
</PropertyGroup>

<!-- mono -->
<PropertyGroup>
<MonoPackaging Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">true</MonoPackaging>
</PropertyGroup>

<!-- localization -->
<PropertyGroup>
<EnableXlfLocalization Condition="'$(Configuration)' == 'Proto' or '$(MonoPackaging)' == 'true'">false</EnableXlfLocalization>
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
</PropertyGroup>

<!-- other -->
<PropertyGroup>
<DebugType>portable</DebugType>
<MicroBuildAssemblyFileLanguage>fs</MicroBuildAssemblyFileLanguage>
<UseStandardResourceNames>false</UseStandardResourceNames>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<!-- SDK targets override -->
<PropertyGroup Condition="'$(Configuration)' != 'Proto'">
<ProtoFSharpTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</ProtoFSharpTargetsShim>
<FSharpTargetsShim Condition="Exists('$(ProtoFSharpTargetsShim)')">$(ProtoFSharpTargetsShim)</FSharpTargetsShim>
</PropertyGroup>

</Project>
41 changes: 41 additions & 0 deletions FSharpBuild.Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Project>

<PropertyGroup>
<XlfLanguages>en;$(XlfLanguages)</XlfLanguages>
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('netstandard')) or $(TargetFramework.StartsWith('netcoreapp'))">coreclr</TargetDotnetProfile>
<TargetDotnetProfile Condition="$(TargetFramework.StartsWith('net4'))">net40</TargetDotnetProfile>
<ActualOutputPath Condition="'$(Language)' != 'VB'">$(MSBuildProjectDirectory)\$(OutputPath)</ActualOutputPath>
<ActualOutputPath Condition="'$(Language)' == 'VB'">$(OutputPath)</ActualOutputPath>
<FinalOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\bin</FinalOutputPath>
<FinalIntermediateOutputPath>$(RepoRoot)$(Configuration)\$(TargetDotnetProfile)\obj</FinalIntermediateOutputPath>
</PropertyGroup>

<Target Name="HACK_CopyOutputsToTheProperLocation"
AfterTargets="AfterBuild"
Condition="'$(DisableOutputPathCopying)' != 'true'">
<!--
Ideally we'd set <OutputPath> to `$(Configuration)\[net40|coreclr]\bin`, but the calculation of `[net40|coreclr]`
depends on the `$(TargetFramework)` variable which is set by the individual project files, but by the time we have
that value (e.g., in this file) it's too late; some targets, particularly from the VsSDK have already used the
values of $(OutputPath)/$(OutDir).
The fix is to not set `$(Outputpath)` and simply copy stuff there after the fact.
-->

<ItemGroup>
<OutputFilesToCopy Include="$(ActualOutputPath)**" />
<IntermediateFilesToCopy Include="$(IntermediateOutputPath)\**" />
</ItemGroup>

<Message Text="Copying build artifacts to $(FinalOutputPath)" />
<MakeDir Directories="$(FinalOutputPath);$(FinalIntermediateOutputPath)" />
<Copy SourceFiles="@(OutputFilesToCopy)" DestinationFolder="$(FinalOutputPath)" />
<Copy SourceFiles="@(IntermediateFilesToCopy)" DestinationFolder="$(FinalIntermediateOutputPath)" />
</Target>

<Import Project="build\targets\AssemblyVersions.props" />
<Import Project="build\targets\ConvertPortablePdbs.targets" />
<Import Project="build\targets\GenerateAssemblyAttributes.targets" />
<Import Project="build\targets\GenerateInternalsVisibleTo.targets" />

</Project>
36 changes: 36 additions & 0 deletions FSharpTests.Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<Project>

<!-- SDK targets override -->
<PropertyGroup Condition=" '$(FSharpTestCompilerVersion)' == 'net40' ">
<_FSharpCompilerPath>$(MSBuildThisFileDirectory)$(Configuration)/net40/bin</_FSharpCompilerPath>

<FscToolPath>$(_FSharpCompilerPath)</FscToolPath>
<FscToolExe>fsc.exe</FscToolExe>
<DotnetFscCompilerPath></DotnetFscCompilerPath>
</PropertyGroup>

<!-- SDK targets override -->
<PropertyGroup Condition=" '$(FSharpTestCompilerVersion)' == 'coreclr' ">
<_FSharpCompilerPath>$(MSBuildThisFileDirectory)$(Configuration)/coreclr/bin</_FSharpCompilerPath>

<FscToolPath>$(MSBuildThisFileDirectory)Tools/dotnet20</FscToolPath>
<FscToolExe Condition="'$(OS)' != 'Unix'">dotnet.exe</FscToolExe>
<FscToolExe Condition="'$(OS)' == 'Unix'">dotnet</FscToolExe>
<DotnetFscCompilerPath>$(_FSharpCompilerPath)/fsc.exe</DotnetFscCompilerPath>
</PropertyGroup>

<!-- SDK targets override -->
<PropertyGroup>
<FSharpPropsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim>$(_FSharpCompilerPath)/Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
</PropertyGroup>


<!-- We are running under netcore so even though we will use the fsc compiler we can't use the desktop version of the fsharp.build tasks -->
<PropertyGroup>
<FSharpBuildAssemblyFile Condition = " '$(DOTNET_HOST_PATH)' != '' ">$(MSBuildThisFileDirectory)$(Configuration)\coreclr\bin\FSharp.Build.dll</FSharpBuildAssemblyFile>
<FSharpBuildAssemblyFile Condition = " '$(DOTNET_HOST_PATH)' == '' ">$(MSBuildThisFileDirectory)$(Configuration)\net40\bin\FSharp.Build.dll</FSharpBuildAssemblyFile>
</PropertyGroup>

</Project>
23 changes: 23 additions & 0 deletions FSharpTests.Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<Project>

<Target Name="HACK_CopyFscDependenciesToReleaseDirectory"
BeforeTargets="CoreCompile"
Condition=" '$(FSharpTestCompilerVersion)' == 'coreclr' ">
<!--
When the build is done using correct netsdk projects this won't be necessary
-->

<PropertyGroup>
<DotnetSdkVersion>$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)DotnetCLIToolsVersion.txt').Trim())</DotnetSdkVersion>
</PropertyGroup>
<ItemGroup>
<CompilerFilesToCopy Include="$(MSBuildThisFileDirectory)Tools/dotnet20/sdk/$(DotnetSdkVersion)/FSharp/*.json" />
<CompilerFilesToCopy Include="$(MSBuildThisFileDirectory)Tools/dotnet20/sdk/$(DotnetSdkVersion)/FSharp/Microsoft.DiaSymReader.dll" />
<CompilerFilesToCopy Include="$(MSBuildThisFileDirectory)Tools/dotnet20/sdk/$(DotnetSdkVersion)/FSharp/Microsoft.DiaSymReader.PortablePdb.dll" />
</ItemGroup>

<Message Text="Copying compiler files to $(_FSharpCompilerPath)" />
<Copy SourceFiles="@(CompilerFilesToCopy)" DestinationFolder="$(_FSharpCompilerPath)" SkipUnchangedFiles = "true" />
</Target>

</Project>
2 changes: 1 addition & 1 deletion NuGet.Config
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<add key="myget.org roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="myget.org roslyn tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
<add key="myget.org roslyn" value="https://dotnet.myget.org/F/roslyn-for-vs-for-mac/api/v3/index.json" />
<add key="myget.org roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
<add key="myget.org symreader-converter" value="https://dotnet.myget.org/F/symreader-converter/api/v3/index.json" />
</packageSources>

Expand Down
1 change: 1 addition & 0 deletions PublishToBlob.proj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<Import Project="$(MSBuildThisFileDirectory)packages\$(FeedTasksPackage).$(FeedTasksPackageVersion)\build\$(FeedTasksPackage).targets" />

<ItemGroup>
<!-- this should pick up both *.nupkg and *.symbols.nupkg -->
<NuGetPackages Include="$(MSBuildThisFileDirectory)artifacts\Microsoft.FSharp.Compiler.*.nupkg" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion RoslynPackageVersion.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.0-vs-for-mac-62329-05
2.7.0-beta3-62720-08
12 changes: 9 additions & 3 deletions VisualFSharp.sln
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core.UnitTests", "tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}"
ProjectSection(SolutionItems) = preProject
vsintegration\readme.md = vsintegration\readme.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
EndProject
Expand Down Expand Up @@ -138,7 +141,9 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build.UnitTests", "t
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PEVerify", "tests\fsharpqa\testenv\src\PEVerify\PEVerify.csproj", "{B0689A4E-07D8-494D-A0C8-791CB1D74E54}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PatternMatcher", "vsintegration\src\PatternMatcher\PatternMatcher.csproj", "{18227628-DF90-4C47-AF3D-CC72D2EDD986}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.PatternMatcher", "vsintegration\src\FSharp.PatternMatcher\FSharp.PatternMatcher.csproj", "{18227628-DF90-4C47-AF3D-CC72D2EDD986}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Legacy", "Legacy", "{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -576,9 +581,9 @@ Global
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{65E0E82A-EACE-4787-8994-888674C2FE87} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
{FCFB214C-462E-42B3-91CA-FC557EFEE74F} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
{C9B1D3F5-4971-4F04-9C26-37E3AC809AB4} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
Expand Down Expand Up @@ -628,6 +633,7 @@ Global
{400FAB03-786E-40CC-85A8-04B0C2869B14} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{B0689A4E-07D8-494D-A0C8-791CB1D74E54} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{18227628-DF90-4C47-AF3D-CC72D2EDD986} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {48EDBBBE-C8EE-4E3C-8B19-97184A487B37}
Expand Down
Loading

0 comments on commit aff0ec1

Please sign in to comment.