This commit is contained in:
Brett V. Forsgren 2018-11-27 10:10:43 -08:00
Родитель a7acf9f419
Коммит 61465f6f32
301 изменённых файлов: 3446 добавлений и 6950 удалений

5
.gitignore поставляемый
Просмотреть файл

@ -8,6 +8,9 @@
/debug
/Proto
# auto-generated during the build
global.json
# Patches that may have been generated by scripts.
# (These aren't generally useful to commit directly; if anything, they should be applied.)
scripts/*.patch
@ -82,6 +85,8 @@ lib/bootstrap/4.1/*.xml
lib/bootstrap/4.1/fsharpc
lib/bootstrap/4.1/fsharpi
lib/bootstrap/4.1/policy*
obj/
bin/
aclocal.m4
Debug
Release

Просмотреть файл

@ -6,9 +6,9 @@ jobs:
strategy:
maxParallel: 2
matrix:
release_default:
_command: ./mono/cibuild.sh
_args: release
dotnet_sdk:
_command: make
_args: Configuration=release
# disabled until it can be properly fixed
#release_fcs:
# _command: ./fcs/build.sh

Просмотреть файл

@ -259,7 +259,6 @@ If you are behind a proxy server, NuGet client tool must be configured to use it
Where you should set proper proxy address, user name and password.
#### Resources
The primary technical guide to the core compiler code is [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html). Please read and contribute to that guide.

Просмотреть файл

@ -1 +1 @@
2.1.403
2.1.500

Просмотреть файл

@ -1 +0,0 @@
1.0.0-preview3-003886

Просмотреть файл

@ -2,14 +2,14 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project>
<PropertyGroup Condition="'$(TargetFramework)' == 'net46'">
<PropertyGroup Condition="$(TargetFramework.StartsWith('net4'))">
<DefineConstants Condition="'$(MonoPackaging)' == 'true'">$(DefineConstants);CROSS_PLATFORM_COMPILER</DefineConstants>
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
<DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_LCIDFROMCODEPAGE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.6' or '$(TargetFramework)' == 'netcoreapp1.0'">
<PropertyGroup Condition="$(TargetFramework.StartsWith('netstandard')) OR $(TargetFramework.StartsWith('netcoreapp'))">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
<DefineConstants>$(DefineConstants);NETSTANDARD1_6</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_APP_DOMAINS</DefineConstants>
@ -19,13 +19,11 @@
<DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_CORHOST_SIGNER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_CRYPTO</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_EVENTWAITHANDLE_IDISPOSABLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_HEAPTERMINATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_LINKEDRESOURCES</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_LOADER_OPTIMIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SIMPLIFIED_LOADER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PDB_READER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PDB_WRITER</DefineConstants>
@ -42,16 +40,13 @@
<DefineConstants>$(DefineConstants);FX_NO_WEB_CLIENT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WIN_REGISTRY</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WINFORMS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_INDENTED_TEXT_WRITER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_REDUCED_EXCEPTIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_REDUCED_CONSOLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFEMIT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_CONSOLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_GLOBALIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_JITTRACKING_ISSUE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_INDENTED_TEXT_WRITER</DefineConstants>
<DefineConstants Condition=" '$(FX_NO_LOADER)' != 'true' ">$(DefineConstants);FX_RESHAPED_REFLECTION_CORECLR</DefineConstants>
<DefineConstants>$(DefineConstants);FSI_TODO_NETCORE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_MSBUILD</DefineConstants>
<OtherFlags>$(OtherFlags) --simpleresolution</OtherFlags>
</PropertyGroup>

Просмотреть файл

@ -1,6 +1,8 @@
<Project>
<Import Project="build\targets\AssemblyVersions.props" />
<Import Project="build\targets\PackageVersions.props" />
<Import Project="build\targets\GitHash.props" />
<Import Project="build\targets\CommonPackages.targets" />
<!-- directory locations -->
@ -9,8 +11,8 @@
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<FSharpSourcesRoot>$(RepoRoot)src</FSharpSourcesRoot>
<ToolsRoot>$(RepoRoot)Tools</ToolsRoot>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ProtoOutputPath>$(RepoRoot)Proto\net40\bin</ProtoOutputPath>
<ProtoOutputPath Condition="'$(OS)' != 'Unix'">$(RepoRoot)Proto\net40\bin</ProtoOutputPath>
<ProtoOutputPath Condition="'$(OS)' == 'Unix'">$(RepoRoot)Proto\coreclr\bin</ProtoOutputPath>
<ValueTupleImplicitPackageVersion>4.4.0</ValueTupleImplicitPackageVersion>
</PropertyGroup>
@ -18,10 +20,20 @@
<PropertyGroup>
<!-- default NuGet package restore location -->
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(NUGET_PACKAGES)</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == ''">$(MSBuildThisFileDirectory)packages</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' AND '$(OS)' == 'Windows_NT'">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' AND '$(OS)' != 'Windows_NT'">$(HOME)/.nuget/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>
<!-- ensure all NuGet packages come from the `$(NuGetPackageRoot)` variable -->
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
</PropertyGroup>
<!-- mono -->
<PropertyGroup Condition="'$(OS)' == 'Unix'">
<MonoPackaging Condition="$(TargetFramework.StartsWith('net4'))">true</MonoPackaging>
<FrameworkPathOverride Condition="'$(TargetFramework)' == 'net45'">/usr/lib/mono/4.5-api</FrameworkPathOverride>
<FrameworkPathOverride Condition="'$(TargetFramework)' == 'net46'">/usr/lib/mono/4.6-api</FrameworkPathOverride>
</PropertyGroup>
<!-- signing -->
@ -32,15 +44,15 @@
<StrongNames>true</StrongNames>
<DelaySign>true</DelaySign>
</PropertyGroup>
<!-- mono -->
<PropertyGroup>
<MonoPackaging Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">true</MonoPackaging>
<PropertyGroup Condition="'$(MonoPackaging)' == 'true'">
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\test.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants>
</PropertyGroup>
<!-- localization -->
<PropertyGroup>
<EnableXlfLocalization Condition="'$(Configuration)' == 'Proto' or '$(MonoPackaging)' == 'true'">false</EnableXlfLocalization>
<EnableXlfLocalization Condition="'$(EnableXlfLocalization)' == '' AND ('$(Configuration)' == 'Proto' OR '$(MonoPackaging)' == 'true')">false</EnableXlfLocalization>
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
</PropertyGroup>
@ -53,10 +65,11 @@
</PropertyGroup>
<!-- SDK targets override -->
<PropertyGroup Condition="'$(Configuration)' != 'Proto'">
<FSharpPropsShim Condition="Exists('$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props')">$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim Condition="Exists('$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets')">$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim Condition="Exists('$(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets')">$(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
<PropertyGroup Condition="'$(Configuration)' != 'Proto' AND Exists('$(ProtoOutputPath)')">
<FSharpTargetsPath>$(ProtoOutputPath)\Microsoft.FSharp.Targets</FSharpTargetsPath>
<FSharpPropsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
</PropertyGroup>
</Project>

Просмотреть файл

@ -1,18 +1,40 @@
<Project>
<Import Project="FSharp.Profiles.props" />
<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'">
<PropertyGroup Condition="'$(UseAssetTargetFallback)' == 'true'">
<!--
HACK: Necessary because the `netstandard1.6` version of FSharp.Compiler.Private requires a package that isn't
necessary for `net46`, but the package has a requirement on `net462`. The reference is excluded from the build
during `net46`, but for purposes of restore needs to be present.
-->
<AssetTargetFallback>$(AssetTargetFallback);net462</AssetTargetFallback>
</PropertyGroup>
<PropertyGroup>
<CompileDependsOn>$(CompileDependsOn);CopyAndSubstituteTextFiles</CompileDependsOn>
</PropertyGroup>
<Target Name="CopyAndSubstituteTextFiles"
Inputs="@(CopyAndSubstituteText)"
Outputs="@(CopyAndSubstituteText->'$(OutDir)%(TargetFilename)')">
<PropertyGroup>
<_ReplacementText>$([System.IO.File]::ReadAllText('%(CopyAndSubstituteText.FullPath)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern1)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern1)', '%(CopyAndSubstituteText.Replacement1)'))</_ReplacementText>
<_ReplacementText Condition="'%(CopyAndSubstituteText.Pattern2)' != ''">$(_ReplacementText.Replace('%(CopyAndSubstituteText.Pattern2)', '%(CopyAndSubstituteText.Replacement2)'))</_ReplacementText>
</PropertyGroup>
<WriteLinesToFile File="$(OutDir)%(CopyAndSubstituteText.TargetFilename)" Lines="$(_ReplacementText)" Overwrite="true" />
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(OutDir)%(CopyAndSubstituteText.TargetFilename)">
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
</Target>
<Target Name="ComputeFinalOutputPaths">
<!--
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
@ -22,6 +44,21 @@
The fix is to not set `$(Outputpath)` and simply copy stuff there after the fact.
-->
<PropertyGroup>
<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>
<Target Name="HACK_CopyOutputsToTheProperLocation"
AfterTargets="AfterBuild"
DependsOnTargets="ComputeFinalOutputPaths"
Condition="'$(DisableOutputPathCopying)' != 'true'">
<ItemGroup>
<OutputFilesToCopy Include="$(ActualOutputPath)**" />
<IntermediateFilesToCopy Include="$(IntermediateOutputPath)\**" />
@ -33,7 +70,6 @@
<Copy SourceFiles="@(IntermediateFilesToCopy)" DestinationFolder="$(FinalIntermediateOutputPath)\%(RecursiveDir)" />
</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" />

135
Makefile
Просмотреть файл

@ -1,101 +1,50 @@
include $(topsrcdir)mono/config.make
Configuration ?= release
DotNetVersion = `cat DotnetCLIToolsVersion.txt`
DotNetExe = "$(CURDIR)/Tools/dotnet20/dotnet"
.PHONY: restore build build-proto
all: proto restore build test
restore:
MONO_ENV_OPTIONS=$(monoopts) mono .nuget/NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile ./NuGet.Config
chmod u+x packages/FSharp.Compiler.Tools.4.1.27/tools/fsi.exe
chmod u+x packages/FsLexYacc.7.0.6/build/fslex.exe
chmod u+x packages/FsLexYacc.7.0.6/build/fsyacc.exe
tools:
$(CURDIR)/scripts/dotnet-install.sh --version $(DotNetVersion) --install-dir $(CURDIR)/Tools/dotnet20
# Make the proto using the bootstrap, then make the final compiler using the proto
# We call MAKE sequentially because we don't want build-final to explicitly depend on build-proto,
# as that causes a complete recompilation of both proto and final everytime you touch the
# compiler sources.
all:
@echo -----------
@echo prefix=$(prefix)
@echo topdir=$(topdir)
@echo monodir=$(monodir)
@echo monolibdir=$(monolibdir)
@echo monobindir=$(monobindir)
@echo -----------
$(MAKE) restore
$(MAKE) build-proto
$(MAKE) build
global.json: tools
echo { \"sdk\": { \"version\": \"$(DotNetVersion)\" } }>global.json
build-proto:
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=Proto /p:TargetDotnetProfile=$(TargetDotnetProfile) src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=Proto /p:TargetDotnetProfile=$(TargetDotnetProfile) src/fsharp/Fsc-proto/Fsc-proto.fsproj
proto: global.json
$(DotNetExe) build-server shutdown
$(DotNetExe) restore src/buildtools/buildtools.proj
$(DotNetExe) restore src/fsharp/FSharp.Build/FSharp.Build.fsproj
$(DotNetExe) restore src/fsharp/Fsc/Fsc.fsproj
$(DotNetExe) build src/buildtools/buildtools.proj -c Proto
$(DotNetExe) build src/fsharp/FSharp.Build/FSharp.Build.fsproj -f netstandard2.0 -c Proto
$(DotNetExe) build src/fsharp/Fsc/Fsc.fsproj -f netcoreapp2.1 -c Proto
# The main targets
build:
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/FSharp.Core/FSharp.Core.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/FSharp.Build/FSharp.Build.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/Fsc/Fsc.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/fsi/Fsi.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(MSBUILD) /p:Configuration=$(Configuration) /p:TargetDotnetProfile=net40 tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
mkdir -p $(Configuration)/fsharp30/net40/bin
mkdir -p $(Configuration)/fsharp31/net40/bin
mkdir -p $(Configuration)/fsharp40/net40/bin
cp -p packages/FSharp.Core.3.0.2/lib/net40/* $(Configuration)/fsharp30/net40/bin
cp -p packages/FSharp.Core.3.1.2.5/lib/net40/* $(Configuration)/fsharp31/net40/bin
cp -p packages/FSharp.Core.4.0.0.1/lib/net40/* $(Configuration)/fsharp40/net40/bin
mkdir -p $(Configuration)/portable7/bin
cp -p packages/FSharp.Core.4.1.17/lib/portable-net45+netcore45/* $(Configuration)/portable7/bin
mkdir -p $(Configuration)/portable47/bin
cp -p packages/FSharp.Core.4.1.17/lib/portable-net45+sl5+netcore45/* $(Configuration)/portable47/bin
mkdir -p $(Configuration)/portable78/bin
cp -p packages/FSharp.Core.4.1.17/lib/portable-net45+netcore45+wp8/* $(Configuration)/portable78/bin
mkdir -p $(Configuration)/portable259/bin
cp -p packages/FSharp.Core.4.1.17/lib/portable-net45+netcore45+wpa81+wp8/* $(Configuration)/portable259/bin
mkdir -p $(Configuration)/monoandroid10+monotouch10+xamarinios10/bin
cp -p packages/FSharp.Core.4.1.17/lib/portable-net45+monoandroid10+monotouch10+xamarinios10/* $(Configuration)/monoandroid10+monotouch10+xamarinios10/bin
mkdir -p $(Configuration)/xamarinmacmobile/bin
cp -p packages/FSharp.Core.4.1.17/lib/xamarinmac20/* $(Configuration)/xamarinmacmobile/bin
restore: global.json
$(DotNetExe) restore src/fsharp/FSharp.Core/FSharp.Core.fsproj
$(DotNetExe) restore src/fsharp/FSharp.Build/FSharp.Build.fsproj
$(DotNetExe) restore src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
$(DotNetExe) restore src/fsharp/Fsc/Fsc.fsproj
$(DotNetExe) restore src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
$(DotNetExe) restore src/fsharp/fsi/Fsi.fsproj
$(DotNetExe) restore tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
$(DotNetExe) restore tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
build: proto restore
$(DotNetExe) build-server shutdown
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Core/FSharp.Core.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard2.0 src/fsharp/FSharp.Build/FSharp.Build.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/Fsc/Fsc.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 src/fsharp/fsi/Fsi.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
test: build
$(DotNetExe) test -f netcoreapp2.0 -c $(Configuration) --no-restore --no-build tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Core.UnitTests.coreclr.trx"
$(DotNetExe) test -f netcoreapp2.0 -c $(Configuration) --no-restore --no-build tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Build.UnitTests.coreclr.trx"
install:
-rm -fr $(DESTDIR)$(monodir)/fsharp
-rm -fr $(DESTDIR)$(monodir)/Microsoft\ F#
-rm -fr $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#
-rm -fr $(DESTDIR)$(monodir)/msbuild/Microsoft/VisualStudio/v/FSharp
-rm -fr $(DESTDIR)$(monodir)/msbuild/Microsoft/VisualStudio/v11.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/msbuild/Microsoft/VisualStudio/v12.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/msbuild/Microsoft/VisualStudio/v14.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/msbuild/Microsoft/VisualStudio/v15.0/FSharp
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=net40 install
$(MAKE) -C mono/FSharp.Build install
$(MAKE) -C mono/FSharp.Compiler.Private install
$(MAKE) -C mono/Fsc install
$(MAKE) -C mono/FSharp.Compiler.Interactive.Settings install
$(MAKE) -C mono/FSharp.Compiler.Server.Shared install
$(MAKE) -C mono/fsi install
$(MAKE) -C mono/fsiAnyCpu install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=net40 FSharpCoreBackVersion=3.0 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=net40 FSharpCoreBackVersion=3.1 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=net40 FSharpCoreBackVersion=4.0 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=portable47 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=portable7 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=portable78 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=portable259 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=monoandroid10+monotouch10+xamarinios10 install
$(MAKE) -C mono/FSharp.Core TargetDotnetProfile=xamarinmacmobile install
echo "------------------------------ INSTALLED FILES --------------"
ls -xlR $(DESTDIR)$(monodir)/fsharp $(DESTDIR)$(monodir)/msbuild $(DESTDIR)$(monodir)/xbuild $(DESTDIR)$(monodir)/Reference\ Assemblies $(DESTDIR)$(monodir)/gac/FSharp* $(DESTDIR)$(monodir)/Microsoft* || true
dist:
-rm -r fsharp-$(DISTVERSION) fsharp-$(DISTVERSION).tar.bz2
mkdir -p fsharp-$(DISTVERSION)
(cd $(topdir) && git archive HEAD |(cd $(builddir)fsharp-$(DISTVERSION) && tar xf -))
list='$(EXTRA_DIST)'; for s in $$list; do \
(cp $(topdir)$$s fsharp-$(DISTVERSION)/$$s) \
done;
tar cvjf fsharp-$(DISTVERSION).tar.bz2 $(patsubst %,--exclude=%, $(NO_DIST)) fsharp-$(DISTVERSION)
du -b fsharp-$(DISTVERSION).tar.bz2
clean:
rm -rf $(CURDIR)/Proto
rm -rf $(CURDIR)/debug
rm -rf $(CURDIR)/release

Просмотреть файл

@ -1,22 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="artifacts" value="./artifacts" />
<add key="artifacts" value="./artifacts/4.2" />
<add key="myget.org fsharp-daily" value="https://www.myget.org/F/fsharp-daily/api/v3/index.json" />
<add key="myget.org roslyn-master-nightly" value="https://dotnet.myget.org/F/roslyn-master-nightly/api/v3/index.json" />
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="myget.org dotnet-buildtools" value="https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<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" 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>
</configuration>

Просмотреть файл

@ -1 +1 @@
2.9.0-beta8-63208-01
2.9.0-beta8-63208-01

Просмотреть файл

@ -1,165 +0,0 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<!-- +++++++++++++++++++++++ Project selection for building +++++++++++++++++++++++++++++++ -->
<ItemGroup Condition="'$(BUILD_NET40_FSHARP_CORE)'=='1'">
<ProjectsWithNet40 Include="src/fsharp/FSharp.Core/FSharp.Core.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(BUILD_NET40)'=='1'">
<ProjectsWithNet40 Include="src/fsharp/FSharp.Build/FSharp.Build.fsproj" />
<ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj" />
<ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj"/>
<ProjectsWithNet40 Include="src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj" />
<ProjectsWithNet40 Include="src/fsharp/Fsc/Fsc.fsproj" />
<ProjectsWithNet40 Include="src/fsharp/fsi/Fsi.fsproj" />
<ProjectsWithNet40 Include="src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj"/>
</ItemGroup>
<ItemGroup Condition="'$(BUILD_CORECLR)'=='1'">
<ProjectsWithCoreClr Include="src/fsharp/FSharp.Core/FSharp.Core.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/FSharp.Build/FSharp.Build.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/Fsc/Fsc.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/fsi/Fsi.fsproj" />
<ProjectsWithCoreClr Include="src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.nuget.proj" />
</ItemGroup>
<ItemGroup Condition="'$(BUILD_VS)'=='1'">
<ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-src-build.proj" />
<ProjectsWithNet40 Include="vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj" />
<ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-item-templates-build.proj" />
<ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-project-templates-build.proj" />
<ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-vsix-build.proj" />
</ItemGroup>
<PropertyGroup Condition="'$(BUILD_VS)'=='1'">
<RestoreVSIntegration>true</RestoreVSIntegration>
<RestoreLanguageServiceProfiling>true</RestoreLanguageServiceProfiling>
<RestoreVSIntegrationItemTemplates>true</RestoreVSIntegrationItemTemplates>
<RestoreVSIntegrationProjectTemplates>true</RestoreVSIntegrationProjectTemplates>
<RestoreVSIntegrationVsix>true</RestoreVSIntegrationVsix>
</PropertyGroup>
<ItemGroup Condition="'$(BUILD_FCS)'=='1'">
<ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj" />
<ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.MSBuild.v12/FSharp.Compiler.Service.MSBuild.v12.fsproj" />
<ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.ProjectCracker/FSharp.Compiler.Service.ProjectCracker.fsproj" />
<ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.ProjectCrackerTool/FSharp.Compiler.Service.ProjectCrackerTool.fsproj" />
<ProjectsToRestore Include="fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj" />
<ProjectsToRestore Include="fcs/FSharp.Compiler.Service.MSBuild.v12/FSharp.Compiler.Service.MSBuild.v12.fsproj" />
<ProjectsToRestore Include="fcs/FSharp.Compiler.Service.ProjectCracker/FSharp.Compiler.Service.ProjectCracker.fsproj" />
<ProjectsToRestore Include="fcs/FSharp.Compiler.Service.ProjectCrackerTool/FSharp.Compiler.Service.ProjectCrackerTool.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(BUILD_SETUP)'=='1'">
<SetupProjects Include="setup/fsharp-setup-build.proj" />
</ItemGroup>
<!-- +++++++++++++++++++++++ Project selection for testing +++++++++++++++++++++++++++++++ -->
<ItemGroup Condition="'$(TEST_NET40_COMPILERUNIT_SUITE)'=='1'" >
<ProjectsWithNet40 Include="tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj"/>
<ProjectsWithNet40 Include="tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj"/>
</ItemGroup>
<ItemGroup Condition="'$(TEST_CORECLR_COREUNIT_SUITE)'=='1'">
<ProjectsWithCoreClr Include="tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj"/>
<ProjectsWithCoreClr Include="tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj"/>
</ItemGroup>
<ItemGroup Condition="'$(TEST_NET40_COMPILERUNIT_SUITE)'=='1'" >
<ProjectsWithNet40 Include="tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj"/>
</ItemGroup>
<ItemGroup Condition="'$(TEST_NET40_FSHARP_SUITE)'=='1'" >
<ProjectsWithNet40 Include="tests/fsharp/FSharp.Tests.FSharpSuite.fsproj" />
<ProjectsWithNet40 Include="tests/fsharp/SDKTests/AllSdkTargetsTests.proj" />
</ItemGroup>
<ItemGroup Condition="'$(TEST_CORECLR_FSHARP_SUITE)'=='1'" >
<ProjectsWithCoreClr Include="tests/fsharp/FSharp.Tests.FSharpSuite.DrivingCoreCLR/FSharp.Tests.FSharpSuite.DrivingCoreCLR.fsproj" />
<ProjectsWithCoreClr Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" />
</ItemGroup>
<PropertyGroup Condition="'$(TEST_CORECLR_FSHARP_SUITE)'=='1'">
<RestorePEVerify>true</RestorePEVerify>
</PropertyGroup>
<ItemGroup Condition="'$(TEST_NET40_FSHARPQA_SUITE)'=='1' OR '$(TEST_NET40_FSHARP_SUITE)'=='1'" >
<ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/ILComparer/ILComparer.fsproj" />
<ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj" />
<ProjectsWithNet40 Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" />
</ItemGroup>
<PropertyGroup Condition="'$(TEST_NET40_FSHARPQA_SUITE)'=='1' OR '$(TEST_NET40_FSHARP_SUITE)'=='1'">
<RestorePEVerify>true</RestorePEVerify>
</PropertyGroup>
<ItemGroup Condition="'$(TEST_FCS)'=='1'" >
<ProjectsWithNet40 Include="fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj" />
<ProjectsWithCoreClr Include="tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj" />
<ProjectsToRestore Include="tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj" />
<ProjectsToRestore Include="fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(BUILD_VS)'=='1' OR '$(TEST_VS_IDEUNIT_SUITE)'=='1'">
<!-- always restore these so VisualFSharp.sln is usable -->
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-unittests-build.proj" />
</ItemGroup>
<ItemGroup Condition="'$(TEST_VS_IDEUNIT_SUITE)'=='1'">
<ProjectsWithNet40 Include="vsintegration/fsharp-vsintegration-unittests-build.proj" />
</ItemGroup>
<PropertyGroup Condition="'$(TEST_VS_IDEUNIT_SUITE)'=='1'">
<RestoreVSIntegrationUnitTests>true</RestoreVSIntegrationUnitTests>
</PropertyGroup>
<ItemGroup>
<ProjectsToRestore Include="tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj" Condition="'$(RestorePEVerify)' == 'true'" />
<ProjectsToRestore Include="vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj" Condition="'$(RestoreLanguageServiceProfiling)' == 'true'" />
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-src-build.proj" Condition="'$(RestoreVSIntegration)' == 'true'" />
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-unittests-build.proj" Condition="'$(RestoreVSIntegrationUnitTests)' == 'true'" />
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-item-templates-build.proj" Condition="'$(RestoreVSIntegrationItemTemplates)' == 'true'" />
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-project-templates-build.proj" Condition="'$(RestoreVSIntegrationProjectTemplates)' == 'true'" />
<ProjectsToRestore Include="vsintegration/fsharp-vsintegration-vsix-build.proj" Condition="'$(RestoreVSIntegrationVsix)' == 'true'" />
</ItemGroup>
<PropertyGroup>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<!-- +++++++++++++++++++++++ Targets +++++++++++++++++++++++++++++++ -->
<Target Name="Build">
<MSBuild Projects="@(ProjectsWithNet40)" Targets="Build" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(NugetProjects)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" />
<MSBuild Projects="@(SetupProjects)" Targets="Build" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Rebuild">
<MSBuild Projects="@(ProjectsWithNet40)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(ProjectsWithNet40PlusDefine)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);FSHARP_SUITE_DRIVES_CORECLR_TESTS=true;$(CustomProps)" />
<MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(NugetProjects)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" />
<MSBuild Projects="@(SetupProjects)" Targets="Rebuild" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(ProjectsWithNet40)" Targets="Clean" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(ProjectsWithNet40PlusDefine)" Targets="Clean" BuildInParallel="true" Properties="Configuration=$(Configuration);TargetDotnetProfile=net40;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);FSHARP_SUITE_DRIVES_CORECLR_TESTS=true;$(CustomProps)" />
<MSBuild Projects="@(ProjectsWithCoreClr)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);TargetDotnetProfile=coreclr;BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(NugetProjects)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);$(CustomProps)" />
<MSBuild Projects="@(SetupProjects)" Targets="Clean" BuildInParallel="false" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Restore">
<MSBuild Projects="@(ProjectsToRestore)" Targets="Restore" />
</Target>
</Project>

Просмотреть файл

@ -2,20 +2,12 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<ItemGroup>
<PackageProjects Include="src\fsharp\FSharp.Compiler.nuget\Microsoft.FSharp.Compiler.nuget.proj" Condition="'$(BUILD_CORECLR)'=='1'" />
<PackageProjects Include="src\fsharp\FSharp.Core.nuget\FSharp.Core.nuget.proj" Condition="'$(BUILD_NUGET)'=='1'" />
<PackageProjects Include="src\fsharp\FSharp.Compiler.nuget\Microsoft.FSharp.Compiler.csproj" Condition="'$(BUILD_CORECLR)'=='1'" />
<PackageProjects Include="src\fsharp\FSharp.Core\FSharp.Core.fsproj" Condition="'$(BUILD_NUGET)'=='1'" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(PackageProjects)" Targets="Build" BuildInParallel="true" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Rebuild">
<MSBuild Projects="@(PackageProjects)" Targets="Rebuild" BuildInParallel="true" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(PackageProjects)" Targets="Clean" BuildInParallel="true" Properties="Configuration=$(Configuration)" />
<Target Name="Pack">
<MSBuild Projects="@(PackageProjects)" Targets="Pack" BuildInParallel="true" Properties="Configuration=$(Configuration)" />
</Target>
</Project>

456
build.cmd
Просмотреть файл

@ -76,7 +76,6 @@ set TEST_CORECLR_FSHARP_SUITE=0
set TEST_VS_IDEUNIT_SUITE=0
set TEST_FCS=0
set TEST_END_2_END=0
set INCLUDE_TEST_SPEC_NUNIT=
set INCLUDE_TEST_TAGS=
set COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=0
@ -345,7 +344,6 @@ if /i "%ARG%" == "no-test" (
if /i "%ARG%" == "include" (
set /a counter=!counter!+1
if "!INCLUDE_TEST_SPEC_NUNIT!" == "" ( set INCLUDE_TEST_SPEC_NUNIT=cat == %ARG2% ) else (set INCLUDE_TEST_SPEC_NUNIT=cat == %ARG2% or !INCLUDE_TEST_SPEC_NUNIT! )
if "!INCLUDE_TEST_TAGS!" == "" ( set INCLUDE_TEST_TAGS=%ARG2% ) else (set INCLUDE_TEST_TAGS=%ARG2%;!INCLUDE_TEST_TAGS! )
)
@ -465,22 +463,6 @@ if /i "%TEST_NET40_FSHARP_SUITE" == "1" (
)
)
if /i "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
set NEEDS_DOTNET_CLI_TOOLS=1
)
if /i "%BUILD_CORECLR%" == "1" (
set NEEDS_DOTNET_CLI_TOOLS=1
)
if /i "%BUILD_FROMSOURCE%" == "1" (
set NEEDS_DOTNET_CLI_TOOLS=1
)
if /i "%BUILD_FCS%" == "1" (
set NEEDS_DOTNET_CLI_TOOLS=1
)
rem Decide if Proto need building
if NOT EXIST Proto\net40\bin\fsc.exe (
set BUILD_PROTO=1
@ -525,7 +507,6 @@ echo TEST_NET40_FSHARPQA_SUITE=%TEST_NET40_FSHARPQA_SUITE%
echo TEST_CORECLR_COREUNIT_SUITE=%TEST_CORECLR_COREUNIT_SUITE%
echo TEST_CORECLR_FSHARP_SUITE=%TEST_CORECLR_FSHARP_SUITE%
echo TEST_VS_IDEUNIT_SUITE=%TEST_VS_IDEUNIT_SUITE%
echo INCLUDE_TEST_SPEC_NUNIT=%INCLUDE_TEST_SPEC_NUNIT%
echo INCLUDE_TEST_TAGS=%INCLUDE_TEST_TAGS%
echo TEMP=%TEMP%
@ -562,24 +543,12 @@ set TargetFrameworkSDKToolsDirectory=%WindowsSDK_ExecutablePath_x64%
if not "%TargetFrameworkSDKToolsDirectory%" == "" ( goto have_TargetFrameworkSDKToolsDirectory )
set TargetFrameworkSDKToolsDirectory=%WindowsSDK_ExecutablePath_x86%
:have_TargetFrameworkSDKToolsDirectory
set BuildToolsPackage=Microsoft.VSSDK.BuildTools.15.6.170
if "%VSSDKInstall%"=="" (
set VSSDKInstall=%~dp0packages\%BuildToolsPackage%\tools\vssdk
)
if "%VSSDKToolsPath%"=="" (
set VSSDKToolsPath=%~dp0packages\%BuildToolsPackage%\tools\vssdk\bin
)
if "%VSSDKIncludes%"=="" (
set VSSDKIncludes=%~dp0packages\%BuildToolsPackage%\tools\vssdk\inc
)
:have_TargetFrameworkSDKToolsDirectory
if "%RestorePackages%"=="" (
set RestorePackages=true
)
@echo VSSDKInstall: %VSSDKInstall%
@echo VSSDKToolsPath: %VSSDKToolsPath%
@echo VSSDKIncludes: %VSSDKIncludes%
@echo TargetFrameworkSDKToolsDirectory: %TargetFrameworkSDKToolsDirectory%
@ -639,8 +608,26 @@ if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
echo ---------------- Done with prepare, starting package restore ----------------
set _nugetexe="%~dp0.nuget\NuGet.exe"
set _nugetconfig="%~dp0NuGet.Config"
:: create a global.json
set /p DOTNET_TOOLS_VERSION=<"%~dp0DotnetCLIToolsVersion.txt"
echo { "sdk": { "version": "%DOTNET_TOOLS_VERSION%" } }>global.json
:: Restore the Tools directory
call "%~dp0init-tools.cmd"
set _dotnetexe=%~dp0Tools\dotnet20\dotnet.exe
set path=%~dp0Tools\dotnet20\;%path%
if not "%PB_PackageVersionPropsUrl%" == "" (
echo ----------- do dependency uptake check -----------
set dependencyUptakeDir=%~dp0Tools\dependencyUptake
if not exist "!dependencyUptakeDir!" mkdir "!dependencyUptakeDir!"
:: download package version overrides
echo powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
if ERRORLEVEL 1 echo Error downloading package version properties && goto :failure
)
if "%RestorePackages%" == "true" (
if "%BUILD_FCS%" == "1" (
@ -649,106 +636,8 @@ if "%RestorePackages%" == "true" (
cd..
@if ERRORLEVEL 1 echo Error: Paket restore failed && goto :failure
)
%_ngenexe% install %_nugetexe% /nologo
set _nugetoptions=-PackagesDirectory packages -ConfigFile %_nugetconfig%
if not "%PB_RESTORESOURCE%" == "" (
set _nugetoptions=!_nugetoptions! -FallbackSource %PB_RESTORESOURCE%
)
echo _nugetoptions=!_nugetoptions!
%_nugetexe% restore packages.config !_nugetoptions!
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
if "%BUILD_SETUP%" == "1" (
%_nugetexe% restore setup\packages.config !_nugetoptions!
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
)
if not "%SIGN_TYPE%" == "" (
set signtoolnugetoptions=-PackagesDirectory "%USERPROFILE%\.nuget\packages" -ConfigFile %_nugetconfig%
if not "%PB_RESTORESOURCE%" == "" set signtoolnugetoptions=!signtoolnugetoptions! -FallbackSource %PB_RESTORESOURCE%
%_nugetexe% restore build\config\packages.config !signtoolnugetoptions!
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
)
set restore_fsharp_suite=0
if "%TEST_NET40_FSHARP_SUITE%" == "1" set restore_fsharp_suite=1
if "%TEST_CORECLR_FSHARP_SUITE%" == "1" set restore_fsharp_suite=1
if "!restore_fsharp_suite!" == "1" (
%_nugetexe% restore tests\fsharp\packages.config !_nugetoptions!
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
)
)
if "%NEEDS_DOTNET_CLI_TOOLS%" == "1" (
:: Restore the Tools directory
call "%~dp0init-tools.cmd"
)
set _dotnetcliexe=%~dp0Tools\dotnetcli\dotnet.exe
set _dotnet20exe=%~dp0Tools\dotnet20\dotnet.exe
set NUGET_PACKAGES=%~dp0packages
set path=%~dp0Tools\dotnet20\;%path%
echo ----------- Done with package restore, starting dependency uptake check -------------
if not "%PB_PackageVersionPropsUrl%" == "" (
set dependencyUptakeDir=%~dp0Tools\dependencyUptake
if not exist "!dependencyUptakeDir!" mkdir "!dependencyUptakeDir!"
:: download package version overrides
echo powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
if ERRORLEVEL 1 echo Error downloading package version properties && goto :failure
:: prepare dependency uptake files
echo %_msbuildexe% %msbuildflags% %~dp0build\projects\PrepareDependencyUptake.proj /t:Build
%_msbuildexe% %msbuildflags% %~dp0build\projects\PrepareDependencyUptake.proj /t:Build
if ERRORLEVEL 1 echo Error building dependency uptake files && goto :failure
:: restore dependencies
%_nugetexe% restore !dependencyUptakeDir!\packages.config -PackagesDirectory packages -ConfigFile !dependencyUptakeDir!\NuGet.config
if ERRORLEVEL 1 echo Error restoring dependency uptake packages && goto :failure
:: set DotNetPackageVersionPropsPath
set DotNetPackageVersionPropsPath=!dependencyUptakeDir!\PackageVersions.props
)
echo ----------- Done with package restore, starting dependency uptake check -------------
if not "%PB_PackageVersionPropsUrl%" == "" (
set dependencyUptakeDir=%~dp0Tools\dependencyUptake
if not exist "!dependencyUptakeDir!" mkdir "!dependencyUptakeDir!"
:: download package version overrides
echo powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
if ERRORLEVEL 1 echo Error downloading package version properties && goto :failure
:: prepare dependency uptake files
echo %_msbuildexe% %msbuildflags% %~dp0build\projects\PrepareDependencyUptake.proj /t:Build
%_msbuildexe% %msbuildflags% %~dp0build\projects\PrepareDependencyUptake.proj /t:Build
if ERRORLEVEL 1 echo Error building dependency uptake files && goto :failure
:: restore dependencies
%_nugetexe% restore !dependencyUptakeDir!\packages.config -PackagesDirectory packages -ConfigFile !dependencyUptakeDir!\NuGet.config
if ERRORLEVEL 1 echo Error restoring dependency uptake packages && goto :failure
)
set _dotnetcliexe=%~dp0Tools\dotnetcli\dotnet.exe
set _dotnet20exe=%~dp0Tools\dotnet20\dotnet.exe
set NUGET_PACKAGES=%~dp0Packages
set path=%~dp0Tools\dotnet20\;%path%
set _fsiexe="packages\FSharp.Compiler.Tools.4.1.27\tools\fsi.exe"
if not exist %_fsiexe% echo Error: Could not find %_fsiexe% && goto :failure
%_ngenexe% install %_fsiexe% /nologo
if not exist %_nugetexe% echo Error: Could not find %_nugetexe% && goto :failure
%_ngenexe% install %_nugetexe% /nologo
echo ---------------- Done with package restore, verify buildfrom source ---------------
if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
pushd src
@ -763,46 +652,26 @@ if not exist "!logdir!" mkdir "!logdir!"
rem Build Proto
if "%BUILD_PROTO%" == "1" (
rmdir /s /q Proto
rmdir /s /q Proto
if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
echo %_msbuildexe% proto.proj /t:Restore /bl:%~dp0Proto\proto.proj.restore.binlog
%_msbuildexe% proto.proj /t:Restore /bl:%~dp0Proto\proto.proj.restore.binlog
@if ERRORLEVEL 1 echo Error restoring proto failed && goto :failure
echo %_msbuildexe% %msbuildflags% src\fsharp-proto-build.proj /p:BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG% /p:Configuration=Proto /p:DisableLocalization=true /bl:%~dp0%BUILD_CONFIG%\logs\protobuild-coreclr.build.binlog
%_msbuildexe% %msbuildflags% src\fsharp-proto-build.proj /p:BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG% /p:Configuration=Proto /p:DisableLocalization=true /bl:%~dp0%BUILD_CONFIG%\logs\protobuild-coreclr.build.binlog
@if ERRORLEVEL 1 echo Error: compiler proto build failed && goto :failure
)
if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "0" (
echo %_ngenexe% install packages\FSharp.Compiler.Tools.4.1.27\tools\fsc.exe /nologo
%_ngenexe% install packages\FSharp.Compiler.Tools.4.1.27\tools\fsc.exe /nologo
echo %_msbuildexe% %msbuildflags% src\fsharp-proto-build.proj /p:BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG% /p:Configuration=Proto /p:DisableLocalization=true /bl:%~dp0%BUILD_CONFIG%\logs\protobuild-net40.build.binlog
%_msbuildexe% %msbuildflags% src\fsharp-proto-build.proj /p:BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG% /p:Configuration=Proto /p:DisableLocalization=true /bl:%~dp0%BUILD_CONFIG%\logs\protobuild-net40.build.binlog
@if ERRORLEVEL 1 echo Error: compiler proto build failed && goto :failure
)
echo %_ngenexe% install Proto\net40\bin\fsc.exe /nologo
%_ngenexe% install Proto\net40\bin\fsc.exe /nologo
@if ERRORLEVEL 1 echo Error: NGen of proto failed && goto :failure
)
if "%NEEDS_DOTNET_CLI_TOOLS%" == "1" (
echo ---------------- Done with proto, starting SDK restore ------------------------
:: Restore projects using dotnet CLI tool
echo %_dotnet20exe% restore -v:d build-everything.proj %msbuildflags% %BUILD_DIAG%
%_dotnet20exe% restore -v:d build-everything.proj %msbuildflags% %BUILD_DIAG%
echo %_msbuildexe% proto.proj /t:Build /bl:%~dp0Proto\proto.proj.build.binlog
%_msbuildexe% proto.proj /t:Build /bl:%~dp0Proto\proto.proj.build.binlog
@if ERRORLEVEL 1 echo Error building proto failed && goto :failure
)
echo ---------------- Done with SDK restore, starting build ------------------------
if "%BUILD_PHASE%" == "1" (
echo %_msbuildexe% %msbuildflags% build-everything.proj /t:Restore %BUILD_DIAG% /bl:%~dp0%BUILD_CONFIG%\net40\binmsbuild.build-everything.restore.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% build-everything.proj /t:Restore %BUILD_DIAG% /bl:%~dp0%BUILD_CONFIG%\net40\binmsbuild.build-everything.restore.%BUILD_CONFIG%.binlog
echo %_msbuildexe% fsharp.proj /t:Restore /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\fsharp.proj.restore.binlog
%_msbuildexe% fsharp.proj /t:Restore /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\fsharp.proj.restore.binlog
echo %_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-everything.build.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-everything.build.%BUILD_CONFIG%.binlog
echo %_msbuildexe% fsharp.proj /t:Build /p:Configuration=%BUILD_CONFIG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:%~dp0%BUILD_CONFIG%\fsharp.proj.build.binlog
%_msbuildexe% fsharp.proj /t:Build /p:Configuration=%BUILD_CONFIG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:%~dp0%BUILD_CONFIG%\fsharp.proj.build.binlog
@if ERRORLEVEL 1 echo Error build failed && goto :failure
)
@ -811,6 +680,7 @@ echo ---------------- Done with build, starting assembly version checks --------
set asmvercheckpath=%~dp0tests\fsharpqa\testenv\src\AssemblyVersionCheck
if "%BUILD_NET40%" == "1" (
echo #r @"%USERPROFILE%\.nuget\packages\Newtonsoft.Json\9.0.1\lib\net45\Newtonsoft.Json.dll">%asmvercheckpath%\assemblies.fsx
echo "%~dp0%BUILD_CONFIG%\net40\bin\fsi.exe" "%asmvercheckpath%\AssemblyVersionCheck.fsx" -- "%~dp0build\config\AssemblySignToolData.json" "%~dp0%BUILD_CONFIG%"
"%~dp0%BUILD_CONFIG%\net40\bin\fsi.exe" "%asmvercheckpath%\AssemblyVersionCheck.fsx" -- "%~dp0build\config\AssemblySignToolData.json" "%~dp0%BUILD_CONFIG%"
if ERRORLEVEL 1 echo Error verifying assembly versions and commit hashes. && goto :failure
@ -819,20 +689,24 @@ if "%BUILD_NET40%" == "1" (
echo ---------------- Done with assembly version checks, starting assembly signing ---------------
if not "%SIGN_TYPE%" == "" (
echo build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\AssemblySignToolData.json
call build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\AssemblySignToolData.json
echo %_msbuildexe% build\projects\Signing.proj /t:Restore
%_msbuildexe% build\projects\Signing.proj /t:Restore
echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\AssemblySignToolData.json
%_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\AssemblySignToolData.json
if ERRORLEVEL 1 echo Error running sign tool && goto :failure
)
echo ---------------- Done with assembly signing, start package creation ---------------
echo %_msbuildexe% %msbuildflags% build-nuget-packages.proj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-nuget-packages.build.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% build-nuget-packages.proj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-nuget-packages.build.%BUILD_CONFIG%.binlog
echo %_msbuildexe% %msbuildflags% build-nuget-packages.proj /p:Configuration=%BUILD_CONFIG% /t:Pack /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-nuget-packages.build.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% build-nuget-packages.proj /p:Configuration=%BUILD_CONFIG% /t:Pack /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.build-nuget-packages.build.%BUILD_CONFIG%.binlog
if ERRORLEVEL 1 echo Error building NuGet packages && goto :failure
if not "%SIGN_TYPE%" == "" (
echo build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\PackageSignToolData.json
call build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\PackageSignToolData.json
echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\PackageSignToolData.json
%_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\PackageSignToolData.json
if ERRORLEVEL 1 echo Error running sign tool && goto :failure
)
@ -843,16 +717,16 @@ if "%BUILD_SETUP%" == "1" (
)
if not "%SIGN_TYPE%" == "" (
echo build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\InsertionSignToolData.json
call build\scripts\run-signtool.cmd -MSBuild %_msbuildexe% -SignType %SIGN_TYPE% -Configuration %BUILD_CONFIG% -ConfigFile build\config\InsertionSignToolData.json
echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\InsertionSignToolData.json
%_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\InsertionSignToolData.json
if ERRORLEVEL 1 echo Error running sign tool && goto :failure
)
echo ---------------- Done with signing, building insertion files ---------------
if "%BUILD_SETUP%" == "1" (
echo %_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
echo %_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
%_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:%~dp0%BUILD_CONFIG%\logs\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
if ERRORLEVEL 1 echo Error building .vsmanproj && goto :failure
)
@ -868,16 +742,6 @@ if "%COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES%" == "1" (
copy /y src\fsharp\FSharp.Compiler.Private\obj\%BUILD_CONFIG%\net40\FSComp.* src\buildfromsource\FSharp.Compiler.Private
)
@echo set NUNITPATH=packages\NUnit.Console.3.0.0\tools\
set NUNITPATH=packages\NUnit.Console.3.0.0\tools\
if not exist %NUNITPATH% echo Error: Could not find %NUNITPATH% && goto :failure
@echo xcopy "%NUNITPATH%*.*" "%~dp0tests\fsharpqa\testenv\bin\nunit\*.*" /S /Q /Y
xcopy "%NUNITPATH%*.*" "%~dp0tests\fsharpqa\testenv\bin\nunit\*.*" /S /Q /Y
@echo xcopy "%~dp0tests\fsharpqa\testenv\src\nunit*.*" "%~dp0tests\fsharpqa\testenv\bin\nunit\*.*" /S /Q /Y
xcopy "%~dp0tests\fsharpqa\testenv\src\nunit*.*" "%~dp0tests\fsharpqa\testenv\bin\nunit\*.*" /S /Q /Y
set X86_PROGRAMFILES=%ProgramFiles%
if "%OSARCH%"=="AMD64" set X86_PROGRAMFILES=%ProgramFiles(x86)%
@ -911,16 +775,10 @@ if "%no_test%" == "1" goto :success
echo ---------------- Done with update, starting tests -----------------------
if NOT "%INCLUDE_TEST_SPEC_NUNIT%" == "" (
set WHERE_ARG_NUNIT=--where "%INCLUDE_TEST_SPEC_NUNIT%"
)
if NOT "%INCLUDE_TEST_TAGS%" == "" (
set TTAGS_ARG_RUNALL=-ttags:%INCLUDE_TEST_TAGS%
)
echo WHERE_ARG_NUNIT=!WHERE_ARG_NUNIT!
set NUNITPATH=%~dp0tests\fsharpqa\testenv\bin\nunit\
set NUNIT3_CONSOLE=%~dp0packages\NUnit.Console.3.0.0\tools\nunit3-console.exe
set link_exe=%~dp0tests\fsharpqa\testenv\bin\link\link.exe
if not exist "%link_exe%" (
echo Error: failed to find "%link_exe%" use nuget to restore the VisualCppTools package
@ -936,33 +794,19 @@ if not exist "%RESULTSDIR%" (mkdir "%RESULTSDIR%")
ECHO FSCBINPATH=%FSCBINPATH%
ECHO RESULTSDIR=%RESULTSDIR%
ECHO link_exe=%link_exe%
ECHO NUNIT3_CONSOLE=%NUNIT3_CONSOLE%
ECHO NUNITPATH=%NUNITPATH%
REM ---------------- test-net40-fsharp -----------------------
if "%TEST_NET40_FSHARP_SUITE%" == "1" (
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-net40-fsharp-results.xml
if "%CI%" == "1" (
set OUTPUTFILE=!RESULTSDIR!\test-net40-fsharp-output.log
set OUTPUTARG=--output:"!OUTPUTFILE!"
set ERRORFILE=!RESULTSDIR!\test-net40-fsharp-errors.log
set ERRORARG=--err:"!ERRORFILE!"
)
echo "!NUNIT3_CONSOLE!" --verbose "!FSCBINPATH!\FSharp.Tests.FSharpSuite.dll" --framework:V4.0 --work:"!FSCBINPATH!" !OUTPUTARG! !ERRORARG! --result:"!XMLFILE!;format=nunit3" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose "!FSCBINPATH!\FSharp.Tests.FSharpSuite.dll" --framework:V4.0 --work:"!FSCBINPATH!" !OUTPUTARG! !ERRORARG! --result:"!XMLFILE!;format=nunit3" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Tests.FSharpSuite.net40.trx
echo "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\net40\bin"
"%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\net40\bin"
if errorlevel 1 (
type "!ERRORFILE!"
echo -----------------------------------------------------------------
echo Error: Running tests net40-fsharp failed, see log above -- FAILED
echo -----------------------------------------------------------------
echo --------------------------------------------------------------
echo Error: Running tests net40-fsharp failed, see file `!LOGFILE!`
echo --------------------------------------------------------------
goto :failure
)
)
@ -971,25 +815,25 @@ REM ---------------- test-fcs -----------------------
if "%TEST_FCS%" == "1" (
del /q fcs\FSharp.Compiler.Service.Tests\TestResults\*.trx
echo "!_dotnet20exe!" test fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj -c Release --logger:trx
"!_dotnet20exe!" test fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj -c Release --logger:trx
set LOGFILE=%~dp0tests\TestResults\FSharp.Compiler.Service.Tests.net40.trx
echo "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
type fcs\FSharp.Compiler.Service.Tests\TestResults\*.trx
echo -----------------------------------------------------------------
echo Error: Running FCS tests failed. See XML logging output above. Search for 'outcome="Failed"' or 'Failed '
echo .
echo Error: Note that tests were run with both .NET Core and .NET Framework.
echo Error: Try running tests locally and using
echo .
echo dotnet test fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj -c Release --logger:trx
echo .
echo Error: and look for results in
echo .
echo fcs\FSharp.Compiler.Service.Tests\TestResults\*.trx
echo .
echo -----------------------------------------------------------------
echo --------------------------------------------------------------
echo Error: Running net40 fcs tests, see file `!LOGFILE!`
echo --------------------------------------------------------------
goto :failure
)
set LOGFILE=%~dp0tests\TestResults\FSharp.Compiler.Service.Tests.coreclr.trx
echo "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo --------------------------------------------------------------
echo Error: Running coreclr fcs tests, see file `!LOGFILE!`
echo --------------------------------------------------------------
goto :failure
)
)
@ -1020,11 +864,11 @@ set HOSTED_COMPILER=1
if "%TEST_NET40_FSHARPQA_SUITE%" == "1" (
set CSC_PIPE=%~dp0packages\Microsoft.Net.Compilers.2.7.0\tools\csc.exe
set CSC_PIPE=%USERPROFILE%\.nuget\packages\Microsoft.Net.Compilers\2.7.0\tools\csc.exe
set FSC=!FSCBINPATH!\fsc.exe
set FSCOREDLLPATH=!FSCBinPath!\FSharp.Core.dll
set PATH=!FSCBINPATH!;!PATH!
set perlexe=%~dp0packages\StrawberryPerl64.5.22.2.1\Tools\perl\bin\perl.exe
set perlexe=%USERPROFILE%\.nuget\packages\StrawberryPerl64\5.22.2.1\Tools\perl\bin\perl.exe
if not exist !perlexe! (echo Error: perl was not downloaded from check the packages directory: !perlexe! && goto :failure )
set OUTPUTFILE=test-net40-fsharpqa-results.log
@ -1051,54 +895,24 @@ REM ---------------- net40-compilerunit -----------------------
if "%TEST_NET40_COMPILERUNIT_SUITE%" == "1" (
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-net40-compilerunit-results.xml
if "%CI%" == "1" (
set OUTPUTFILE=!RESULTSDIR!\test-net40-compilerunit-output.log
set ERRORFILE=!RESULTSDIR!\test-net40-compilerunit-errors.log
set ERRORARG=--err:"!ERRORFILE!"
set OUTPUTARG=--output:"!OUTPUTFILE!"
)
set ERRORFILE=!RESULTSDIR!\test-net40-compilerunit-errors.log
echo "!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\..\..\net40\bin\FSharp.Compiler.UnitTests.dll" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\..\..\net40\bin\FSharp.Compiler.UnitTests.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Compiler.UnitTests.net40.trx
echo "%_dotnetexe%" test "%~dp0tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo -----------------------------------------------------------------
type "!OUTPUTFILE!"
echo -----------------------------------------------------------------
type "!ERRORFILE!"
echo -----------------------------------------------------------------
echo Error: Running tests net40-compilerunit failed, see logs above -- FAILED
echo Error: Running tests net40-compilerunit failed, see file `!LOGFILE!`
echo -----------------------------------------------------------------
goto :failure
)
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-net40-buildunit-results.xml
if "%CI%" == "1" (
set OUTPUTFILE=!RESULTSDIR!\test-net40-buildunit-output.log
set ERRORFILE=!RESULTSDIR!\test-net40-buildunit-errors.log
set ERRORARG=--err:"!ERRORFILE!"
set OUTPUTARG=--output:"!OUTPUTFILE!"
)
set ERRORFILE=!RESULTSDIR!\test-net40-buildunit-errors.log
echo "!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\FSharp.Build.UnitTests.dll" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\FSharp.Build.UnitTests.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Build.UnitTests.net40.trx
echo "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo -----------------------------------------------------------------
type "!OUTPUTFILE!"
echo -----------------------------------------------------------------
type "!ERRORFILE!"
echo -----------------------------------------------------------------
echo Error: Running tests net40-compilernit failed, see logs above -- FAILED
echo Error: Running tests net40-compilernit failed, see file `!LOGFILE!`
echo -----------------------------------------------------------------
goto :failure
)
@ -1108,28 +922,13 @@ REM ---------------- net40-coreunit -----------------------
if "%TEST_NET40_COREUNIT_SUITE%" == "1" (
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-net40-coreunit-results.xml
if "%CI%" == "1" (
set ERRORFILE=!RESULTSDIR!\test-net40-coreunit-errors.log
set OUTPUTFILE=!RESULTSDIR!\test-net40-coreunit-output.log
set ERRORARG=--err:"!ERRORFILE!"
set OUTPUTARG=--output:"!OUTPUTFILE!"
)
echo "!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\FSharp.Core.UnitTests.dll" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" "!FSCBINPATH!\FSharp.Core.UnitTests.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Core.UnitTests.net40.trx
echo "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo -----------------------------------------------------------------
type "!OUTPUTFILE!"
echo -----------------------------------------------------------------
type "!ERRORFILE!"
echo -----------------------------------------------------------------
echo Error: Running tests net40-coreunit failed, see logs above -- FAILED
echo Error: Running tests net40-coreunit failed, see file `!LOGFILE!`
echo -----------------------------------------------------------------
goto :failure
)
@ -1139,27 +938,25 @@ REM ---------------- coreclr-coreunit -----------------------
if "%TEST_CORECLR_COREUNIT_SUITE%" == "1" (
set XMLFILE=!RESULTSDIR!\test-coreclr-coreunit-results.xml
set OUTPUTFILE=!RESULTSDIR!\test-coreclr-coreunit-output.log
set ERRORFILE=!RESULTSDIR!\test-coreclr-coreunit-errors.log
echo "%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Build.UnitTests\FSharp.Build.UnitTests.dll" !WHERE_ARG_NUNIT!
"%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Build.UnitTests\FSharp.Build.UnitTests.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Build.UnitTests.coreclr.trx
echo "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo -----------------------------------------------------------------
echo Error: Running tests coreclr-coreunit failed, see logs above-- FAILED
echo Error: Running tests coreclr-compilernit failed, see file `!LOGFILE!`
echo -----------------------------------------------------------------
goto :failure
)
echo "%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Core.UnitTests\FSharp.Core.UnitTests.dll" !WHERE_ARG_NUNIT!
"%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Core.UnitTests\FSharp.Core.UnitTests.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Core.UnitTests.coreclr.trx
echo "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo -----------------------------------------------------------------
echo Error: Running tests coreclr-coreunit failed, see logs above-- FAILED
echo -----------------------------------------------------------------
echo ------------------------------------------------------------------
echo Error: Running tests coreclr-coreunit failed, see file `!LOGFILE!`
echo ------------------------------------------------------------------
goto :failure
)
)
@ -1167,22 +964,14 @@ if "%TEST_CORECLR_COREUNIT_SUITE%" == "1" (
REM ---------------- coreclr-fsharp -----------------------
if "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
set single_threaded=true
set permutations=FSC_CORECLR
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-coreclr-fsharp-results.xml
echo "%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll" !WHERE_ARG_NUNIT!
"%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll" !WHERE_ARG_NUNIT!
set LOGFILE=%~dp0tests\TestResults\FSharp.Tests.FSharpSuite.coreclr.trx
echo "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\coreclr\bin"
"%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\coreclr\bin"
if errorlevel 1 (
echo -----------------------------------------------------------------
echo Error: Running tests coreclr-fsharp failed, see logs above-- FAILED
echo -----------------------------------------------------------------
echo ----------------------------------------------------------------
echo Error: Running tests coreclr-fsharp failed, see file `!LOGFILE!`
echo ----------------------------------------------------------------
goto :failure
)
)
@ -1190,45 +979,24 @@ if "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
REM ---------------- vs-ideunit -----------------------
if "%TEST_VS_IDEUNIT_SUITE%" == "1" (
set OUTPUTARG=
set ERRORARG=
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-vs-ideunit-results.xml
if "%CI%" == "1" (
set OUTPUTFILE=!RESULTSDIR!\test-vs-ideunit-output.log
set ERRORFILE=!RESULTSDIR!\test-vs-ideunit-errors.log
set ERRORARG=--err:"!ERRORFILE!"
set OUTPUTARG=--output:"!OUTPUTFILE!"
)
rem Verify that VisualFSharp.UnitTests.dll can be loaded by nunit. Report load errors.
pushd !FSCBINPATH!
echo "!NUNIT3_CONSOLE!" --verbose --x86 --framework:V4.0 --work:"!FSCBINPATH!" --workers=1 --agents=1 --full "!FSCBINPATH!\GetTypesVSUnitTests.dll" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose --x86 --framework:V4.0 --work:"!FSCBINPATH!" --workers=1 --agents=1 --full "!FSCBINPATH!\GetTypesVSUnitTests.dll" !WHERE_ARG_NUNIT!
popd
set LOGFILE=%~dp0tests\TestResults\GetTypesVSUnitTests.net40.trx
echo "%_dotnetexe%" test "%~dp0vsintegration\tests\GetTypesVSUnitTests\GetTypesVSUnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
"%_dotnetexe%" test "%~dp0vsintegration\tests\GetTypesVSUnitTests\GetTypesVSUnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
if errorlevel 1 (
echo ---------------------------------------------------------------------------
echo Error: Running tests net40-gettypesvsunittests failed, see file `!LOGFILE!`
echo ---------------------------------------------------------------------------
goto :failure
)
pushd !FSCBINPATH!
echo "!NUNIT3_CONSOLE!" --verbose --x86 --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" --workers=1 --agents=1 --full "!FSCBINPATH!\VisualFSharp.UnitTests.dll" !WHERE_ARG_NUNIT!
"!NUNIT3_CONSOLE!" --verbose --x86 --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" --workers=1 --agents=1 --full "!FSCBINPATH!\VisualFSharp.UnitTests.dll" !WHERE_ARG_NUNIT!
popd
set LOGFILE=%~dp0tests\TestResults\VisualFSharp.UnitTests.net40.trx
echo "%_dotnetexe%" test "%~dp0vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\net40\bin"
"%_dotnetexe%" test "%~dp0vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!" -o "%~dp0%BUILD_CONFIG%\net40\bin"
if errorlevel 1 (
echo --------begin vs-ide-unit output ---------------------
type "!OUTPUTFILE!"
echo --------end vs-ide-unit output -----------------------
echo -------begin vs-ide-unit errors ----------------------
type "!ERRORFILE!"
echo -------end vs-ide-unit errors ------------------------
echo Error: Running tests vs-ideunit failed, see logs above, search for "Errors and Failures" -- FAILED
echo Command Line for running tests
echo "!NUNIT3_CONSOLE!" --verbose --x86 --framework:V4.0 --result:"!XMLFILE!;format=nunit3" !OUTPUTARG! !ERRORARG! --work:"!FSCBINPATH!" --workers=1 --agents=1 --full "!FSCBINPATH!\VisualFSharp.UnitTests.dll" !WHERE_ARG_NUNIT!
echo ----------------------------------------------------------------------------------------------------
echo ------------------------------------------------------------
echo Error: Running tests vs-ideunit failed, see file `!LOGFILE!`
echo ------------------------------------------------------------
goto :failure
)
)

Просмотреть файл

@ -1,5 +0,0 @@
<packages>
<package id="MicroBuild.Core" version="0.2.0" />
<package id="MicroBuild.Core.Sentinel" version="1.0.0" />
<package id="RoslynTools.SignTool" version="1.0.0-beta2-dev3" />
</packages>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -1,33 +0,0 @@
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DependencyUptakeDirectory>$(MSBuildThisFileDirectory)..\..\Tools\dependencyUptake</DependencyUptakeDirectory>
<PackageVersionsPropsFile>$(DependencyUptakeDirectory)\PackageVersions.props</PackageVersionsPropsFile>
<PackagesConfigFile>$(DependencyUptakeDirectory)\packages.config</PackagesConfigFile>
<NuGetConfigFile>$(DependencyUptakeDirectory)\NuGet.config</NuGetConfigFile>
</PropertyGroup>
<Import Project="$(PackageVersionsPropsFile)" />
<!-- Prepare a dummy packages.config -->
<ItemGroup>
<PackagesConfigLines Include="&lt;packages&gt;" />
<PackagesConfigLines Include="&lt;/packages&gt;" />
</ItemGroup>
<!-- Prepare a dummy NuGet.config -->
<ItemGroup>
<NuGetConfigLines Include="&lt;configuration&gt;" />
<NuGetConfigLines Include=" &lt;packageSources&gt;" />
<NuGetConfigLines Include=" &lt;clear /&gt;" />
<NuGetConfigLines Include=" &lt;add key=&quot;dependency-uptake&quot; value=&quot;$(PB_RestoreSource)&quot; /&gt;" />
<NuGetConfigLines Include=" &lt;/packageSources&gt;" />
<NuGetConfigLines Include="&lt;/configuration&gt;" />
</ItemGroup>
<Target Name="Build">
<WriteLinesToFile File="$(PackagesConfigFile)" Lines="@(PackagesConfigLines)" Overwrite="true" />
<WriteLinesToFile File="$(NuGetConfigFile)" Lines="@(NuGetConfigLines)" Overwrite="true" />
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- necessary for package restore -->
<TargetFramework>net46</TargetFramework>
<BinaryLocation>$(RepoRoot)$(Configuration)</BinaryLocation>
<SignToolExe>$(NuGetPackageRoot)RoslynTools.SignTool\$(RoslynToolsSignToolPackageVersion)\tools\SignTool.exe</SignToolExe>
<SignToolArgs>-msbuildPath "$(MSBuildBinPath)\msbuild.exe" -nugetPackagesPath "$(NuGetPackageRoot.TrimEnd('\'))" -config "$(ConfigFile)"</SignToolArgs>
<SignToolArgs Condition="'$(SignType)' == 'test'">-testSign $(SignToolArgs)</SignToolArgs>
<SignToolArgs Condition="'$(SignType)' == ''">-test $(SignToolArgs)</SignToolArgs>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="RoslynTools.SignTool" Version="$(RoslynToolsSignToolPackageVersion)" />
</ItemGroup>
<Target Name="ValidateArguments">
<Error Message="Configuration must be manually specified." Condition="'$(Configuration)' == ''" />
<Error Message="Configuration file must be manually specified." Condition="'$(ConfigFile)' == ''" />
</Target>
<Target Name="DoSigning"
DependsOnTargets="ValidateArguments">
<Exec Command='"$(SignToolExe)" $(SignToolArgs) "$(BinaryLocation)"' />
</Target>
</Project>

Просмотреть файл

@ -1,69 +0,0 @@
@echo off
:: Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
setlocal enableDelayedExpansion
set scriptdir=%~dp0
set MSBuild=
set SignType=
set ConfigFile=
::
:: Validate arguments
::
:parsearg
if "%1" == "" goto doneargs
set arg=%1
set argv=%2
if /i "%arg%" == "/?" goto help
if /i "%arg%" == "-h" goto help
if /i "%arg%" == "--help" goto help
if /i "%arg%" == "-MSBuild" (
set MSBuild=%argv%
shift
)
if /i "%arg%" == "-SignType" (
set SignType=%argv%
shift
)
if /i "%arg%" == "-Configuration" (
set Configuration=%argv%
shift
)
if /i "%arg%" == "-ConfigFile" (
set ConfigFile=%argv%
shift
)
shift
goto parsearg
:doneargs
if not defined MSBuild echo Location of MSBuild.exe not specified. && goto error
if not defined ConfigFile echo Configuration file not specified. && goto error
if not exist "%MSBuild%" echo The specified MSBuild.exe does not exist. && goto error
set NUGET_PACKAGES=%USERPROFILE%\.nuget\packages
set _signtoolexe=%NUGET_PACKAGES%\RoslynTools.SignTool\1.0.0-beta2-dev3\tools\SignTool.exe
set SignToolArgs=-msbuildPath %MSBuild% -config "%ConfigFile%" -nugetPackagesPath "%NUGET_PACKAGES%"
if /i "%SignType%" == "real" goto runsigntool
if /i "%SignType%" == "test" set SignToolArgs=%SignToolArgs% -testSign && goto runsigntool
set SignToolArgs=%SignToolArgs% -test
:runsigntool
if not exist "%_signtoolexe%" echo The signing tool could not be found at location '%_signtoolexe%' && goto error
set SignToolArgs=%SignToolArgs% "%scriptdir%..\..\%Configuration%"
echo "%_signtoolexe%" %SignToolArgs%
"%_signtoolexe%" %SignToolArgs%
if errorlevel 1 goto error
goto :EOF
:help
echo Usage: %0 -MSBuild path\to\msbuild.exe -ConfigFile path\to\SignToolData.json [-SignType ^<real/test^>]
goto :EOF
:error
echo Error running the sign tool.
exit /b 1

Просмотреть файл

@ -34,18 +34,10 @@
<VSGeneralVersion>$(VSMajorVersion).0</VSGeneralVersion>
<VSAssemblyVersion>$(VSMajorVersion).$(VSMinorVersion).0.0</VSAssemblyVersion>
<MicroBuildAssemblyVersion Condition="'$(MicroBuildAssemblyVersion)' == ''">$(FSCoreVersion)</MicroBuildAssemblyVersion>
<!-- certain delivered F# VS assemblies use a specific MicroBuildAssemblyVersion, otherwise use FSCoreVersion -->
<MicroBuildAssemblyVersion Condition="'$(UseFSharpProductVersion)' == 'true'">$(FSProductVersion)</MicroBuildAssemblyVersion>
<!-- certain delivered F# VS assemblies use a specific MicroBuildAssemblyVersion, otherwise use FSCoreVersion -->
<MicroBuildAssemblyVersion Condition="'$(UseVsMicroBuildAssemblyVersion)' == 'true'">$(VSAssemblyVersion)</MicroBuildAssemblyVersion>
<!--
Given $(BUILD_BUILDNUMBER) = '20161225.1'
Given $(MicroBuildAssemblyVersion) = '15.4.1.0'
Given $(VSAssemblyVersion) = '15.4.0.0'
Then $(BuildTimeStamp_Date) = 161225
Then $(BuildTimeStamp_Number) = 01

Просмотреть файл

@ -1,16 +1,21 @@
<Project>
<ItemGroup>
<PackageReference Include="Microsoft.DiaSymReader.Pdb2Pdb" Version="$(MicrosoftDiaSymReaderPdb2PdbPackageVersion)" />
<PackageReference Include="Pdb2Pdb" Version="$(Pdb2PdbPackageVersion)" />
</ItemGroup>
<Target Name="ConvertPortablePdbs"
AfterTargets="AfterBuild"
Condition="Exists('$(TargetPath)') AND ('$(DebugType)' == 'portable' OR '$(DebugType)' == 'embedded')">
DependsOnTargets="ComputeFinalOutputPaths"
Condition="'$(OS)' != 'Unix' AND
Exists('$(TargetPath)') AND
('$(DebugType)' == 'portable' OR '$(DebugType)' == 'embedded') AND
$(TargetFramework.StartsWith('net4')) AND
'$(Configuration)' != 'Proto'">
<PropertyGroup>
<ConvertedPdbsDirectory>$(FinalOutputPath)\ConvertedPdbs</ConvertedPdbsDirectory>
<PdbConverterExe>$(NuGetPackageRoot)Microsoft.DiaSymReader.Pdb2Pdb\$(MicrosoftDiaSymReaderPdb2PdbPackageVersion)\tools\Pdb2Pdb.exe</PdbConverterExe>
<PdbConverterArgs>"$(TargetPath)" /out "$(ConvertedPdbsDirectory)\$(TargetName).pdb" /verbose /srcsvrvar SRC_INDEX=public</PdbConverterArgs>
<PdbConverterExe>$(NuGetPackageRoot)Pdb2Pdb\$(Pdb2PdbPackageVersion)\tools\Pdb2Pdb.exe</PdbConverterExe>
<PdbConverterArgs>"$(TargetPath)" /out "$(ConvertedPdbsDirectory)\$(TargetName).pdb" /srcsvrvar SRC_INDEX=public</PdbConverterArgs>
</PropertyGroup>
<MakeDir Directories="$(ConvertedPdbsDirectory)" />

Просмотреть файл

@ -1,12 +1,18 @@
<Project>
<Import Project="GitHash.props" />
<PropertyGroup>
<!-- we generate our own custom assembly info -->
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<Target Name="GenerateAssemblyLevelAttributes"
BeforeTargets="CoreCompile">
<PropertyGroup>
<GeneratedFSharpAssemblyLevelAttributesFile>$(IntermediateOutputPath)$(MSBuildProjectName).AssemblyLevelAttributes$(DefaultLanguageSourceExtension)</GeneratedFSharpAssemblyLevelAttributesFile>
<!-- The compiler that currently ships with the SDK doesn't like the Git hash being embedded into the AssemblyInformationalVersionAttribute. -->
<NoWarn Condition="'$(Language)' == 'F#' AND '$(Configuration)' == 'Proto'">$(NoWarn);2003</NoWarn>
</PropertyGroup>
<WriteCodeFragment AssemblyAttributes="@(AssemblyLevelAttribute)"
@ -22,9 +28,17 @@
<Target Name="GenerateAssemblyFileVersion"
BeforeTargets="CoreCompile"
Condition="'$(Configuration)' != 'Proto'">
Condition="'$(Language)' != '' AND '$(GenerateAssemblyVersionAttribute)' != 'false'">
<PropertyGroup>
<MicroBuildAssemblyVersion Condition="'$(MicroBuildAssemblyVersion)' == ''">$(FSCoreVersion)</MicroBuildAssemblyVersion>
<!-- certain delivered F# VS assemblies use a specific MicroBuildAssemblyVersion, otherwise use FSCoreVersion -->
<MicroBuildAssemblyVersion Condition="'$(UseFSharpProductVersion)' == 'true'">$(FSProductVersion)</MicroBuildAssemblyVersion>
<!-- certain delivered F# VS assemblies use a specific MicroBuildAssemblyVersion, otherwise use FSCoreVersion -->
<MicroBuildAssemblyVersion Condition="'$(UseVsMicroBuildAssemblyVersion)' == 'true'">$(VSAssemblyVersion)</MicroBuildAssemblyVersion>
<GeneratedFSharpAssemblyVersionFile>$(IntermediateOutputPath)$(MSBuildProjectName).AssemblyVersion$(DefaultLanguageSourceExtension)</GeneratedFSharpAssemblyVersionFile>
</PropertyGroup>

Просмотреть файл

@ -32,13 +32,49 @@
DependsOnTargets="PrepareFSharpGenerateInternalsVisibleToFile;PrepareForBuild"
Condition="'@(InternalsVisibleTo)' != ''"
BeforeTargets="CoreCompile">
<PropertyGroup>
<!-- xbuild and older versions of msbuild don't have F# support for WriteCodeFragment -->
<_UseWriteCodeFragmentHack Condition="'$(OS)' == 'Unix' and '$(Language)' == 'F#'">true</_UseWriteCodeFragmentHack>
</PropertyGroup>
<!--
Using WriteCodeFragment
-->
<WriteCodeFragment AssemblyAttributes="@(_InternalsVisibleToAttribute)"
Language="$(Language)"
OutputFile="$(GeneratedFSharpInternalsVisibleToFile)">
OutputFile="$(GeneratedFSharpInternalsVisibleToFile)"
Condition="'$(_UseWriteCodeFragmentHack)' != 'true'">
<Output TaskParameter="OutputFile" ItemName="CompileBefore" Condition="'$(Language)' == 'F#'" />
<Output TaskParameter="OutputFile" ItemName="Compile" Condition="'$(Language)' != 'F#'" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</WriteCodeFragment>
<!--
Using WriteLinesToFile
-->
<Message Text="Using `WriteLinesToFile` hack; writing to $(GeneratedFSharpInternalsVisibleToFile)" Condition="'$(_UseWriteCodeFragmentHack)' == 'true'" />
<ItemGroup Condition="'$(_UseWriteCodeFragmentHack)' == 'true'">
<_LinesToWrite Include="// &lt;auto-generated&gt;" />
<_LinesToWrite Include="namespace FSharp" />
<_LinesToWrite Include="open System" />
<_LinesToWrite Include="open System.Reflection" />
<_LinesToWrite Include="[&lt;assembly: %(_InternalsVisibleToAttribute.Identity)(&quot;%(_InternalsVisibleToAttribute._Parameter1)&quot;)&gt;]" />
<_LinesToWrite Include="do()" />
<Compile Include="$(GeneratedFSharpInternalsVisibleToFile)" Condition="'$(Language)' != 'F#' or '$(AssemblyName)' == 'FSharp.Core'" />
<CompileBefore Include="$(GeneratedFSharpInternalsVisibleToFile)" Condition="'$(Language)' == 'F#' and '$(AssemblyName)' != 'FSharp.Core'" />
<FileWrites Include="$(GeneratedFSharpInternalsVisibleToFile)" />
</ItemGroup>
<WriteLinesToFile File="$(GeneratedFSharpInternalsVisibleToFile)"
Lines="@(_LinesToWrite)"
Overwrite="true"
Encoding="Unicode"
Condition="'$(_UseWriteCodeFragmentHack)' == 'true' and !Exists('$(GeneratedFSharpInternalsVisibleToFile)')" />
</Target>
</Project>

Просмотреть файл

@ -2,15 +2,49 @@
<PropertyGroup>
<!-- default package sources -->
<RestoreSources>
$(RestoreSources);
https://www.myget.org/F/fsharp-daily/api/v3/index.json;
https://dotnet.myget.org/F/roslyn-master-nightly/api/v3/index.json;
https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;
https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json;
https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json;
https://api.nuget.org/v3/index.json;
https://dotnet.myget.org/F/roslyn/api/v3/index.json;
https://dotnet.myget.org/F/symreader-converter/api/v3/index.json;
</RestoreSources>
<!-- synchronized build package sources -->
<RestoreSources Condition="'$(PB_RestoreSource)' != ''">$(PB_RestoreSource);$(RestoreSources)</RestoreSources>
<DotNetPackageVersionPropsPath>$(MSBuildThisFileDirectory)..\..\Tools\dependencyUptake\PackageVersions.props</DotNetPackageVersionPropsPath>
<!-- version numbers from files -->
<RoslynPackageVersion>$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\..\RoslynPackageVersion.txt').Trim())</RoslynPackageVersion>
<!-- System.* packages -->
<SystemCollectionsImmutablePackageVersion>1.5.0</SystemCollectionsImmutablePackageVersion>
<SystemConsolePackageVersion>4.3.0</SystemConsolePackageVersion>
<SystemDiagnosticsProcessPackageVersion>4.3.0</SystemDiagnosticsProcessPackageVersion>
<SystemDiagnosticsTraceSourcePackageVersion>4.3.0</SystemDiagnosticsTraceSourcePackageVersion>
<SystemIoCompressionPackageVersion>4.3.0</SystemIoCompressionPackageVersion>
<SystemRuntimeCachingPackageVersion>1.5.0</SystemRuntimeCachingPackageVersion>
<SystemLinqExpressionsPackageVersion>4.3.0</SystemLinqExpressionsPackageVersion>
<SystemLinqQueryablePackageVersion>4.3.0</SystemLinqQueryablePackageVersion>
<SystemMemoryPackageVersion>4.5.0</SystemMemoryPackageVersion>
<SystemNetRequestsPackageVersion>4.3.0</SystemNetRequestsPackageVersion>
<SystemReflectionEmitPackageVersion>4.3.0</SystemReflectionEmitPackageVersion>
<SystemReflectionMetadataPackageVersion>1.6.0</SystemReflectionMetadataPackageVersion>
<SystemValueTuplePackageVersion>4.3.0</SystemValueTuplePackageVersion>
<SystemReflectionTypeExtensionsPackageVersion>4.3.0</SystemReflectionTypeExtensionsPackageVersion>
<SystemRuntimeCachingPackageVersion>1.5.0</SystemRuntimeCachingPackageVersion>
<SystemRuntimePackageVersion>4.3.0</SystemRuntimePackageVersion>
<SystemRuntimeInteropServicesPackageVersion>4.3.0</SystemRuntimeInteropServicesPackageVersion>
<SystemRuntimeLoaderPackageVersion>4.3.0</SystemRuntimeLoaderPackageVersion>
<SystemSecurityCryptographyAlgorithmsPackageVersion>4.3.0</SystemSecurityCryptographyAlgorithmsPackageVersion>
<SystemSecurityPrincipalPackageVersion>4.3.0</SystemSecurityPrincipalPackageVersion>
<SystemThreadingTasksParallelPackageVersion>4.3.0</SystemThreadingTasksParallelPackageVersion>
<SystemThreadingThreadPackageVersion>4.3.0</SystemThreadingThreadPackageVersion>
<SystemThreadingThreadPoolPackageVersion>4.3.0</SystemThreadingThreadPoolPackageVersion>
<SystemValueTuplePackageVersion>4.4.0</SystemValueTuplePackageVersion>
<!-- Roslyn packages -->
<MicrosoftCodeAnalysisEditorFeaturesPackageVersion>$(RoslynPackageVersion)</MicrosoftCodeAnalysisEditorFeaturesPackageVersion>
@ -25,7 +59,6 @@
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildTasksCorePackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildTasksCorePackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftVisualFSharpMSBuild150PackageVersion>1.0.1</MicrosoftVisualFSharpMSBuild150PackageVersion>
<!-- Visual Studio packages -->
<EnvDTE80PackageVersion>8.0.1</EnvDTE80PackageVersion>
@ -74,13 +107,29 @@
<VSSDKVSLangProj11PackageVersion>11.0.4</VSSDKVSLangProj11PackageVersion>
<VSSDKVSHelpPackageVersion>7.0.4</VSSDKVSHelpPackageVersion>
<!-- setup packages -->
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
<MicroBuildCoreSentinelPackageVersion>1.0.0</MicroBuildCoreSentinelPackageVersion>
<MicroBuildPluginsSwixBuildPackageVersion>1.0.147</MicroBuildPluginsSwixBuildPackageVersion>
<MicrosoftPortableFSharpCorePackageVersion>10.1.0</MicrosoftPortableFSharpCorePackageVersion>
<MicrosoftVisualFSharpCoreRedistPackageVersion>1.0.0</MicrosoftVisualFSharpCoreRedistPackageVersion>
<!-- other packages -->
<FsCheckPackageVersion>3.0.0-alpha3</FsCheckPackageVersion>
<MicrosoftCompositionPackageVersion>1.0.30</MicrosoftCompositionPackageVersion>
<MicrosoftDiaSymReaderPdb2PdbPackageVersion>1.1.0-roslyn-62714-01</MicrosoftDiaSymReaderPdb2PdbPackageVersion>
<Pdb2PdbPackageVersion>1.1.0-beta1-63314-01</Pdb2PdbPackageVersion>
<MicrosoftMSXMLPackageVersion>8.0.0-alpha</MicrosoftMSXMLPackageVersion>
<MicrosoftNetCompilersPackageVersion>2.7.0</MicrosoftNetCompilersPackageVersion>
<MicrosoftNETCoreILDAsmPackageVersion>2.0.3</MicrosoftNETCoreILDAsmPackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.8.0</MicrosoftNETTestSdkPackageVersion>
<MicrosoftVisualFSharpTypeProvidersRedistPackageVersion>1.0.0</MicrosoftVisualFSharpTypeProvidersRedistPackageVersion>
<MicrosoftWin32RegistryPackageVersion>4.3.0</MicrosoftWin32RegistryPackageVersion>
<NewtonsoftJsonPackageVersion>9.0.1</NewtonsoftJsonPackageVersion>
<NUnitPackageVersion>3.5.0</NUnitPackageVersion>
<NUnitPackageVersion>3.10.1</NUnitPackageVersion>
<NUnit3TestAdapterPackageVersion>3.10.0</NUnit3TestAdapterPackageVersion>
<NUnitLitePackageVersion>3.10.1</NUnitLitePackageVersion>
<RoslynToolsSignToolPackageVersion>1.0.0-beta2-dev3</RoslynToolsSignToolPackageVersion>
<StrawberryPerl64PackageVersion>5.22.2.1</StrawberryPerl64PackageVersion>
<XliffTasksPackageVersion>0.2.0-beta-000081</XliffTasksPackageVersion>
</PropertyGroup>

23
fcs/Directory.Build.props Normal file
Просмотреть файл

@ -0,0 +1,23 @@
<Project>
<PropertyGroup>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' AND '$(OS)' == 'Windows_NT'">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' AND '$(OS)' != 'Windows_NT'">$(HOME)/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' == 'Windows_NT'">$(NuGetPackageRoot)\</NuGetPackageRoot>
<NuGetPackageRoot Condition="!HasTrailingSlash('$(NuGetPackageRoot)') AND '$(OS)' != 'Windows_NT'">$(NuGetPackageRoot)/</NuGetPackageRoot>
</PropertyGroup>
<!-- SDK targets override -->
<PropertyGroup>
<ProtoOutputPath>$(MSBuildThisFileDirectory)..\Proto\net40\bin</ProtoOutputPath>
</PropertyGroup>
<PropertyGroup Condition="Exists('$(ProtoOutputPath)')">
<!-- <FscToolPath>$(ProtoOutputPath)\</FscToolPath>
<FscToolExe>fsc.exe</FscToolExe>
<DotnetFscCompilerPath>- -nologo</DotnetFscCompilerPath> -->
<FSharpTargetsPath>$(ProtoOutputPath)\Microsoft.FSharp.Targets</FSharpTargetsPath>
<FSharpPropsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpOverridesTargetsShim>$(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets</FSharpOverridesTargetsShim>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<!-- empty to prevent directory crawling -->
</Project>

Просмотреть файл

@ -51,18 +51,8 @@
<HintPath>$(FSharpSourcesRoot)\..\fcs\dependencies\MSBuild.v12.0\Microsoft.Build.Tasks.v12.0.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- we build the nuget against FSHarp.Core 4.4.0.0 instead of our latest to allow use in wider range of F# tools -->
<Reference Include="FSharp.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Portable.FSharp.Core.$(FSharpCoreFrozenPortablePackageVersion)\lib\profiles\net40\FSharp.Core.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj">
<Name>FSharp.Compiler.Service</Name>
<Project>{2e4d67b4-522d-4cf7-97e4-ba940f0b18f3}</Project>
<Private>True</Private>
</ProjectReference>
<ProjectReference Include="..\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -24,10 +24,6 @@
<None Include="paket.references" />
<Reference Include="System.Runtime" />
<Reference Include="System.IO" />
<Reference Include="FSharp.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Portable.FSharp.Core.$(FSharpCoreFrozenPortablePackageVersion)\lib\profiles\net40\FSharp.Core.dll</HintPath>
<Private>false</Private>
</Reference>
<PackageReference Include="FSharp.Core" Version="4.5.2" />
<Reference Include="Microsoft.Build.Framework, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\fcs\dependencies\MSBuild.v12.0\Microsoft.Build.Framework.dll</HintPath>

Просмотреть файл

@ -3,6 +3,7 @@
<PropertyGroup>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<NoWarn>$(NoWarn);0067;1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Compile Include="../../../tests/service/data/CSharp_Analysis/CSharpClass.cs" />

Просмотреть файл

@ -4,6 +4,7 @@
</PropertyGroup>
<Import Project="..\fcs.props" />
<Import Project="..\netfx.props" />
<Import Project="..\..\src\buildtools\buildtools.targets" />
<PropertyGroup>
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
@ -16,7 +17,7 @@
<FsYaccOutputFolder Condition="'$(TargetFramework)' != ''">$(TargetFramework)\</FsYaccOutputFolder>
<OtherFlags>$(OtherFlags) /warnon:1182</OtherFlags>
<OtherFlags>$(OtherFlags) --times</OtherFlags>
<NoWarn>$(NoWarn);44;62;69;65;54;61;75;62;9;2003;</NoWarn>
<NoWarn>$(NoWarn);44;62;69;65;54;61;75;62;9;2003;NU5125</NoWarn>
<Tailcalls>true</Tailcalls>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
@ -46,12 +47,12 @@
<Compile Include="..\FSharp.Compiler.Service\AssemblyInfo.fs">
<Link>AssemblyInfo/AssemblyInfo.fs</Link>
</Compile>
<FsSrGen Include="$(FSharpSourcesRoot)\fsharp\FSComp.txt">
<EmbeddedText Include="$(FSharpSourcesRoot)\fsharp\FSComp.txt">
<Link>FSComp.txt</Link>
</FsSrGen>
<FsSrGen Include="$(FSharpSourcesRoot)\fsharp\fsi\FSIstrings.txt">
</EmbeddedText>
<EmbeddedText Include="$(FSharpSourcesRoot)\fsharp\fsi\FSIstrings.txt">
<Link>FSIstrings.txt</Link>
</FsSrGen>
</EmbeddedText>
<EmbeddedResource Include="$(FSharpSourcesRoot)/fsharp/FSStrings.resx">
<Link>FSStrings.resx</Link>
<LogicalName>FSStrings.resources</LogicalName>
@ -655,7 +656,5 @@
<HintPath>$(FSharpSourcesRoot)\..\packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
</ItemGroup>
<Import Project="$(FSharpSourcesRoot)\scripts\fssrgen.targets" Condition="'$(TargetFramework)' != ''" />
<Import Project="$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build\FsLexYacc.targets" Condition="'$(TargetFramework)' != '' AND Exists('$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build\FsLexYacc.targets')" />
<Target Name="GenerateCode" AfterTargets="Restore" BeforeTargets="BeforeBuild" DependsOnTargets="CallFsLex;CallFsYacc;ProcessFsSrGen" Condition="'$(TargetFramework)' != ''"></Target>
<Target Name="GenerateCode" AfterTargets="Restore" BeforeTargets="BeforeBuild" DependsOnTargets="CallFsLex;CallFsYacc" Condition="'$(TargetFramework)' != ''"></Target>
</Project>

Просмотреть файл

@ -14,6 +14,9 @@ if errorlevel 1 (
exit /b %errorlevel%
)
:: don't care if this fails
dotnet build-server shutdown >NUL 2>&1
packages\FAKE\tools\FAKE.exe build.fsx %*
if errorlevel 1 (
endlocal

Просмотреть файл

@ -75,15 +75,8 @@ Target "Clean" (fun _ ->
Target "Restore" (fun _ ->
// We assume a paket restore has already been run
runDotnet __SOURCE_DIRECTORY__ "restore ../src/buildtools/buildtools.proj -v n"
runDotnet __SOURCE_DIRECTORY__ "restore FSharp.Compiler.Service.sln -v n"
for p in [ "../packages.config" ] do
let rec executeProcess count =
let result = ExecProcess (fun info ->
info.FileName <- FullName @"./../.nuget/NuGet.exe"
info.WorkingDirectory <- FullName @"./.."
info.Arguments <- sprintf "restore %s -PackagesDirectory \"%s\" -ConfigFile \"%s\"" (FullName p) (FullName "./../packages") (FullName "./../NuGet.Config")) TimeSpan.MaxValue
if result <> 0 && count > 1 then executeProcess (count - 1) else result
(executeProcess 5) |> assertExitCodeZero
)
Target "BuildVersion" (fun _ ->
@ -91,7 +84,8 @@ Target "BuildVersion" (fun _ ->
)
Target "Build" (fun _ ->
runDotnet __SOURCE_DIRECTORY__ "build FSharp.Compiler.Service.sln -v n -c Release"
runDotnet __SOURCE_DIRECTORY__ "build ../src/buildtools/buildtools.proj -v n -c Proto"
runDotnet __SOURCE_DIRECTORY__ "build FSharp.Compiler.Service.sln -v n -c release"
)
Target "Test" (fun _ ->
@ -100,11 +94,11 @@ Target "Test" (fun _ ->
runDotnet __SOURCE_DIRECTORY__ "build ../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj -v n"
// Now run the tests
runDotnet __SOURCE_DIRECTORY__ "test FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj -v n -c Release"
runDotnet __SOURCE_DIRECTORY__ "test FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj -v n -c release"
)
Target "NuGet" (fun _ ->
runDotnet __SOURCE_DIRECTORY__ "pack FSharp.Compiler.Service.sln -v n -c Release"
runDotnet __SOURCE_DIRECTORY__ "pack FSharp.Compiler.Service.sln -v n -c release"
)
Target "GenerateDocsEn" (fun _ ->

134
fsharp.proj Normal file
Просмотреть файл

@ -0,0 +1,134 @@
<Project DefaultTargets="Build">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<!-- default values -->
<PropertyGroup>
<BuildCompiler Condition="'$(BuildCompiler)' == ''">true</BuildCompiler>
<BuildVS Condition="'$(BuildVS)' == ''">false</BuildVS>
<BuildFCS Condition="'$(BuildFCS)' == ''">false</BuildFCS>
<BuildSetup Condition="'$(BuildSetup)' == ''">false</BuildSetup>
<TestCompiler Condition="'$(TestCompiler)' == ''">false</TestCompiler>
<TestFSharpSuite Condition="'$(TestFSharpSuite)' == ''">false</TestFSharpSuite>
<TestFSharpQASuite Condition="'$(TestFSharpQASuite)' == ''">false</TestFSharpQASuite>
<TestFCS Condition="'$(TestFCS)' == ''">false</TestFCS>
<TestIDE Condition="'$(TestIDE)' == ''">false</TestIDE>
</PropertyGroup>
<!-- legacy environment variable control -->
<PropertyGroup>
<BuildCompiler Condition="'$(BUILD_NET40)' == '1'">true</BuildCompiler>
<BuildCompiler Condition="'$(BUILD_CORECLR)' == '1'">true</BuildCompiler>
<BuildVS Condition="'$(BUILD_VS)' == '1'">true</BuildVS>
<BuildFCS Condition="'$(BUILD_FCS)' == '1'">true</BuildFCS>
<BuildSetup Condition="'$(BUILD_SETUP)' == '1'">true</BuildSetup>
<TestCompiler Condition="'$(TEST_NET40_COMPILERUNIT_SUITE)' == '1'">true</TestCompiler>
<TestCompiler Condition="'$(TEST_CORECLR_COREUNIT_SUITE)' == '1'">true</TestCompiler>
<TestFSharpSuite Condition="'$(TEST_NET40_FSHARP_SUITE)' == '1'">true</TestFSharpSuite>
<TestFSharpSuite Condition="'$(TEST_CORECLR_FSHARP_SUITE)' == '1'">true</TestFSharpSuite>
<TestFSharpQASuite Condition="'$(TEST_NET40_FSHARPQA_SUITE)' == '1'">true</TestFSharpQASuite>
<TestFCS Condition="'$(TEST_FCS)' == '1'">true</TestFCS>
<TestIDE Condition="'$(TEST_VS_IDEUNIT_SUITE)' == '1'">true</TestIDE>
</PropertyGroup>
<Target Name="CollectProjects">
<!-- product binaries -->
<ItemGroup Condition="'$(BuildCompiler)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="src\fsharp\FSharp.Core\FSharp.Core.fsproj" />
<Projects Include="src\fsharp\FSharp.Build\FSharp.Build.fsproj" />
<Projects Include="src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj" />
<Projects Include="src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj" />
<Projects Include="src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj" />
<Projects Include="src\fsharp\Fsc\Fsc.fsproj" />
<Projects Include="src\fsharp\fsi\Fsi.fsproj" />
<Projects Include="src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj" />
<Projects Include="src\fsharp\FSharp.Compiler.nuget\Microsoft.FSharp.Compiler.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(BuildVS)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="vsintegration\fsharp-vsintegration-src-build.proj" />
<Projects Include="vsintegration\fsharp-vsintegration-unittests-build.proj" />
<Projects Include="vsintegration\Utils\LanguageServiceProfiling\LanguageServiceProfiling.fsproj" />
<Projects Include="vsintegration\fsharp-vsintegration-item-templates-build.proj" />
<Projects Include="vsintegration\fsharp-vsintegration-project-templates-build.proj" />
<Projects Include="vsintegration\fsharp-vsintegration-vsix-build.proj" />
</ItemGroup>
<ItemGroup Condition="'$(BuildFCS)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="$(MSBuildThisFileDirectory)fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj" />
<Projects Include="$(MSBuildThisFileDirectory)fcs\FSharp.Compiler.Service.MSBuild.v12\FSharp.Compiler.Service.MSBuild.v12.fsproj" />
<Projects Include="$(MSBuildThisFileDirectory)fcs\FSharp.Compiler.Service.ProjectCracker\FSharp.Compiler.Service.ProjectCracker.fsproj" />
<Projects Include="$(MSBuildThisFileDirectory)fcs\FSharp.Compiler.Service.ProjectCrackerTool\FSharp.Compiler.Service.ProjectCrackerTool.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(BuildSetup)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="setup\fsharp-setup-build.csproj" />
</ItemGroup>
<!-- test binaries -->
<ItemGroup Condition="'$(TestCompiler)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" />
<Projects Include="tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" />
<Projects Include="tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(TestFSharpSuite)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" />
<Projects Include="tests\fsharp\SDKTests\AllSdkTargetsTests.proj" />
<Projects Include="tests\fsharpqa\testenv\src\PEVerify\PEVerify.csproj" />
<Projects Include="src\fsharp\FSharp.Compiler.nuget\Testing.FSharp.Compiler.csproj" />
<NugetProjects Include="src\fsharp\FSharp.Compiler.nuget\Testing.FSharp.Compiler.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TestFSharpQASuite)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj" />
<Projects Include="tests\fsharpqa\testenv\src\HostedCompilerServer\HostedCompilerServer.fsproj" />
<Projects Include="tests\fsharpqa\testenv\src\PEVerify\PEVerify.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TestFCS)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" />
<Projects Include="tests\projects\Sample_NETCoreSDK_FSharp_Library_netstandard2_0\Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj" />
<Projects Include="tests\projects\Sample_NETCoreSDK_FSharp_Library_netstandard2_0\Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj" />
<Projects Include="fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(TestIDE)' == 'true' OR '$(_RunningRestore)' == 'true'">
<Projects Include="vsintegration\fsharp-vsintegration-unittests-build.proj" />
</ItemGroup>
</Target>
<Target Name="_BeforeRestore">
<PropertyGroup>
<_RunningRestore>true</_RunningRestore>
</PropertyGroup>
</Target>
<Target Name="Build" DependsOnTargets="CollectProjects">
<MSBuild Projects="@(Projects)" Targets="Build" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
<MSBuild Projects="@(NugetProjects)" Targets="Pack" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Rebuild" DependsOnTargets="CollectProjects">
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Clean" DependsOnTargets="CollectProjects">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Restore" DependsOnTargets="_BeforeRestore;CollectProjects">
<MSBuild Projects="@(Projects)" Targets="Restore" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
</Project>

Просмотреть файл

@ -1,112 +1,38 @@
@if not defined _echo @echo off
setlocal
@echo off
setlocal enabledelayedexpansion
set INIT_TOOLS_LOG=%~dp0init-tools.log
set PACKAGES_DIR=%~dp0packages\
set TOOLRUNTIME_DIR=%~dp0Tools
set /p DOTNET_TOOLS_VERSION=<"%~dp0DotnetCLIToolsVersion.txt"
set DOTNET_TOOLS_PATH=%~dp0Tools\dotnet20
set dotnetexe=%DOTNET_TOOLS_PATH%\dotnet.exe
set sdksentinel=%DOTNET_TOOLS_PATH%\sdk-version.txt
set DOTNET_PATH=%TOOLRUNTIME_DIR%\dotnetcli\
set DOTNET_CMD=%DOTNET_PATH%dotnet.exe
set DOTNET_TOOLS_PATH=%TOOLRUNTIME_DIR%\dotnet20\
set DOTNET_TOOLS_CMD=%DOTNET_TOOLS_PATH%dotnet.exe
if [%BUILDTOOLS_SOURCE%]==[] set BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json
set /P BUILDTOOLS_VERSION=< "%~dp0BuildToolsVersion.txt"
set BUILD_TOOLS_PATH=%PACKAGES_DIR%microsoft.dotnet.buildtools\%BUILDTOOLS_VERSION%\lib\
set PROJECT_JSON_PATH=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%
set PROJECT_JSON_FILE=%PROJECT_JSON_PATH%\project.json
set PROJECT_JSON_CONTENTS={ "dependencies": { "Microsoft.DotNet.BuildTools": "%BUILDTOOLS_VERSION%" , "Microsoft.DotNet.BuildTools.Coreclr": "1.0.4-prerelease"}, "frameworks": { "dnxcore50": { } } }
set BUILD_TOOLS_SEMAPHORE=%PROJECT_JSON_PATH%\init-tools.completed0
set TOOLS_INIT_RETURN_CODE=0
:: if force option is specified then clean the tool runtime and build tools package directory to force it to get recreated
if [%1]==[force] (
if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%"
if exist "%PACKAGES_DIR%microsoft.dotnet.buildtools" rmdir /S /Q "%PACKAGES_DIR%microsoft.dotnet.buildtools"
:: remove an old copy of the SDK
set cleanup_existing=
if exist "%sdksentinel%" (
set /p INSTALLED_SDK_VERSION=<"%sdksentinel%"
if not "%DOTNET_TOOLS_VERSION%" == "!INSTALLED_SDK_VERSION!" (
:: wrong version installed, clean it up
set cleanup_existing=1
) else (
echo Found up-to-date SDK.
)
) else (
set cleanup_existing=1
)
set /p DOTNET_TOOLS_VERSION=< "%~dp0DotnetCLIToolsVersion.txt"
if not exist "%DOTNET_TOOLS_PATH%\sdk\%DOTNET_TOOLS_VERSION%" (
:: dotnet cli doesn't yet exist, delete the semaphore
del "%BUILD_TOOLS_SEMAPHORE%" >NUL 2>&1
if "!cleanup_existing!" == "1" (
echo Removing stale SDK.
rmdir /s /q "%DOTNET_TOOLS_PATH%"
)
:: If sempahore exists do nothing
if exist "%BUILD_TOOLS_SEMAPHORE%" (
echo Tools are already initialized.
goto :DONE
:: download and install install SDK
if not exist "%dotnetexe%" (
echo powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_TOOLS_PATH% -Architecture x64 -Version %DOTNET_TOOLS_VERSION% -NoPath true; exit $LastExitCode;"
powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_TOOLS_PATH% -Architecture x64 -Version %DOTNET_TOOLS_VERSION% -NoPath true; exit $LastExitCode;"
if errorlevel 1 (
echo ERROR: Could not install dotnet cli correctly.
exit /b 1
)
echo %DOTNET_TOOLS_VERSION%>"%sdksentinel%"
)
:: Download Nuget.exe
if NOT exist "%PACKAGES_DIR%NuGet.exe" (
if NOT exist "%PACKAGES_DIR%" mkdir "%PACKAGES_DIR%"
powershell -NoProfile -ExecutionPolicy unrestricted -Command "$wc = New-Object System.Net.WebClient; $wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy; $wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials; $wc.DownloadFile('https://www.nuget.org/nuget.exe', '%PACKAGES_DIR%NuGet.exe')
)
if NOT exist "%PROJECT_JSON_PATH%" mkdir "%PROJECT_JSON_PATH%"
echo %PROJECT_JSON_CONTENTS% > "%PROJECT_JSON_FILE%"
echo Running %0 > "%INIT_TOOLS_LOG%"
if exist "%DOTNET_TOOLS_PATH%" goto :afterdotnettoolsrestore
echo Installing dotnet OLD VERSION OF THE cli...
echo ==========================================
echo This is temporary until we build using the new dotnetcli
echo The dotnet cli is a large file it may take a few minutes ...
echo powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_TOOLS_PATH% -Architecture x64 -Version %DOTNET_TOOLS_VERSION% -NoPath true; exit $LastExitCode;"
powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_TOOLS_PATH% -Architecture x64 -Version %DOTNET_TOOLS_VERSION% -NoPath true; exit $LastExitCode;"
if errorlevel 1 (
echo ERROR: Could not install dotnet cli correctly.
set TOOLS_INIT_RETURN_CODE=1
goto :DONE
)
echo "%DOTNET_TOOLS_VERSION% >> "%DOTNET_TOOLS_PATH%\sdk\%DOTNET_TOOLS_VERSION%"
:afterdotnettoolsrestore
set /p DOTNET_VERSION=< "%~dp0DotnetCLIVersion.txt"
if exist "%DOTNET_CMD%" goto :afterdotnetrestore
echo Installing dotnet cli...
echo The dotnet cli is a large file it may take a few minutes ...
echo powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_PATH% -Architecture x64 -Version %DOTNET_VERSION% -NoPath true; exit $LastExitCode;"
powershell -ExecutionPolicy unrestricted -NoProfile -Command ".\scripts\dotnet-install.ps1 -InstallDir %DOTNET_PATH% -Architecture x64 -Version %DOTNET_VERSION% -NoPath true; exit $LastExitCode;"
if errorlevel 1 (
echo ERROR: Could not install dotnet cli correctly.
set TOOLS_INIT_RETURN_CODE=1
goto :DONE
)
:afterdotnetrestore
if exist "%BUILD_TOOLS_PATH%" goto :afterbuildtoolsrestore
echo Restoring BuildTools version %BUILDTOOLS_VERSION%...
echo Running: "%DOTNET_CMD%" restore "%PROJECT_JSON_FILE%" --packages "%PACKAGES_DIR% " --source "%BUILDTOOLS_SOURCE%" >> "%INIT_TOOLS_LOG%"
call "%DOTNET_CMD%" restore "%PROJECT_JSON_FILE%" --packages "%PACKAGES_DIR% " --source "%BUILDTOOLS_SOURCE%" >> "%INIT_TOOLS_LOG%"
if NOT exist "%BUILD_TOOLS_PATH%init-tools.cmd" (
echo ERROR: Could not restore build tools correctly. See '%INIT_TOOLS_LOG%' for more details.
set TOOLS_INIT_RETURN_CODE=1
goto :DONE
)
:afterbuildtoolsrestore
echo Initializing BuildTools ...
echo Running: "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> "%INIT_TOOLS_LOG%"
call "%BUILD_TOOLS_PATH%init-tools.cmd" "%~dp0" "%DOTNET_CMD%" "%TOOLRUNTIME_DIR%" >> "%INIT_TOOLS_LOG%"
echo Updating CLI NuGet Frameworks map...
robocopy "%TOOLRUNTIME_DIR%" "%DOTNET_PATH%\sdk\%DOTNET_VERSION%" NuGet.Frameworks.dll /XO >> "%INIT_TOOLS_LOG%"
set UPDATE_CLI_ERRORLEVEL=%ERRORLEVEL%
if %UPDATE_CLI_ERRORLEVEL% GTR 1 (
echo ERROR: Failed to update Nuget for CLI {Error level %UPDATE_CLI_ERRORLEVEL%}. Please check '%INIT_TOOLS_LOG%' for more details. 1>&2
exit /b %UPDATE_CLI_ERRORLEVEL%
)
:: Create sempahore file
echo Done initializing tools.
echo Init-Tools.cmd completed for BuildTools Version: %BUILDTOOLS_VERSION% > "%BUILD_TOOLS_SEMAPHORE%"
:DONE
exit /b %TOOLS_INIT_RETURN_CODE%

Просмотреть файл

@ -1,7 +1,7 @@
#!/bin/bash
# note: expects to run from top directory
./mono/latest-mono-stable.sh
#./mono/latest-mono-stable.sh
make Configuration=$@
#sudo make install Configuration=$@
#./mono/test-mono.sh

Просмотреть файл

@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<!-- The packages to build and test the F# Compiler -->
<!-- Packages for the Visual F# IDE Tools should go in vsintegration\packages.config -->
<!-- CodeGen-->
<package id="FsLexYacc" version="7.0.6" targetFramework="net46" />
<!-- Build infrastructure-->
<package id="MicroBuild.Core" version="0.2.0" />
<package id="MicroBuild.Core.Sentinel" version="1.0.0" />
<!-- For the internal orchestrated build. This version should be kept in sync with `PublishToBlob.proj` -->
<package id="Microsoft.DotNet.Build.Tasks.Feed" version="2.1.0-prerelease-02419-02" />
<!-- Actual dependencies of FSharp.Compiler.dll and FSharp.Core.dll -->
<package id="System.Collections.Immutable" version="1.5.0" />
<package id="System.Reflection.Metadata" version="1.6.0" />
<package id="System.ValueTuple" version="4.3.0" />
<package id="System.ValueTuple" version="4.4.0" />
<package id="FSharp.Core" version="4.5.2"/>
<package id="Microsoft.Build" version="14.3.0" />
<package id="Microsoft.Build.Framework" version="14.3.0" />
<package id="Microsoft.Build.Utilities.Core" version="14.3.0" />
<package id="Microsoft.Build.Tasks.Core" version="14.3.0" />
<package id="Microsoft.Build" version="15.8.166" />
<package id="Microsoft.Build.Framework" version="15.8.166" />
<package id="Microsoft.Build.Utilities.Core" version="15.8.166" />
<package id="Microsoft.Build.Tasks.Core" version="15.8.166" />
<package id="System.IO.Compression" version="4.3.0" />
<!-- Testing -->
<package id="FsCheck" version="3.0.0-alpha3" />
<package id="NUnit" version="3.5.0" targetFramework="net45" />
<package id="NUnit.Console" version="3.0.0" targetFramework="net45" />
<package id="NUnitLite" version="3.5.0" targetFramework="net45" />
<package id="NUnit3TestAdapter" version="3.0.8-ctp-8" targetFramework="net45" />
<package id="BenchmarkDotNet" version="0.9.8"/>
<package id="BenchmarkDotNet.Diagnostics.Windows" version="0.9.8"/>
<package id="Newtonsoft.Json" version="9.0.1"/>
<package id="Microsoft.VisualFSharp.Type.Providers.Redist" version="1.0.0" />
<package id="Microsoft.FSharp.TupleSample" version="1.0.0-alpha-161121"/>
<package id="Microsoft.VSSDK.BuildTools" version="15.6.170" />
<!-- Testing Span -->
<package id="System.Memory" version="4.5.0-rc1" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.0-rc1" />
<package id="NETStandard.Library.NETFramework" version="2.0.0-preview2-25405-01" />
<!-- Annoyingly the build of FSharp.Compiler.Server.Shared references a Visual Studio-specific attribute -->
<!-- That DLL is logically part of the F# Compiler and F# Interactive but is shipped as part of the Visual F# IDE Tools -->
<package id="Microsoft.VisualStudio.Shell.Immutable.10.0" version="10.0.30319" targetFramework="net46" />
<package id="Microsoft.VisualStudio.Shell.15.0" version="15.0.26201" targetFramework="net46" />
<package id="Microsoft.VisualStudio.Shell.Framework" version="15.0.26201" targetFramework="net46" />
<!-- FSharp.Compiler.Tools is only used to get a working FSI.EXE to execute some scripts during the build -->
<!-- The LKG FSI.EXE requires MSBuild 15 to be installed, which is painful -->
<package id="FSharp.Compiler.Tools" version="4.1.27"/>
<!-- Frozen portable library versions of FSharp.Core.dll (simply a renamed fsharp.core.4.1.18-->
<package id="Microsoft.Portable.FSharp.Core" version="10.1.0"/>
<!-- FSharp.Core is used to get back versions of FSharp.Core -->
<package id="FSharp.Core" version="4.1.17"/>
<!-- FSharp.Core is used to get back versions of FSharp.Core -->
<package id="FSharp.Core" version="4.0.0.1"/>
<!-- FSharp.Core is used to get back versions of FSharp.Core -->
<package id="FSharp.Core" version="3.1.2.5"/>
<!-- FSharp.Core is used to get back versions of FSharp.Core -->
<package id="FSharp.Core" version="3.0.2"/>
<!-- FSharp.Data is used in some of the scripts ued for the coreclr build -->
<package id="FSharp.Data" version="2.2.5" />
<!-- FSharp.Configuration is one type provider used in testing -->
<package id="FSharp.Configuration" version="1.3.0" />
<!-- Perl is used for the fsharpqa test suite -->
<package id="StrawberryPerl64" version="5.22.2.1" />
<!-- Xliff localization -->
<package id="XliffTasks" version="0.2.0-beta-000081" />
</packages>

30
proto.proj Normal file
Просмотреть файл

@ -0,0 +1,30 @@
<Project DefaultTargets="Build">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Proto</Configuration>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<ItemGroup>
<Projects Include="src\buildtools\buildtools.proj" />
<Projects Include="src\fsharp\FSharp.Build\FSharp.Build.fsproj" />
<Projects Include="src\fsharp\Fsc\Fsc.fsproj" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(Projects)" Targets="Build" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Rebuild">
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
<Target Name="Restore">
<MSBuild Projects="@(Projects)" Targets="Restore" Properties="Configuration=$(Configuration);BUILD_PUBLICSIGN=$(BUILD_PUBLICSIGN);$(CustomProps)" />
</Target>
</Project>

532
scripts/dotnet-install.sh поставляемый
Просмотреть файл

@ -22,7 +22,7 @@ exec 3>&1
# Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors.
# See if stdout is a terminal
if [ -t 1 ]; then
if [ -t 1 ] && command -v tput > /dev/null; then
# see if it supports colors
ncolors=$(tput colors)
if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then
@ -39,6 +39,10 @@ if [ -t 1 ]; then
fi
fi
say_warning() {
printf "%b\n" "${yellow:-}dotnet_install: Warning: $1${normal:-}"
}
say_err() {
printf "%b\n" "${red:-}dotnet_install: Error: $1${normal:-}" >&2
}
@ -55,7 +59,10 @@ say_verbose() {
fi
}
get_os_download_name_from_platform() {
# This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets,
# then and only then should the Linux distribution appear in this list.
# Adding a Linux distribution to this list does not imply distribution-specific support.
get_legacy_os_name_from_platform() {
eval $invocation
platform="$1"
@ -68,6 +75,10 @@ get_os_download_name_from_platform() {
echo "debian"
return 0
;;
"debian.9")
echo "debian.9"
return 0
;;
"fedora.23")
echo "fedora.23"
return 0
@ -76,6 +87,14 @@ get_os_download_name_from_platform() {
echo "fedora.24"
return 0
;;
"fedora.27")
echo "fedora.27"
return 0
;;
"fedora.28")
echo "fedora.28"
return 0
;;
"opensuse.13.2")
echo "opensuse.13.2"
return 0
@ -84,6 +103,10 @@ get_os_download_name_from_platform() {
echo "opensuse.42.1"
return 0
;;
"opensuse.42.3")
echo "opensuse.42.3"
return 0
;;
"rhel.7"*)
echo "rhel"
return 0
@ -100,6 +123,10 @@ get_os_download_name_from_platform() {
echo "ubuntu.16.10"
return 0
;;
"ubuntu.18.04")
echo "ubuntu.18.04"
return 0
;;
"alpine.3.4.3")
echo "alpine"
return 0
@ -108,6 +135,30 @@ get_os_download_name_from_platform() {
return 1
}
get_linux_platform_name() {
eval $invocation
if [ -n "$runtime_id" ]; then
echo "${runtime_id%-*}"
return 0
else
if [ -e /etc/os-release ]; then
. /etc/os-release
echo "$ID.$VERSION_ID"
return 0
elif [ -e /etc/redhat-release ]; then
local redhatRelease=$(</etc/redhat-release)
if [[ $redhatRelease == "CentOS release 6."* || $redhatRelease == "Red Hat Enterprise Linux Server release 6."* ]]; then
echo "rhel.6"
return 0
fi
fi
fi
say_verbose "Linux specific platform name and version could not be detected: UName = $uname"
return 1
}
get_current_os_name() {
eval $invocation
@ -115,18 +166,27 @@ get_current_os_name() {
if [ "$uname" = "Darwin" ]; then
echo "osx"
return 0
else
if [ "$uname" = "Linux" ]; then
elif [ "$uname" = "Linux" ]; then
local linux_platform_name
linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; }
if [[ $linux_platform_name == "rhel.6" ]]; then
echo $linux_platform_name
return 0
elif [[ $linux_platform_name == alpine* ]]; then
echo "linux-musl"
return 0
else
echo "linux"
return 0
fi
fi
say_err "OS name could not be detected: $ID.$VERSION_ID"
say_err "OS name could not be detected: UName = $uname"
return 1
}
get_distro_specific_os_name() {
get_legacy_os_name() {
eval $invocation
local uname=$(uname)
@ -134,20 +194,20 @@ get_distro_specific_os_name() {
echo "osx"
return 0
elif [ -n "$runtime_id" ]; then
echo $(get_os_download_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}")
echo $(get_legacy_os_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}")
return 0
else
if [ -e /etc/os-release ]; then
. /etc/os-release
os=$(get_os_download_name_from_platform "$ID.$VERSION_ID" || echo "")
os=$(get_legacy_os_name_from_platform "$ID.$VERSION_ID" || echo "")
if [ -n "$os" ]; then
echo "$os"
return 0
fi
fi
fi
say_verbose "Distribution specific OS name and version could not be detected: $ID.$VERSION_ID"
say_verbose "Distribution specific OS name and version could not be detected: UName = $uname"
return 1
}
@ -176,30 +236,28 @@ check_min_reqs() {
check_pre_reqs() {
eval $invocation
local failing=false;
if [ "${DOTNET_INSTALL_SKIP_PREREQS:-}" = "1" ]; then
return 0
fi
if [ "$(uname)" = "Linux" ]; then
if ! [ -x "$(command -v ldconfig)" ]; then
if [ ! -x "$(command -v ldconfig)" ]; then
echo "ldconfig is not in PATH, trying /sbin/ldconfig."
LDCONFIG_COMMAND="/sbin/ldconfig"
else
LDCONFIG_COMMAND="ldconfig"
fi
[ -z "$($LDCONFIG_COMMAND -p | grep libunwind)" ] && say_err "Unable to locate libunwind. Install libunwind to continue" && failing=true
[ -z "$($LDCONFIG_COMMAND -p | grep libssl)" ] && say_err "Unable to locate libssl. Install libssl to continue" && failing=true
[ -z "$($LDCONFIG_COMMAND -p | grep libicu)" ] && say_err "Unable to locate libicu. Install libicu to continue" && failing=true
local librarypath=${LD_LIBRARY_PATH:-}
LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }"
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libunwind)" ] && say_warning "Unable to locate libunwind. Probable prerequisite missing; please install libunwind."
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libssl)" ] && say_warning "Unable to locate libssl. Probable prerequisite missing; please install libssl."
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_warning "Unable to locate libicu. Probable prerequisite missing; please install libicu."
[ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep -F libcurl.so)" ] && say_warning "Unable to locate libcurl. Probable prerequisite missing; please install libcurl."
fi
if [ "$failing" = true ]; then
return 1
fi
return 0
}
@ -207,7 +265,7 @@ check_pre_reqs() {
# input - $1
to_lowercase() {
#eval $invocation
echo "$1" | tr '[:upper:]' '[:lower:]'
return 0
}
@ -216,8 +274,8 @@ to_lowercase() {
# input - $1
remove_trailing_slash() {
#eval $invocation
local input=${1:-}
local input="${1:-}"
echo "${input%/}"
return 0
}
@ -226,8 +284,8 @@ remove_trailing_slash() {
# input - $1
remove_beginning_slash() {
#eval $invocation
local input=${1:-}
local input="${1:-}"
echo "${input#/}"
return 0
}
@ -237,15 +295,15 @@ remove_beginning_slash() {
# child_path - $2 - this parameter can be empty
combine_paths() {
eval $invocation
# TODO: Consider making it work with any number of paths. For now:
if [ ! -z "${3:-}" ]; then
say_err "combine_paths: Function takes two parameters."
return 1
fi
local root_path=$(remove_trailing_slash $1)
local child_path=$(remove_beginning_slash ${2:-})
local root_path="$(remove_trailing_slash "$1")"
local child_path="$(remove_beginning_slash "${2:-}")"
say_verbose "combine_paths: root_path=$root_path"
say_verbose "combine_paths: child_path=$child_path"
echo "$root_path/$child_path"
@ -254,8 +312,22 @@ combine_paths() {
get_machine_architecture() {
eval $invocation
# Currently the only one supported
if command -v uname > /dev/null; then
CPUName=$(uname -m)
case $CPUName in
armv7l)
echo "arm"
return 0
;;
aarch64)
echo "arm64"
return 0
;;
esac
fi
# Always default to 'x64'
echo "x64"
return 0
}
@ -264,23 +336,27 @@ get_machine_architecture() {
# architecture - $1
get_normalized_architecture_from_architecture() {
eval $invocation
local architecture=$(to_lowercase $1)
case $architecture in
local architecture="$(to_lowercase "$1")"
case "$architecture" in
\<auto\>)
echo "$(get_normalized_architecture_from_architecture $(get_machine_architecture))"
echo "$(get_normalized_architecture_from_architecture "$(get_machine_architecture)")"
return 0
;;
amd64|x64)
echo "x64"
return 0
;;
x86)
say_err "Architecture \`x86\` currently not supported"
return 1
arm)
echo "arm"
return 0
;;
arm64)
echo "arm64"
return 0
;;
esac
say_err "Architecture \`$architecture\` not supported. If you think this is a bug, please report it at https://github.com/dotnet/cli/issues"
return 1
}
@ -294,8 +370,8 @@ get_normalized_architecture_from_architecture() {
# version_text - stdin
get_version_from_version_info() {
eval $invocation
cat | tail -n 1
cat | tail -n 1 | sed 's/\r$//'
return 0
}
@ -303,8 +379,8 @@ get_version_from_version_info() {
# version_text - stdin
get_commit_hash_from_version_info() {
eval $invocation
cat | head -n 1
cat | head -n 1 | sed 's/\r$//'
return 0
}
@ -314,14 +390,14 @@ get_commit_hash_from_version_info() {
# specific_version - $3
is_dotnet_package_installed() {
eval $invocation
local install_root=$1
local relative_path_to_package=$2
local specific_version=${3//[$'\t\r\n']}
local dotnet_package_path=$(combine_paths $(combine_paths $install_root $relative_path_to_package) $specific_version)
local install_root="$1"
local relative_path_to_package="$2"
local specific_version="${3//[$'\t\r\n']}"
local dotnet_package_path="$(combine_paths "$(combine_paths "$install_root" "$relative_path_to_package")" "$specific_version")"
say_verbose "is_dotnet_package_installed: dotnet_package_path=$dotnet_package_path"
if [ -d "$dotnet_package_path" ]; then
return 0
else
@ -333,27 +409,33 @@ is_dotnet_package_installed() {
# azure_feed - $1
# channel - $2
# normalized_architecture - $3
# coherent - $4
get_latest_version_info() {
eval $invocation
local azure_feed=$1
local channel=$2
local normalized_architecture=$3
local coherent=$4
local azure_feed="$1"
local channel="$2"
local normalized_architecture="$3"
local coherent="$4"
local version_file_url=null
if [ "$shared_runtime" = true ]; then
if [[ "$runtime" == "dotnet" ]]; then
version_file_url="$uncached_feed/Runtime/$channel/latest.version"
else
elif [[ "$runtime" == "aspnetcore" ]]; then
version_file_url="$uncached_feed/aspnetcore/Runtime/$channel/latest.version"
elif [ -z "$runtime" ]; then
if [ "$coherent" = true ]; then
version_file_url="$uncached_feed/Sdk/$channel/latest.coherent.version"
else
version_file_url="$uncached_feed/Sdk/$channel/latest.version"
fi
else
say_err "Invalid value for \$runtime"
return 1
fi
say_verbose "get_latest_version_info: latest url: $version_file_url"
download $version_file_url
download "$version_file_url"
return $?
}
@ -364,29 +446,29 @@ get_latest_version_info() {
# version - $4
get_specific_version_from_version() {
eval $invocation
local azure_feed=$1
local channel=$2
local normalized_architecture=$3
local version=$(to_lowercase $4)
case $version in
local azure_feed="$1"
local channel="$2"
local normalized_architecture="$3"
local version="$(to_lowercase "$4")"
case "$version" in
latest)
local version_info
version_info="$(get_latest_version_info $azure_feed $channel $normalized_architecture false)" || return 1
version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" false)" || return 1
say_verbose "get_specific_version_from_version: version_info=$version_info"
echo "$version_info" | get_version_from_version_info
return 0
;;
coherent)
local version_info
version_info="$(get_latest_version_info $azure_feed $channel $normalized_architecture true)" || return 1
version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" true)" || return 1
say_verbose "get_specific_version_from_version: version_info=$version_info"
echo "$version_info" | get_version_from_version_info
return 0
;;
*)
echo $version
echo "$version"
return 0
;;
esac
@ -399,22 +481,26 @@ get_specific_version_from_version() {
# specific_version - $4
construct_download_link() {
eval $invocation
local azure_feed=$1
local channel=$2
local normalized_architecture=$3
local specific_version=${4//[$'\t\r\n']}
local azure_feed="$1"
local channel="$2"
local normalized_architecture="$3"
local specific_version="${4//[$'\t\r\n']}"
local osname
osname=$(get_current_os_name) || return 1
osname="$(get_current_os_name)" || return 1
local download_link=null
if [ "$shared_runtime" = true ]; then
if [[ "$runtime" == "dotnet" ]]; then
download_link="$azure_feed/Runtime/$specific_version/dotnet-runtime-$specific_version-$osname-$normalized_architecture.tar.gz"
else
elif [[ "$runtime" == "aspnetcore" ]]; then
download_link="$azure_feed/aspnetcore/Runtime/$specific_version/aspnetcore-runtime-$specific_version-$osname-$normalized_architecture.tar.gz"
elif [ -z "$runtime" ]; then
download_link="$azure_feed/Sdk/$specific_version/dotnet-sdk-$specific_version-$osname-$normalized_architecture.tar.gz"
else
return 1
fi
echo "$download_link"
return 0
}
@ -426,20 +512,22 @@ construct_download_link() {
# specific_version - $4
construct_legacy_download_link() {
eval $invocation
local azure_feed=$1
local channel=$2
local normalized_architecture=$3
local specific_version=${4//[$'\t\r\n']}
local azure_feed="$1"
local channel="$2"
local normalized_architecture="$3"
local specific_version="${4//[$'\t\r\n']}"
local distro_specific_osname
distro_specific_osname=$(get_distro_specific_os_name) || return 1
distro_specific_osname="$(get_legacy_os_name)" || return 1
local legacy_download_link=null
if [ "$shared_runtime" = true ]; then
if [[ "$runtime" == "dotnet" ]]; then
legacy_download_link="$azure_feed/Runtime/$specific_version/dotnet-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz"
else
elif [ -z "$runtime" ]; then
legacy_download_link="$azure_feed/Sdk/$specific_version/dotnet-dev-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz"
else
return 1
fi
echo "$legacy_download_link"
@ -448,9 +536,9 @@ construct_legacy_download_link() {
get_user_install_path() {
eval $invocation
if [ ! -z "${DOTNET_INSTALL_DIR:-}" ]; then
echo $DOTNET_INSTALL_DIR
echo "$DOTNET_INSTALL_DIR"
else
echo "$HOME/.dotnet"
fi
@ -461,15 +549,15 @@ get_user_install_path() {
# install_dir - $1
resolve_installation_path() {
eval $invocation
local install_dir=$1
if [ "$install_dir" = "<auto>" ]; then
local user_install_path=$(get_user_install_path)
local user_install_path="$(get_user_install_path)"
say_verbose "resolve_installation_path: user_install_path=$user_install_path"
echo "$user_install_path"
return 0
fi
echo "$install_dir"
return 0
}
@ -478,16 +566,16 @@ resolve_installation_path() {
# install_root - $1
get_installed_version_info() {
eval $invocation
local install_root=$1
local version_file=$(combine_paths "$install_root" "$local_version_file_relative_path")
local install_root="$1"
local version_file="$(combine_paths "$install_root" "$local_version_file_relative_path")"
say_verbose "Local version file: $version_file"
if [ ! -z "$version_file" ] | [ -r "$version_file" ]; then
local version_info="$(cat $version_file)"
local version_info="$(cat "$version_file")"
echo "$version_info"
return 0
fi
say_verbose "Local version file not found."
return 0
}
@ -496,9 +584,9 @@ get_installed_version_info() {
# relative_or_absolute_path - $1
get_absolute_path() {
eval $invocation
local relative_or_absolute_path=$1
echo $(cd $(dirname "$1") && pwd -P)/$(basename "$1")
echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
return 0
}
@ -510,17 +598,25 @@ get_absolute_path() {
copy_files_or_dirs_from_list() {
eval $invocation
local root_path=$(remove_trailing_slash $1)
local out_path=$(remove_trailing_slash $2)
local override=$3
local override_switch=$(if [ "$override" = false ]; then printf -- "-n"; fi)
local root_path="$(remove_trailing_slash "$1")"
local out_path="$(remove_trailing_slash "$2")"
local override="$3"
local osname="$(get_current_os_name)"
local override_switch=$(
if [ "$override" = false ]; then
if [[ "$osname" == "linux-musl" ]]; then
printf -- "-u";
else
printf -- "-n";
fi
fi)
cat | uniq | while read -r file_path; do
local path=$(remove_beginning_slash ${file_path#$root_path})
local target=$out_path/$path
local path="$(remove_beginning_slash "${file_path#$root_path}")"
local target="$out_path/$path"
if [ "$override" = true ] || (! ([ -d "$target" ] || [ -e "$target" ])); then
mkdir -p $out_path/$(dirname $path)
cp -R $override_switch $root_path/$path $target
mkdir -p "$out_path/$(dirname "$path")"
cp -R $override_switch "$root_path/$path" "$target"
fi
done
}
@ -530,21 +626,21 @@ copy_files_or_dirs_from_list() {
# out_path - $2
extract_dotnet_package() {
eval $invocation
local zip_path=$1
local out_path=$2
local temp_out_path=$(mktemp -d $temporary_file_template)
local zip_path="$1"
local out_path="$2"
local temp_out_path="$(mktemp -d "$temporary_file_template")"
local failed=false
tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true
local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/'
find $temp_out_path -type f | grep -Eo $folders_with_version_regex | copy_files_or_dirs_from_list $temp_out_path $out_path false
find $temp_out_path -type f | grep -Ev $folders_with_version_regex | copy_files_or_dirs_from_list $temp_out_path $out_path true
rm -rf $temp_out_path
find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | sort | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false
find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files"
rm -rf "$temp_out_path"
if [ "$failed" = true ]; then
say_err "Extraction failed"
return 1
@ -557,14 +653,19 @@ extract_dotnet_package() {
download() {
eval $invocation
local remote_path=$1
local out_path=${2:-}
local remote_path="$1"
local out_path="${2:-}"
if [[ "$remote_path" != "http"* ]]; then
cp "$remote_path" "$out_path"
return $?
fi
local failed=false
if machine_has "curl"; then
downloadcurl $remote_path $out_path || failed=true
downloadcurl "$remote_path" "$out_path" || failed=true
elif machine_has "wget"; then
downloadwget $remote_path $out_path || failed=true
downloadwget "$remote_path" "$out_path" || failed=true
else
failed=true
fi
@ -577,14 +678,17 @@ download() {
downloadcurl() {
eval $invocation
local remote_path=$1
local out_path=${2:-}
local remote_path="$1"
local out_path="${2:-}"
# Append feed_credential as late as possible before calling curl to avoid logging feed_credential
remote_path="${remote_path}${feed_credential}"
local failed=false
if [ -z "$out_path" ]; then
curl --retry 10 -sSL -f --create-dirs $remote_path || failed=true
curl --retry 10 -sSL -f --create-dirs "$remote_path" || failed=true
else
curl --retry 10 -sSL -f --create-dirs -o $out_path $remote_path || failed=true
curl --retry 10 -sSL -f --create-dirs -o "$out_path" "$remote_path" || failed=true
fi
if [ "$failed" = true ]; then
say_verbose "Curl download failed"
@ -595,14 +699,17 @@ downloadcurl() {
downloadwget() {
eval $invocation
local remote_path=$1
local out_path=${2:-}
local remote_path="$1"
local out_path="${2:-}"
# Append feed_credential as late as possible before calling wget to avoid logging feed_credential
remote_path="${remote_path}${feed_credential}"
local failed=false
if [ -z "$out_path" ]; then
wget -q --tries 10 $remote_path || failed=true
wget -q --tries 10 -O - "$remote_path" || failed=true
else
wget -v --tries 10 -O $out_path $remote_path || failed=true
wget --tries 10 -O "$out_path" "$remote_path" || failed=true
fi
if [ "$failed" = true ]; then
say_verbose "Wget download failed"
@ -615,20 +722,20 @@ calculate_vars() {
eval $invocation
valid_legacy_download_link=true
normalized_architecture=$(get_normalized_architecture_from_architecture "$architecture")
normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")"
say_verbose "normalized_architecture=$normalized_architecture"
specific_version=$(get_specific_version_from_version $azure_feed $channel $normalized_architecture $version)
specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version")"
say_verbose "specific_version=$specific_version"
if [ -z "$specific_version" ]; then
say_err "Could not get version information."
return 1
fi
download_link=$(construct_download_link $azure_feed $channel $normalized_architecture $specific_version)
download_link="$(construct_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")"
say_verbose "download_link=$download_link"
legacy_download_link=$(construct_legacy_download_link $azure_feed $channel $normalized_architecture $specific_version) || valid_legacy_download_link=false
legacy_download_link="$(construct_legacy_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")" || valid_legacy_download_link=false
if [ "$valid_legacy_download_link" = true ]; then
say_verbose "legacy_download_link=$legacy_download_link"
@ -636,39 +743,74 @@ calculate_vars() {
say_verbose "Cound not construct a legacy_download_link; omitting..."
fi
install_root=$(resolve_installation_path $install_dir)
install_root="$(resolve_installation_path "$install_dir")"
say_verbose "install_root=$install_root"
}
install_dotnet() {
eval $invocation
local download_failed=false
local asset_name=''
local asset_relative_path=''
if is_dotnet_package_installed $install_root "sdk" $specific_version; then
say ".NET SDK version $specific_version is already installed."
if [[ "$runtime" == "dotnet" ]]; then
asset_relative_path="shared/Microsoft.NETCore.App"
asset_name=".NET Core Runtime"
elif [[ "$runtime" == "aspnetcore" ]]; then
asset_relative_path="shared/Microsoft.AspNetCore.App"
asset_name="ASP.NET Core Runtime"
elif [ -z "$runtime" ]; then
asset_relative_path="sdk"
asset_name=".NET Core SDK"
else
say_err "Invalid value for \$runtime"
return 1
fi
# Check if the SDK version is already installed.
if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then
say "$asset_name version $specific_version is already installed."
return 0
fi
mkdir -p $install_root
zip_path=$(mktemp $temporary_file_template)
mkdir -p "$install_root"
zip_path="$(mktemp "$temporary_file_template")"
say_verbose "Zip path: $zip_path"
say "Downloading link: $download_link"
download "$download_link" $zip_path || download_failed=true
# Failures are normal in the non-legacy case for ultimately legacy downloads.
# Do not output to stderr, since output to stderr is considered an error.
download "$download_link" "$zip_path" 2>&1 || download_failed=true
# if the download fails, download the legacy_download_link
if [ "$download_failed" = true ] && [ "$valid_legacy_download_link" = true ]; then
if [ "$download_failed" = true ]; then
say "Cannot download: $download_link"
download_link=$legacy_download_link
zip_path=$(mktemp $temporary_file_template)
say_verbose "Legacy zip path: $zip_path"
say "Downloading legacy link: $download_link"
download "$download_link" $zip_path
if [ "$valid_legacy_download_link" = true ]; then
download_failed=false
download_link="$legacy_download_link"
zip_path="$(mktemp "$temporary_file_template")"
say_verbose "Legacy zip path: $zip_path"
say "Downloading legacy link: $download_link"
download "$download_link" "$zip_path" 2>&1 || download_failed=true
fi
fi
if [ "$download_failed" = true ]; then
say_err "Could not download $asset_name version $specific_version"
return 1
fi
say "Extracting zip from $download_link"
extract_dotnet_package $zip_path $install_root
extract_dotnet_package "$zip_path" "$install_root"
# Check if the SDK version is now installed; if not, fail the installation.
if ! is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then
say_err "$asset_name version $specific_version failed to install with an unknown error."
return 1
fi
return 0
}
@ -682,19 +824,22 @@ install_dir="<auto>"
architecture="<auto>"
dry_run=false
no_path=false
no_cdn=false
azure_feed="https://dotnetcli.azureedge.net/dotnet"
uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet"
feed_credential=""
verbose=false
shared_runtime=false
runtime=""
runtime_id=""
override_non_versioned_files=true
while [ $# -ne 0 ]
do
name=$1
case $name in
name="$1"
case "$name" in
-c|--channel|-[Cc]hannel)
shift
channel=$1
channel="$1"
;;
-v|--version|-[Vv]ersion)
shift
@ -709,7 +854,18 @@ do
architecture="$1"
;;
--shared-runtime|-[Ss]hared[Rr]untime)
shared_runtime=true
say_warning "The --shared-runtime flag is obsolete and may be removed in a future version of this script. The recommended usage is to specify '--runtime dotnet'."
if [ -z "$runtime" ]; then
runtime="dotnet"
fi
;;
--runtime|-[Rr]untime)
shift
runtime="$1"
if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then
say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'."
exit 1
fi
;;
--dry-run|-[Dd]ry[Rr]un)
dry_run=true
@ -720,6 +876,9 @@ do
--verbose|-[Vv]erbose)
verbose=true
;;
--no-cdn|-[Nn]o[Cc]dn)
no_cdn=true
;;
--azure-feed|-[Aa]zure[Ff]eed)
shift
azure_feed="$1"
@ -728,12 +887,19 @@ do
shift
uncached_feed="$1"
;;
--feed-credential|-[Ff]eed[Cc]redential)
shift
feed_credential="$1"
;;
--runtime-id|-[Rr]untime[Ii]d)
shift
runtime_id="$1"
;;
--skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles)
override_non_versioned_files=false
;;
-?|--?|-h|--help|-[Hh]elp)
script_name="$(basename $0)"
script_name="$(basename "$0")"
echo ".NET Tools Installer"
echo "Usage: $script_name [-c|--channel <CHANNEL>] [-v|--version <VERSION>] [-p|--prefix <DESTINATION>]"
echo " $script_name -h|-?|--help"
@ -741,7 +907,7 @@ do
echo "$script_name is a simple command line interface for obtaining dotnet cli."
echo ""
echo "Options:"
echo " -c,--channel <CHANNEL> Download from the CHANNEL specified, Defaults to \`$channel\`."
echo " -c,--channel <CHANNEL> Download from the channel specified, Defaults to \`$channel\`."
echo " -Channel"
echo " Possible values:"
echo " - Current - most current release"
@ -758,20 +924,32 @@ do
echo " coherent applies only to SDK downloads"
echo " - 3-part version in a format A.B.C - represents specific version of build"
echo " examples: 2.0.0-preview2-006120; 1.1.0"
echo " -i,--install-dir <DIR> Install under specified location (see Install Location below)"
echo " -i,--install-dir <DIR> Install under specified location (see Install Location below)"
echo " -InstallDir"
echo " --architecture <ARCHITECTURE> Architecture of .NET Tools. Currently only x64 is supported."
echo " --architecture <ARCHITECTURE> Architecture of dotnet binaries to be installed, Defaults to \`$architecture\`."
echo " --arch,-Architecture,-Arch"
echo " --shared-runtime Installs just the shared runtime bits, not the entire SDK."
echo " -SharedRuntime"
echo " --dry-run,-DryRun Do not perform installation. Display download link."
echo " --no-path, -NoPath Do not set PATH for the current process."
echo " --verbose,-Verbose Display diagnostics information."
echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user."
echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user."
echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)."
echo " Possible values: x64, arm, and arm64"
echo " --runtime <RUNTIME> Installs a shared runtime only, without the SDK."
echo " -Runtime"
echo " Possible values:"
echo " - dotnet - the Microsoft.NETCore.App shared runtime"
echo " - aspnetcore - the Microsoft.AspNetCore.App shared runtime"
echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable."
echo " -SkipNonVersionedFiles"
echo " --dry-run,-DryRun Do not perform installation. Display download link."
echo " --no-path, -NoPath Do not set PATH for the current process."
echo " --verbose,-Verbose Display diagnostics information."
echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user."
echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user."
echo " --no-cdn,-NoCdn Disable downloading from the Azure CDN, and use the uncached feed directly."
echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified."
echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)."
echo " -RuntimeId"
echo " -?,--?,-h,--help,-Help Shows this help message"
echo " -?,--?,-h,--help,-Help Shows this help message"
echo ""
echo "Obsolete parameters:"
echo " --shared-runtime The recommended alternative is '--runtime dotnet'."
echo " -SharedRuntime Installs just the shared runtime bits, not the entire SDK."
echo ""
echo "Install Location:"
echo " Location is chosen in following order:"
@ -789,6 +967,10 @@ do
shift
done
if [ "$no_cdn" = true ]; then
azure_feed="$uncached_feed"
fi
check_min_reqs
calculate_vars
@ -797,17 +979,17 @@ if [ "$dry_run" = true ]; then
if [ "$valid_legacy_download_link" = true ]; then
say "Legacy payload URL: $legacy_download_link"
fi
say "Repeatable invocation: ./$(basename $0) --version $specific_version --channel $channel --install-dir $install_dir"
say "Repeatable invocation: ./$(basename "$0") --version $specific_version --channel $channel --install-dir $install_dir"
exit 0
fi
check_pre_reqs
install_dotnet
bin_path=$(get_absolute_path $(combine_paths $install_root $bin_folder_relative_path))
bin_path="$(get_absolute_path "$(combine_paths "$install_root" "$bin_folder_relative_path")")"
if [ "$no_path" = false ]; then
say "Adding to current process PATH: \`$bin_path\`. Note: This change will be visible only when sourcing script."
export PATH=$bin_path:$PATH
export PATH="$bin_path":"$PATH"
else
say "Binaries of dotnet can be found in $bin_path"
fi

Просмотреть файл

@ -0,0 +1,12 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<Import Project="$(NuGetPackageRoot)\MicroBuild.Core\$(MicroBuildCorePackageVersion)\build\MicroBuild.Core.props" />
<Import Project="FSharp.Setup.props" />
<PropertyGroup>
<DisableOutputPathCopying>true</DisableOutputPathCopying>
<EnableXlfLocalization>false</EnableXlfLocalization>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
<Import Project="$(NuGetPackageRoot)\MicroBuild.Core\$(MicroBuildCorePackageVersion)\build\MicroBuild.Core.targets" />
</Project>

Просмотреть файл

@ -1,31 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProductVersion>3.10</ProductVersion>
<WiXToolset2015Version>3.10.0.1503</WiXToolset2015Version>
<SetupRootFolder>$(MSBuildThisFileDirectory)</SetupRootFolder>
<WixInstallPath>$(SetupRootFolder)\..\packages\WiX.Toolset.2015.$(WiXToolset2015Version)\tools\wix</WixInstallPath>
<NugetPackagesDir>$(SetupRootFolder)\..\packages</NugetPackagesDir>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\build\targets\AssemblyVersions.props" />
<PropertyGroup>
<!-- FSharpPackageVersion should be {VS version}.{today's date}.{build number}. Example: 15.6.20160901.3 -->
<FSharpPackageVersion>$(VSMajorVersion).$(VSMinorVersion).$(BUILD_BUILDNUMBER)</FSharpPackageVersion>
</PropertyGroup>
<PropertyGroup>
<TargetDotnetProfile Condition=" '$(TargetDotnetProfile)' == '' ">net40</TargetDotnetProfile>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
</PropertyGroup>
<PropertyGroup>
<BinariesDir>$(SetupRootFolder)\..\$(Configuration)</BinariesDir>
<VsixBuildLocation>$(BinariesDir)\$(TargetDotnetProfile)\bin\</VsixBuildLocation>
<VsixBuildLocation>$(BinariesDir)\net40\bin\</VsixBuildLocation>
<InsertionDir>$(BinariesDir)\insertion</InsertionDir>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<OutputPath Condition="'$(Lang)' == ''">$(BinariesDir)\setup</OutputPath>

Просмотреть файл

@ -0,0 +1,14 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<IsPackage>true</IsPackage>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<IntermediateOutputPath>$(MSBuildProjectDirectory)\obj</IntermediateOutputPath>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -1,20 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FSharpSourcesRoot>..\..\..\src</FSharpSourcesRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<IsPackage>true</IsPackage>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<OutputName>Microsoft.FSharp.Compiler.Resources.$(LocaleCode)</OutputName>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
</PropertyGroup>
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<OutputName>Microsoft.FSharp.Compiler.Resources.$(LocaleCode)</OutputName>
</PropertyGroup>
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)</PackagePreprocessorDefinitions>
@ -35,7 +27,6 @@
<Error Condition="'$(IsLangPack)' == ''" Text="A 'IsLangPack' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -24,7 +24,7 @@ folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharp"
file source="$(BinariesFolder)\net40\bin\FSharp.Build.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Type.Providers.Redist.$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)\content\4.3.0.0\FSharp.Data.TypeProviders.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Type.Providers.Redist\$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)\content\4.3.0.0\FSharp.Data.TypeProviders.dll"
file source="$(BinariesFolder)\net40\bin\Microsoft.Build.dll"
file source="$(BinariesFolder)\net40\bin\Microsoft.Build.Framework.dll"
file source="$(BinariesFolder)\net40\bin\Microsoft.Build.Tasks.Core.dll"

Просмотреть файл

@ -1,27 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildThisFileDirectory)..\..\..\src</FSharpSourcesRoot>
<FSharpTreeRoot>$(FSharpSourcesRoot)\..</FSharpTreeRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<IsPackage>true</IsPackage>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<PackagesFolder>$(FSharpSourcesRoot)\..\packages</PackagesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<OutputName>Microsoft.FSharp.Compiler</OutputName>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
</PropertyGroup>
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<Import Project="$(FSharpSourcesRoot)\..\build\targets\PackageVersions.props" />
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<OutputName>Microsoft.FSharp.Compiler</OutputName>
</PropertyGroup>
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(PackagesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(NuGetPackageRoot)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);FSharpTreeRoot=$(FSharpTreeRoot)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);MicrosoftVisualFSharpTypeProvidersRedistPackageVersion=$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)</PackagePreprocessorDefinitions>
@ -36,7 +25,6 @@
<Error Condition="'$(FSharpPackageVersion)' == ''" Text="A 'FSharpPackageVersion' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -4,11 +4,11 @@ package name=Microsoft.FSharp.Dependencies
version=$(FSharpPackageVersion)
folder "InstallDir:MSBuild\Microsoft\VisualStudio\v$(VSGeneralVersion)\FSharp"
file "Microsoft.FSharp.targets" source="$(BinariesFolder)\setup\resources\Microsoft.FSharp.Shim.targets"
file "Microsoft.Portable.FSharp.targets" source="$(BinariesFolder)\setup\resources\Microsoft.Portable.FSharp.Shim.targets"
file "Microsoft.FSharp.NetSdk.targets" source="$(BinariesFolder)\setup\resources\Microsoft.FSharp.NetSdk.Shim.targets"
file "Microsoft.FSharp.Overrides.NetSdk.targets" source="$(BinariesFolder)\setup\resources\Microsoft.FSharp.Overrides.NetSdk.Shim.targets"
file "Microsoft.FSharp.NetSdk.props" source="$(BinariesFolder)\setup\resources\Microsoft.FSharp.NetSdk.Shim.props"
file "Microsoft.FSharp.targets" source="$(BinariesFolder)\setup\$(TargetFramework)\resources\Microsoft.FSharp.Shim.targets"
file "Microsoft.Portable.FSharp.targets" source="$(BinariesFolder)\setup\$(TargetFramework)\resources\Microsoft.Portable.FSharp.Shim.targets"
file "Microsoft.FSharp.NetSdk.targets" source="$(BinariesFolder)\setup\$(TargetFramework)\resources\Microsoft.FSharp.NetSdk.Shim.targets"
file "Microsoft.FSharp.Overrides.NetSdk.targets" source="$(BinariesFolder)\setup\$(TargetFramework)\resources\Microsoft.FSharp.Overrides.NetSdk.Shim.targets"
file "Microsoft.FSharp.NetSdk.props" source="$(BinariesFolder)\setup\$(TargetFramework)\resources\Microsoft.FSharp.NetSdk.Shim.props"
folder "InstallDir:Common7\IDE\PublicAssemblies"
file source="$(BinariesFolder)\net40\bin\FSharp.Core.dll" vs.file.ngen=yes

Просмотреть файл

@ -1,26 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FSharpSourcesRoot>..\..\..\src</FSharpSourcesRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<IsPackage>true</IsPackage>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<PackagesFolder>$(FSharpSourcesRoot)\..\packages</PackagesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<OutputName>Microsoft.FSharp.Dependencies</OutputName>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
</PropertyGroup>
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<OutputName>Microsoft.FSharp.Dependencies</OutputName>
</PropertyGroup>
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(PackagesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);TargetFramework=$(TargetFramework)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);VSGeneralVersion=$(VSGeneralVersion)</PackagePreprocessorDefinitions>
</PropertyGroup>
@ -31,10 +22,10 @@
<Target Name="CheckPropertiesArePassed">
<Error Condition="'$(FSharpPackageVersion)' == ''" Text="A 'FSharpPackageVersion' property must be passed to the project." />
<Error Condition="'$(TargetFramework)' == ''" Text="A 'TargetFramework' property must be passed to the project." />
<Error Condition="'$(VSGeneralVersion)' == ''" Text="A 'VSGeneralVersion' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -4,10 +4,10 @@ package name=Microsoft.FSharp.IDE
version=$(FSharpPackageVersion)
folder "InstallDir:Common7\IDE\NewScriptItems"
file source="$(BinariesFolder)\setup\resources\NewFileDialog\Script\NewFSharpScriptItems.vsdir"
file source="$(BinariesFolder)\setup\resources\NewFileDialog\Script\Script.fsx"
file source="$(BinariesFolder)\setup\$(TargetFramework)\resources\NewFileDialog\Script\NewFSharpScriptItems.vsdir"
file source="$(BinariesFolder)\setup\$(TargetFramework)\resources\NewFileDialog\Script\Script.fsx"
folder "InstallDir:Common7\IDE\NewFileItems"
file source="$(BinariesFolder)\setup\resources\NewFileDialog\General\NewFSharpFileItems.vsdir"
file source="$(BinariesFolder)\setup\resources\NewFileDialog\General\File.fs"
file source="$(BinariesFolder)\setup\resources\NewFileDialog\General\Script.fsx"
file source="$(BinariesFolder)\setup\$(TargetFramework)\resources\NewFileDialog\General\NewFSharpFileItems.vsdir"
file source="$(BinariesFolder)\setup\$(TargetFramework)\resources\NewFileDialog\General\File.fs"
file source="$(BinariesFolder)\setup\$(TargetFramework)\resources\NewFileDialog\General\Script.fsx"

Просмотреть файл

@ -1,26 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildThisFileDirectory)..\..\..\src</FSharpSourcesRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<IsPackage>true</IsPackage>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<PackagesFolder>$(FSharpSourcesRoot)\..\packages</PackagesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<OutputName>Microsoft.FSharp.IDE</OutputName>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
</PropertyGroup>
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<OutputName>Microsoft.FSharp.IDE</OutputName>
</PropertyGroup>
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(PackagesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);TargetFramework=$(TargetFramework)</PackagePreprocessorDefinitions>
</PropertyGroup>
<ItemGroup>
@ -30,9 +21,9 @@
<Target Name="CheckPropertiesArePassed">
<Error Condition="'$(FSharpPackageVersion)' == ''" Text="A 'FSharpPackageVersion' property must be passed to the project." />
<Error Condition="'$(TargetFramework)' == ''" Text="A 'TargetFramework' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -7,96 +7,96 @@ folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharpSdk"
folder ".NETCore"
folder "3.3.1.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.3.1.0\FSharp.Core.xml"
folder "3.7.4.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.7.4.0\FSharp.Core.xml"
folder "3.7.41.0"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45\FSharp.Core.xml"
folder "3.78.3.1"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.3.1\FSharp.Core.xml"
folder "3.78.4.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.78.4.0\FSharp.Core.xml"
folder "3.78.41.0"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wp8\FSharp.Core.xml"
folder "3.259.3.1"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.3.1\FSharp.Core.xml"
folder "3.259.4.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETCore\3.259.4.0\FSharp.Core.xml"
folder "3.259.41.0"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+netcore45+wpa81+wp8\FSharp.Core.xml"
folder ".NETFramework\v4.0"
folder "4.3.0.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.0.0\FSharp.Core.xml"
folder "4.3.1.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.3.1.0\FSharp.Core.xml"
folder "4.4.0.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETFramework\v4.0\4.4.0.0\FSharp.Core.xml"
folder "4.4.1.0"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\versions\4.4.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\versions\4.4.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\versions\4.4.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\versions\4.4.1.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\versions\4.4.1.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\versions\4.4.1.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\versions\4.4.1.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\versions\4.4.1.0\FSharp.Core.xml"
folder "4.4.3.0"
file source="$(PackagesFolder)\FSharp.Core.4.3.4\lib\net45\FSharp.Core.dll"
file source="$(PackagesFolder)\FSharp.Core.4.3.4\lib\net45\FSharp.Core.optdata"
file source="$(PackagesFolder)\FSharp.Core.4.3.4\lib\net45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\FSharp.Core.4.3.4\lib\net45\FSharp.Core.xml"
file source="$(PackagesFolder)\FSharp.Core\4.3.4\lib\net45\FSharp.Core.dll"
file source="$(PackagesFolder)\FSharp.Core\4.3.4\lib\net45\FSharp.Core.optdata"
file source="$(PackagesFolder)\FSharp.Core\4.3.4\lib\net45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\FSharp.Core\4.3.4\lib\net45\FSharp.Core.xml"
folder ".NETPortable"
folder "2.3.5.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.0\FSharp.Core.xml"
folder "2.3.5.1"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\2.3.5.1\FSharp.Core.xml"
folder "3.47.4.0"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist.1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.VisualFSharp.Core.Redist\1.0.0\content\.NETPortable\3.47.4.0\FSharp.Core.xml"
folder "3.47.41.0"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core.10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.xml"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.dll"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.optdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.sigdata"
file source="$(PackagesFolder)\Microsoft.Portable.FSharp.Core\10.1.0\lib\profiles\portable-net45+sl5+netcore45\FSharp.Core.xml"

Просмотреть файл

@ -1,24 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<FSharpSourcesRoot>..\..\..\src</FSharpSourcesRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<OutputType>vsix</OutputType>
<OutputName>Microsoft.FSharp.SDK</OutputName>
<IsPackage>true</IsPackage>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<PackagesFolder>$(FSharpSourcesRoot)\..\packages</PackagesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(PackagesFolder)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);PackagesFolder=$(NuGetPackageRoot)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)</PackagePreprocessorDefinitions>
</PropertyGroup>
@ -30,7 +21,6 @@
<Error Condition="'$(FSharpPackageVersion)' == ''" Text="A 'FSharpPackageVersion' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -1,20 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project InitialTargets="CheckPropertiesArePassed" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project InitialTargets="CheckPropertiesArePassed">
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<FSharpSourcesRoot>..\..\..\src</FSharpSourcesRoot>
<OutputArchitecture>neutral</OutputArchitecture>
<OutputLocalized>false</OutputLocalized>
<IsPackage>true</IsPackage>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<BinariesFolder>$(FSharpSourcesRoot)\..\$(Configuration)</BinariesFolder>
<OutputPath>$(BinariesFolder)\insertion</OutputPath>
<OutputName>Microsoft.FSharp.VSIX.Full.Resources.$(LocaleCode)</OutputName>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)obj</IntermediateOutputPath>
<OutputType>vsix</OutputType>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<PropertyGroup>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)</PackagePreprocessorDefinitions>
@ -26,15 +18,16 @@
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);LocaleSpecificCulture=$(LocaleSpecificCulture)</PackagePreprocessorDefinitions>
<PackagePreprocessorDefinitions>$(PackagePreprocessorDefinitions);IsLangPack=$(IsLangPack)</PackagePreprocessorDefinitions>
</PropertyGroup>
<ItemGroup Condition="'$(IsLangPack)' != 'true'">
<Package Include="Empty.swr" />
</ItemGroup>
<ItemGroup Condition="'$(IsLangPack)' == 'true'">
<Package Include="Files.swr" />
<Package Include="Templates.swr" />
</ItemGroup>
<Target Name="CheckPropertiesArePassed">
<Error Condition="'$(LocaleCode)' == ''" Text="A 'LocaleCode' property must be passed to the project." />
<Error Condition="'$(LocaleId)' == ''" Text="A 'LocaleId' property must be passed to the project." />
@ -45,7 +38,6 @@
<Error Condition="'$(FSharpPackageVersion)' == ''" Text="A 'FSharpPackageVersion' property must be passed to the project." />
</Target>
<Target Name="SignFiles">
<!-- Signing is handled by the RoslynSignTool -->
</Target>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -1,44 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" InitialTargets="IncludeFSharpManifests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project InitialTargets="IncludeFSharpManifests">
<Import Project="..\FSharp.Setup.props" />
<Import Project="Directory.Build.props" />
<PropertyGroup>
<FSharpSourcesRoot>..\..\src</FSharpSourcesRoot>
<FinalizeManifest>true</FinalizeManifest>
<FinalizeSkipLayout>true</FinalizeSkipLayout>
<IsPackage>true</IsPackage>
<OutputPath>$(FSharpSourcesRoot)\..\$(Configuration)\insertion</OutputPath>
<InsertionDir>$(OutputPath)</InsertionDir>
<ManifestBuildVersion>$(FSharpPackageVersion)</ManifestBuildVersion>
</PropertyGroup>
<PropertyGroup>
<FinalizeManifest>true</FinalizeManifest>
<FinalizeSkipLayout>true</FinalizeSkipLayout>
<InsertionDir>$(OutputPath)</InsertionDir>
<ManifestBuildVersion>$(FSharpPackageVersion)</ManifestBuildVersion>
</PropertyGroup>
<ItemGroup>
<InsertionItems Include="$(VsixBuildLocation)\VisualFSharpFull.vsix" />
<InsertionItems Include="$(VsixBuildLocation)\VisualFSharpTemplate.vsix" />
<InsertionItems Include="$(VsixBuildLocation)\Microsoft.FSharp.VSIX.Full.Core.json" />
<InsertionItems Include="$(VsixBuildLocation)\Microsoft.FSharp.VSIX.Templates.json" />
</ItemGroup>
<Target Name="CopyInsertionItems">
<Copy SourceFiles="@(InsertionItems)" DestinationFolder="$(InsertionDir)" />
</Target>
<Target Name="IncludeFSharpManifests" DependsOnTargets="CopyInsertionItems">
<ItemGroup>
<InsertionItems Include="$(VsixBuildLocation)\VisualFSharpFull.vsix" />
<InsertionItems Include="$(VsixBuildLocation)\VisualFSharpTemplate.vsix" />
<InsertionItems Include="$(VsixBuildLocation)\Microsoft.FSharp.VSIX.Full.Core.json" />
<InsertionItems Include="$(VsixBuildLocation)\Microsoft.FSharp.VSIX.Templates.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Compiler.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Compiler.Resources.%(SetupLanguages.LocaleCode).json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.SDK.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Vsix.Full.Core.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Vsix.Full.Resources.%(SetupLanguages.LocaleCode).json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.VSIX.Templates.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Dependencies.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.IDE.json" />
</ItemGroup>
</Target>
<Import Project="$(FSharpSourcesRoot)\Microbuild.Settings.targets" />
<Import Project="Directory.Build.targets" />
<Target Name="CopyInsertionItems">
<Copy SourceFiles="@(InsertionItems)" DestinationFolder="$(InsertionDir)" />
</Target>
<Target Name="IncludeFSharpManifests" DependsOnTargets="CopyInsertionItems">
<ItemGroup>
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Compiler.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Compiler.Resources.%(SetupLanguages.LocaleCode).json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.SDK.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Vsix.Full.Core.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Vsix.Full.Resources.%(SetupLanguages.LocaleCode).json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.VSIX.Templates.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.Dependencies.json" />
<MergeManifest Include="$(OutputPath)\Microsoft.FSharp.IDE.json" />
</ItemGroup>
</Target>
</Project>
</Project>

Просмотреть файл

@ -1,47 +1,47 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Project>
<Import Project="..\src\Microbuild.Settings.targets" />
<Import Project="Directory.Build.props" />
<PropertyGroup>
<SetupRootFolder>.</SetupRootFolder>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<Target Name="CollectSetupProjects">
<ItemGroup>
<SwixSetupProjects Include="Microsoft.FSharp.SDK.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.SDK\Microsoft.FSharp.SDK.swixproj</ProjectPath>
</SwixSetupProjects>
<SwixSetupProjects Include="Microsoft.FSharp.Compiler.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.Compiler\Microsoft.FSharp.Compiler.swixproj</ProjectPath>
</SwixSetupProjects>
</ItemGroup>
<CreateItem Include="@(SetupLanguages)"
AdditionalMetadata="ProjectPath=Swix\Microsoft.FSharp.Compiler.Resources\Microsoft.FSharp.Compiler.Resources.swixproj">
<Output ItemName="SwixSetupProjects" TaskParameter="Include"/>
</CreateItem>
</Target>
<Target Name="Build" DependsOnTargets="CollectSetupProjects">
<PropertyGroup>
<SetupRootFolder>.</SetupRootFolder>
<TargetDotnetProfile Condition="'$(TargetDotnetProfile)'==''">net40</TargetDotnetProfile>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<MSBuild Projects="%(SwixSetupProjects.ProjectPath)"
Targets="Build"
Properties="Configuration=$(Configuration);LocaleCode=%(SwixSetupProjects.LocaleCode);LocaleId=%(SwixSetupProjects.LocaleId);LocaleParentId=%(SwixSetupProjects.LocaleParentId);LocaleParentCulture=%(SwixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(SwixSetupProjects.LocaleSpecificCulture);IsLangPack=%(SwixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);$(CustomProps)"/>
</Target>
<Import Project="FSharp.Setup.props" />
<Target Name="CopyLocalizationResources" BeforeTargets="Build">
<ItemGroup>
<SetupLocalizationResources Include="resources\**\*.*" />
</ItemGroup>
<Target Name="CollectSetupProjects">
<ItemGroup>
<SwixSetupProjects Include="Microsoft.FSharp.SDK.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.SDK\Microsoft.FSharp.SDK.swixproj</ProjectPath>
</SwixSetupProjects>
<SwixSetupProjects Include="Microsoft.FSharp.Compiler.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.Compiler\Microsoft.FSharp.Compiler.swixproj</ProjectPath>
</SwixSetupProjects>
</ItemGroup>
<Copy SourceFiles="@(SetupLocalizationResources)"
DestinationFiles="@(SetupLocalizationResources->'$(OutputPath)\resources\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<CreateItem Include="@(SetupLanguages)"
AdditionalMetadata="ProjectPath=Swix\Microsoft.FSharp.Compiler.Resources\Microsoft.FSharp.Compiler.Resources.swixproj">
<Output ItemName="SwixSetupProjects" TaskParameter="Include"/>
</CreateItem>
</Target>
<Import Project="Directory.Build.targets" />
<Target Name="Build" DependsOnTargets="CollectSetupProjects">
<PropertyGroup>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<MSBuild Projects="%(SwixSetupProjects.ProjectPath)"
Targets="Build"
Properties="Configuration=$(Configuration);LocaleCode=%(SwixSetupProjects.LocaleCode);LocaleId=%(SwixSetupProjects.LocaleId);LocaleParentId=%(SwixSetupProjects.LocaleParentId);LocaleParentCulture=%(SwixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(SwixSetupProjects.LocaleSpecificCulture);IsLangPack=%(SwixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);$(CustomProps)"/>
</Target>
<Target Name="CopyLocalizationResources" BeforeTargets="Build">
<ItemGroup>
<SetupLocalizationResources Include="resources\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SetupLocalizationResources)"
DestinationFiles="@(SetupLocalizationResources->'$(OutputPath)\resources\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
</Project>

Просмотреть файл

@ -0,0 +1,70 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project Sdk="Microsoft.NET.Sdk">
<!-- not really a C# project, but pretending it is makes things like package restore really easy -->
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Remove="**" />
<EmbeddedResource Remove="**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FSharp.Core" Version="4.3.4" /><!-- static version used to create the SDK -->
<PackageReference Include="MicroBuild.Core" Version="$(MicroBuildCorePackageVersion)" />
<PackageReference Include="MicroBuild.Core.Sentinel" Version="$(MicroBuildCoreSentinelPackageVersion)" />
<PackageReference Include="MicroBuild.Plugins.SwixBuild" Version="$(MicroBuildPluginsSwixBuildPackageVersion)" />
<PackageReference Include="Microsoft.Portable.FSharp.Core" Version="$(MicrosoftPortableFSharpCorePackageVersion)" IncludeAssets="none" />
<PackageReference Include="Microsoft.VisualFSharp.Core.Redist" Version="$(MicrosoftVisualFSharpCoreRedistPackageVersion)" />
</ItemGroup>
<Target Name="CollectSetupProjects">
<ItemGroup>
<VsixProjects Include="VisualFSharpFull.csproj">
<ProjectPath>..\vsintegration\Vsix\VisualFSharpFull\VisualFSharpFull.csproj</ProjectPath>
</VsixProjects>
<VsixProjects Include="VisualFSharpTemplates.csproj">
<ProjectPath>..\vsintegration\Vsix\VisualFSharpTemplates\VisualFSharpTemplates.csproj</ProjectPath>
</VsixProjects>
</ItemGroup>
<CreateItem Include="@(SetupLanguages)"
AdditionalMetadata="ProjectPath=Swix\Microsoft.FSharp.Vsix.Resources\Microsoft.FSharp.Vsix.Resources.swixproj">
<Output ItemName="SwixSetupProjects" TaskParameter="Include" />
</CreateItem>
<ItemGroup>
<SwixSetupProjects Include="Microsoft.FSharp.Dependencies.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.Dependencies\Microsoft.FSharp.Dependencies.swixproj</ProjectPath>
</SwixSetupProjects>
<SwixSetupProjects Include="Microsoft.FSharp.IDE.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.IDE\Microsoft.FSharp.IDE.swixproj</ProjectPath>
</SwixSetupProjects>
</ItemGroup>
</Target>
<Target Name="CopyLocalizationResources">
<ItemGroup>
<SetupLocalizationResources Include="resources\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SetupLocalizationResources)"
DestinationFiles="@(SetupLocalizationResources->'$(OutputPath)\resources\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="BuildSetup"
AfterTargets="Build"
DependsOnTargets="CollectSetupProjects;CopyLocalizationResources">
<PropertyGroup>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<MSBuild Projects="%(VsixProjects.ProjectPath)"
Targets="Build"
Properties="Configuration=$(Configuration);IsLangPack=%(VsixProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);OutputPath=$(VsixBuildLocation);DisableOutputPathCopying=true;$(CustomProps)" />
<MSBuild Projects="%(SwixSetupProjects.ProjectPath)"
Targets="Build"
Properties="LocaleCode=%(SwixSetupProjects.LocaleCode);LocaleId=%(SwixSetupProjects.LocaleId);LocaleParentId=%(SwixSetupProjects.LocaleParentId);LocaleParentCulture=%(SwixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(SwixSetupProjects.LocaleSpecificCulture);IsLangPack=%(SwixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);VSGeneralVersion=$(VSGeneralVersion);TargetFramework=$(TargetFramework);$(CustomProps)"/>
</Target>
</Project>

Просмотреть файл

@ -1,59 +0,0 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="..\src\Microbuild.Settings.targets" />
<PropertyGroup>
<SetupRootFolder>.</SetupRootFolder>
<TargetDotnetProfile Condition="'$(TargetDotnetProfile)'==''">net40</TargetDotnetProfile>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<Import Project="FSharp.Setup.props" />
<Target Name="CollectSetupProjects">
<ItemGroup>
<VsixProjects Include="VisualFSharpFull.csproj">
<ProjectPath>..\vsintegration\Vsix\VisualFSharpFull\VisualFSharpFull.csproj</ProjectPath>
</VsixProjects>
<VsixProjects Include="VisualFSharpTemplates.csproj">
<ProjectPath>..\vsintegration\Vsix\VisualFSharpTemplates\VisualFSharpTemplates.csproj</ProjectPath>
</VsixProjects>
</ItemGroup>
<CreateItem Include="@(SetupLanguages)"
AdditionalMetadata="ProjectPath=Swix\Microsoft.FSharp.Vsix.Resources\Microsoft.FSharp.Vsix.Resources.swixproj">
<Output ItemName="SwixSetupProjects" TaskParameter="Include"/>
</CreateItem>
<ItemGroup>
<SwixSetupProjects Include="Microsoft.FSharp.Dependencies.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.Dependencies\Microsoft.FSharp.Dependencies.swixproj</ProjectPath>
</SwixSetupProjects>
<SwixSetupProjects Include="Microsoft.FSharp.IDE.swixproj">
<ProjectPath>Swix\Microsoft.FSharp.IDE\Microsoft.FSharp.IDE.swixproj</ProjectPath>
</SwixSetupProjects>
</ItemGroup>
</Target>
<Target Name="Build" DependsOnTargets="CollectSetupProjects">
<PropertyGroup>
<CustomProps>AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</CustomProps>
</PropertyGroup>
<MSBuild Projects="%(VsixProjects.ProjectPath)"
Targets="Build"
Properties="Configuration=$(Configuration);IsLangPack=%(VsixProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);OutputPath=$(VsixBuildLocation);DisableOutputPathCopying=true;$(CustomProps)" />
<MSBuild Projects="%(SwixSetupProjects.ProjectPath)"
Targets="Build"
Properties="LocaleCode=%(SwixSetupProjects.LocaleCode);LocaleId=%(SwixSetupProjects.LocaleId);LocaleParentId=%(SwixSetupProjects.LocaleParentId);LocaleParentCulture=%(SwixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(SwixSetupProjects.LocaleSpecificCulture);IsLangPack=%(SwixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);VSGeneralVersion=$(VSGeneralVersion);$(CustomProps)"/>
</Target>
<Target Name="CopyLocalizationResources" BeforeTargets="Build">
<ItemGroup>
<SetupLocalizationResources Include="resources\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SetupLocalizationResources)"
DestinationFiles="@(SetupLocalizationResources->'$(OutputPath)\resources\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
</Project>

Просмотреть файл

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Collections.Immutable" version="1.5.0" />
<package id="System.Reflection.Metadata" version="1.6.0" />
<package id="FsSrGen" version="2.0.0" targetFramework="net46" />
<package id="MicroBuild.Core" version="0.2.0" />
<package id="MicroBuild.Core.Sentinel" version="1.0.0" />
<package id="MicroBuild.Plugins.SwixBuild" version="1.0.147" />
<package id="Microsoft.VisualFSharp.Core.Redist" version="1.0.0" />
<package id="Microsoft.VisualStudio.Shell.14.0" version="14.3.25407" targetFramework="net46" />
<package id="System.ValueTuple" version="4.4.0" />
<package id="Microsoft.VisualFSharp.Type.Providers.Redist" version="1.0.0" />
<package id="Microsoft.Portable.FSharp.Core" version="10.1.0" />
<package id="FSharp.Core" version="4.3.4" />
</packages>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('FSharp.Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
</Project>

Просмотреть файл

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='net40'">
<DefineConstants Condition="'$(MonoPackaging)' == 'true'">$(DefineConstants);CROSS_PLATFORM_COMPILER</DefineConstants>
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
<DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_LCIDFROMCODEPAGE</DefineConstants>
</PropertyGroup>
<!-- Note: The TargetDotnetProfile value 'coreclr' currently covers all of netstandard1.6, netstandard2.0 and netcoreapp2.0 in a confused way -->
<!-- These should be distinguished in the future -->
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='coreclr'">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
<DefineConstants>$(DefineConstants);NETSTANDARD1_6</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_APP_DOMAINS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_BEGINEND_READWRITE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_BINARY_SERIALIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_CORHOST_SIGNER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_EVENTWAITHANDLE_IDISPOSABLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_HEAPTERMINATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_LINKEDRESOURCES</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_LOADER_OPTIMIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PDB_READER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_PDB_WRITER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_MODULE_HANDLES</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_ONLY</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_RUNTIMEENVIRONMENT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SECURITY_PERMISSIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SERVERCODEPAGES</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SYMBOLSTORE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_SYSTEM_CONFIGURATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_THREAD</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_THREADABORT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WAITONE_MILLISECONDS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WEB_CLIENT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WIN_REGISTRY</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_WINFORMS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_INDENTED_TEXT_WRITER</DefineConstants>
<DefineConstants>$(DefineConstants);FX_REDUCED_EXCEPTIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FX_REDUCED_CONSOLE</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFEMIT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_GLOBALIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
<DefineConstants>$(DefineConstants);FX_RESHAPED_MSBUILD</DefineConstants>
<OtherFlags>$(OtherFlags) --simpleresolution</OtherFlags>
<TargetFramework Condition="'$(TargetFramework)' == ''">netstandard1.6</TargetFramework>
</PropertyGroup>
</Project>

Просмотреть файл

@ -1,174 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- If Configuration is empty that means we are not being built in VS and so folks need to explicitly pass the different
values for $(ConfigurationGroup), $(TargetGroup), or $(OSGroup) or accept the defaults for them.
-->
<PropertyGroup Condition="'$(Configuration)'==''">
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">Debug</ConfigurationGroup>
<Configuration>$(ConfigurationGroup)</Configuration>
<Configuration Condition="'$(TargetGroup)'!=''">$(TargetGroup)_$(Configuration)</Configuration>
<Configuration Condition="'$(OSGroup)'!='' and '$(OSGroup)'!='AnyOS'">$(OSGroup)_$(Configuration)</Configuration>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'!=''">
<ConfigurationGroup Condition="'$(ConfigurationGroup)'=='' and $(Configuration.ToLower().EndsWith('debug'))">Debug</ConfigurationGroup>
<ConfigurationGroup Condition="'$(ConfigurationGroup)'=='' and $(Configuration.ToLower().EndsWith('release'))">Release</ConfigurationGroup>
<ConfigurationGroup Condition="'$(ConfigurationGroup)'==''">Debug</ConfigurationGroup>
</PropertyGroup>
<Import Project="..\build\targets\AssemblyVersions.props" />
<Import Project="..\build\targets\PackageVersions.props" />
<PropertyGroup>
<!-- Settings used all the time -->
<Tailcalls>true</Tailcalls>
<TargetDotnetProfile Condition="'$(TargetDotnetProfile)'==''">net40</TargetDotnetProfile>
<!-- Currently always use .NET Framwork proto compiler -->
<ProtoFlavour Condition="'$(ProtoFlavour)' == ''">net40</ProtoFlavour>
<ProjectLanguage Condition="'$(ProjectLanguage)' == ''">FSharp</ProjectLanguage>
<DebugSymbols>true</DebugSymbols>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<BuildToolsTargets45>true</BuildToolsTargets45>
<WarningsAsErrors />
<!-- Always qualify the IntermediateOutputPath by the TargetDotnetProfile if any exists -->
<IntermediateOutputPath>obj\$(Configuration)\$(TargetDotnetProfile)\</IntermediateOutputPath>
<IntermediateOutputPath Condition="'$(PortableProfileBeingReferenced)' != ''">obj\$(Configuration)\$(TargetDotnetProfile)\$(PortableProfileBeingReferenced)\</IntermediateOutputPath>
<!-- Always qualify the IntermediateOutputPath by the TargetDotnetProfile if any exists -->
<IntermediateOutputPath>obj\$(Configuration)\$(TargetDotnetProfile)\</IntermediateOutputPath>
<IntermediateOutputPath Condition="'$(PortableProfileBeingReferenced)' != ''">obj\$(Configuration)\$(TargetDotnetProfile)\$(PortableProfileBeingReferenced)\</IntermediateOutputPath>
<!-- Frozen FSharp.Core package -->
<FSharpCoreFrozenPortablePackageVersion>10.1.0</FSharpCoreFrozenPortablePackageVersion>
<FSharpCoreFrozenPortableTargetPackageVersion>10.2.0</FSharpCoreFrozenPortableTargetPackageVersion>
<FSharpCoreFrozenPortableTargetMajorVersion>10.2</FSharpCoreFrozenPortableTargetMajorVersion>
<!-- Nunit -->
<NUnitVersion>3.5.0</NUnitVersion>
<NUnitFullVersion>3.5.0.0</NUnitFullVersion>
<NUnitLibDir>$(FSharpSourcesRoot)\..\packages\NUnit.$(NUnitVersion)\lib\net45</NUnitLibDir>
<MonoPackaging Condition="'$(TargetDotnetProfile)' != 'coreclr' AND '$(OS)' == 'Unix'">true</MonoPackaging>
<DependencyUptakePackageVersionPropsFile>$(MSBuildThisFileDirectory)..\Tools\dependencyUptake\PackageVersions.props</DependencyUptakePackageVersionPropsFile>
<!-- Localization -->
<DisableLocalization Condition="'$(MonoPackaging)' == 'true'">true</DisableLocalization>
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
<XliffTasksVersion>0.2.0-beta-000081</XliffTasksVersion>
</PropertyGroup>
<Import Project="$(DependencyUptakePackageVersionPropsFile)" Condition="Exists('$(DependencyUptakePackageVersionPropsFile)')" />
<!-- Default setting. Some get modified later in FSharpSource.targets -->
<PropertyGroup>
<SkipSigning>false</SkipSigning>
<UseOpenSourceSign>true</UseOpenSourceSign>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\msft.pubkey</AssemblyOriginatorKeyFile>
<StrongNames>true</StrongNames>
<DelaySign>true</DelaySign>
</PropertyGroup>
<!-- On windows, VS packaging -->
<PropertyGroup Condition="'$(MonoPackaging)' != 'true' AND '$(OS)' != 'Unix'">
<UseMicroBuild>true</UseMicroBuild>
<UseSourceLink Condition = " '$(UseSourceLink)' == '' AND '$(Configuration)'=='Release' ">false</UseSourceLink>
<UseGatherBinaries>true</UseGatherBinaries>
<VsSDKInstall Condition=" '$(VsSDKInstall)' == '' ">$(MSBuildThisFileDirectory)..\packages\Microsoft.VSSDK.BuildTools.$(MicrosoftVSSDKBuildToolsPackageVersion)\tools\vssdk</VsSDKInstall>
<VsSDKToolPath Condition=" '$(VsSDKToolPath)' == '' ">$(MSBuildThisFileDirectory)..\packages\Microsoft.VSSDK.BuildTools.$(MicrosoftVSSDKBuildToolsPackageVersion)\tools\vssdk\bin</VsSDKToolPath>
<VsSDKTargets Condition=" '$(VsSDKTargets)' == '' ">$(MSBuildThisFileDirectory)..\packages\Microsoft.VSSDK.BuildTools.$(MicrosoftVSSDKBuildToolsPackageVersion)\tools\vssdk\Microsoft.VsSDK.targets</VsSDKTargets>
<VsSDKIncludes Condition=" '$(VsSDKIncludes)' == '' ">$(MSBuildThisFileDirectory)..\packages\Microsoft.VSSDK.BuildTools.$(MicrosoftVSSDKBuildToolsPackageVersion)\tools\vssdk\inc</VsSDKIncludes>
<VsixSchemaPath Condition=" '$(VsixSchemaPath)' == '' ">$(MSBuildThisFileDirectory)..\packages\Microsoft.VSSDK.BuildTools.$(MicrosoftVSSDKBuildToolsPackageVersion)\tools\vssdk\schemas\VSIXManifestSchema.xsd</VsixSchemaPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(ProjectLanguage)' == 'FSharp' ">
<!-- Things we do only for F# projects -->
<OtherFlags>$(OtherFlags) --times</OtherFlags>
<NoWarn>$(NoWarn);69;65;54;61;75</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<!-- Settings for Debug mode -->
<DebugType>full</DebugType>
<DebugType Condition="'$(OS)' == 'Unix'">portable</DebugType> <!-- no longer use MDB on Mono -->
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
<ErrorReport Condition=" '$(ErrorReport)' == '' ">prompt</ErrorReport>
<OtherFlags>$(OtherFlags) --no-jit-optimize</OtherFlags>
<EmbedAllSource Condition=" '$(DebugType)' == 'portable' or '$(DebugType)' == 'embedded' ">true</EmbedAllSource>
<DefineConstants Condition=" '$(ProjectLanguage)' != 'VisualBasic' ">DEBUG;TRACE;CODE_ANALYSIS;$(DefineConstants)</DefineConstants>
<DefineConstants Condition=" '$(ProjectLanguage)' == 'VisualBasic' ">DEBUG=True,TRACE=True,CODE_ANALYSIS=True,$(DefineConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<!-- Flags used for Release mode. -->
<DebugType>pdbonly</DebugType>
<DebugType Condition="'$(OS)' == 'Unix'">portable</DebugType> <!-- no longer use MDB on Mono -->
<Optimize Condition=" '$(Optimize)' == '' ">true</Optimize>
<EmbedAllSource>false</EmbedAllSource>
<ErrorReport Condition=" '$(ErrorReport)' == '' ">prompt</ErrorReport>
<DefineConstants Condition=" '$(ProjectLanguage)' != 'VisualBasic' ">TRACE;$(DefineConstants)</DefineConstants>
<DefineConstants Condition=" '$(ProjectLanguage)' == 'VisualBasic' ">TRACE=True,$(DefineConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Proto'">
<!-- Flags used when running the Proto compiler. -->
<DebugType Condition=" '$(DebugType)' == '' ">full</DebugType>
<DebugType Condition="'$(OS)' == 'Unix'">portable</DebugType> <!-- no longer use MDB on Mono -->
<Optimize>true</Optimize>
<DefineConstants>DEBUG;NO_STRONG_NAMES;$(DefineConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<!-- Standard defaults for output path and warning level -->
<OutputPath Condition="'$(OutputPath)' == ''">bin\$(Configuration)</OutputPath>
<WarningLevel Condition=" '$(WarningLevel)' == '' ">3</WarningLevel>
</PropertyGroup>
<!-- Nuget Package properties -->
<PropertyGroup>
<BuildRevision>$([System.DateTime]::Now.ToString(`yyMMdd`))</BuildRevision>
<NuGetReleaseVersion>1.0.0</NuGetReleaseVersion>
<NuGetPreReleaseVersion>$(NuGetReleaseVersion)-rc</NuGetPreReleaseVersion>
<NuGetPerBuildPreReleaseVersion Condition="'$(BuildRevision)' != ''">$(NuGetPreReleaseVersion)-$(BuildRevision.Trim())</NuGetPerBuildPreReleaseVersion>
<NUGET_PACKAGES Condition=" '$(NUGET_PACKAGES)' == '' ">$(MSBuildThisFileDirectory)..\packages</NUGET_PACKAGES>
<RestorePackagesPath>$(NUGET_PACKAGES)</RestorePackagesPath>
</PropertyGroup>
<PropertyGroup>
<!-- Compiler tool locations. -->
<FsLexToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build</FsLexToolPath>
<FsYaccToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build</FsYaccToolPath>
<FsiToolExe>fsi.exe</FsiToolExe>
<FsLexToolExe>fslex.exe</FsLexToolExe>
<FsYaccToolExe>fsyacc.exe</FsYaccToolExe>
<!-- FSharp.Compiler.Tools is currently only used to get a working FSI.EXE to execute some scripts during the build -->
<!-- The LKG FSI.EXE requires MSBuild 15 to be installed, which is painful -->
<FsiToolPath>$(FSharpSourcesRoot)\..\packages\FSharp.Compiler.Tools.4.1.27\tools</FsiToolPath>
<!-- The version of MSBuild assumed byt the F# compiler in the Mono packaging of F# -->
<MonoPackagingMSBuildVersionFull>14.0.0.0</MonoPackagingMSBuildVersionFull>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\packages\XliffTasks.$(XliffTasksVersion)\build\XliffTasks.props" Condition="'$(DisableLocalization)' != 'true'" />
<PropertyGroup>
<!-- in addition to the standard xlf languages, also provide a baseline en->en file -->
<XlfLanguages>en;$(XlfLanguages)</XlfLanguages>
</PropertyGroup>
<Import Project="$(RestorePackagesPath)\XliffTasks.$(XliffTasksVersion)\build\XliffTasks.targets" Condition="'$(DisableLocalization)' != 'true'" />
<Import Project="../Tools/Build.Common.props" Condition="'$(TargetDotnetProfile)'=='coreclr'"/>
<Import Project="$(BuildVersionFilePath)" Condition="Exists('$(BuildVersionFilePath)')" />
</Project>

Просмотреть файл

@ -1,383 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RepoRoot>$(MSBuildThisFileDirectory)..\</RepoRoot>
</PropertyGroup>
<PropertyGroup>
<MicroBuildAssemblyFileLanguage>fs</MicroBuildAssemblyFileLanguage>
</PropertyGroup>
<!-- Some unit test assemblies must not have strong names since they reference other assemblies that don't have strong names -->
<!-- These unit test assemblies can't use InternalsVisibleTo into assemblies with strong names. -->
<PropertyGroup Condition="'$(StrongNames)' == 'false'">
<SkipSigning>true</SkipSigning>
<UseOpenSourceSign>false</UseOpenSourceSign>
<SignAssembly>false</SignAssembly>
<DefineConstants>NO_STRONG_NAMES;$(DefineConstants)</DefineConstants>
</PropertyGroup>
<!-- On mono, use test.snk to sign private compiler binaries -->
<PropertyGroup Condition="'$(StrongNames)' != 'false' AND '$(MonoPackaging)' == 'true' AND '$(AssemblyName)' != 'FSharp.Core' AND '$(AssemblyName)' != 'FSharp.Compiler.Interactive.Settings'" >
<AssemblyOriginatorKeyFile>$(FSharpSourcesRoot)\fsharp\test.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants>
</PropertyGroup>
<!-- On proto, use the FSharp.Core assembly version for everything (it only matters we get it right for FSharp.Core), and pass the version flag explicitly if not using MicroBuild -->
<PropertyGroup Condition="'$(Configuration)' == 'Proto'">
<MicroBuildAssemblyVersion>$(FSCoreVersion)</MicroBuildAssemblyVersion>
<OtherFlags>$(OtherFlags) --version:"$(MicroBuildAssemblyVersion)"</OtherFlags>
</PropertyGroup>
<PropertyGroup Condition="'$(UseSourceLink)' == 'true'">
<SourceLink>$(IntermediateOutputPath)source_link.json</SourceLink>
</PropertyGroup>
<!-- We assume MSBuild 15.0 or greater. Note the Mono packaging doesn't actually rely on any specific version of MSBuild any longer except to build the MSBuild task-->
<PropertyGroup>
<DefineConstants>MSBUILD_AT_LEAST_14;$(DefineConstants)</DefineConstants>
</PropertyGroup>
<!-- Disable uwa toolchain nuget package resolve logic. -->
<PropertyGroup>
<NuGetTargets Condition="'$(NuGetTargets)' == ''">false</NuGetTargets>
</PropertyGroup>
<PropertyGroup>
<NugetLocalPackagesDir>$(FSharpSourcesRoot)\..\packages</NugetLocalPackagesDir>
<FsCheckVersion>3.0.0-alpha3</FsCheckVersion>
<FsCheckFullVersion>3.0.0.0</FsCheckFullVersion>
<FsCheckLibDir>$(FSharpSourcesRoot)\..\packages\FsCheck.$(FsCheckVersion)\lib\</FsCheckLibDir>
</PropertyGroup>
<Import Project="FSharpSource.Profiles.targets" />
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='net40'">
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.6</TargetFrameworkVersion>
<TargetFrameworkProfile></TargetFrameworkProfile>
<!-- MSbuild works out the assembly references -->
</PropertyGroup>
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='coreclr'">
<TargetProfile>netcore</TargetProfile>
<TargetFrameworkProfile></TargetFrameworkProfile> <!-- We are currently directly referencing corefx assemblies, so profile7 is not really true -->
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v5.0</TargetFrameworkVersion>
<ImplicitlyExpandTargetFramework>false</ImplicitlyExpandTargetFramework> <!-- To stop msbuild being helpful and referencing the dlls for the profile -->
<NuGetTargetMoniker>.NETStandard,Version=v1.6</NuGetTargetMoniker>
<PortableNuGetMode>true</PortableNuGetMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetDotnetProfile)'=='coreclr' AND '$(DOTNET_PUBLISH_TEST)'=='true' ">
<OutputPath>bin\$(Configuration)\netcoreapp1.0</OutputPath>
<CustomOutputPath>true</CustomOutputPath>
<DOTNET_PUBLISH>true</DOTNET_PUBLISH>
<DOTNET_PUBLISH_PLATFORM>win7-x64</DOTNET_PUBLISH_PLATFORM>
<DOTNET_PUBLISH_PATH>$(FSharpSourcesRoot)\..\tests\testbin\$(Configuration)\coreclr\$(AssemblyName)</DOTNET_PUBLISH_PATH>
<OutputType>Exe</OutputType>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetDotnetProfile)'=='coreclr' AND '$(DOTNET_PUBLISH_COMPILERS)'=='true' ">
<DOTNET_PUBLISH_FSC>true</DOTNET_PUBLISH_FSC>
<DOTNET_PUBLISH_FSC_PATH>$(FSharpSourcesRoot)\..\tests\testbin\$(Configuration)\coreclr\FSC</DOTNET_PUBLISH_FSC_PATH>
<DOTNET_PUBLISH_FSI>true</DOTNET_PUBLISH_FSI>
<DOTNET_PUBLISH_FSI_PATH>$(FSharpSourcesRoot)\..\tests\testbin\$(Configuration)\coreclr\FSC</DOTNET_PUBLISH_FSI_PATH>
</PropertyGroup>
<!-- If building an FSharp.Core for a back version (Mono Debian source builds only), put it in a qualified directory -->
<PropertyGroup>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == ''">$(TargetDotnetProfile)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '3.0'">fsharp30\$(TargetDotnetProfile)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '3.1'">fsharp31\$(TargetDotnetProfile)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '4.0'">fsharp40\$(TargetDotnetProfile)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory>$(TargetDotnetProfile)</TargetFrameworkOutputDirectory>
<IntermediateOutputPath>obj\$(Configuration)\$(TargetFrameworkOutputDirectory)\</IntermediateOutputPath>
</PropertyGroup>
<Choose>
<When Condition="'$(BuildWith)' == 'LKG' AND '$(BUILD_PROTO_WITH_CORECLR_LKG)' == '1'">
<PropertyGroup >
<OutputPath>$(FSharpSourcesRoot)\..\$(Configuration)\$(ProtoFlavour)\bin</OutputPath>
<DotnetSdkVersion>$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\DotnetCLIToolsVersion.txt').Trim())</DotnetSdkVersion>
<FSharpNetCoreLkgPath>$(MSBuildThisFileDirectory)..\Tools\dotnet20\sdk\$(DotnetSdkVersion)\FSharp</FSharpNetCoreLkgPath>
<!-- When using coreclr to bootstrap to proto. We acquire the FSharp.Core LKG, targets LKG, the FSharp.Build LKG from the .NET Framework compiler tools LKG package. -->
<FSharpTargetsPath>..\packages\FSharp.Compiler.Tools.4.1.27\tools\Microsoft.FSharp.Targets</FSharpTargetsPath>
<!-- When using coreclr to bootstrap, the compiler binary comes from the coreclr LKG, invoked using corehost.exe -->
<FscToolPath>$(FSharpSourcesRoot)\..\Tools\dotnet20</FscToolPath>
<FscToolExe Condition="'$(OS)' != 'Unix'">dotnet.exe</FscToolExe>
<FscToolExe Condition="'$(OS)' == 'Unix'">dotnet</FscToolExe>
<DotnetFscCompilerPath>$(FSharpNetCoreLkgPath)\fsc.exe</DotnetFscCompilerPath>
</PropertyGroup>
</When>
<When Condition="'$(BuildWith)' == 'LKG' AND '$(BUILD_PROTO_WITH_CORECLR_LKG)' != '1'">
<!-- Use .NET Framework to bootstrap to proto -->
<PropertyGroup >
<OutputPath>$(FSharpSourcesRoot)\..\$(Configuration)\$(ProtoFlavour)\bin</OutputPath>
<FSharpTargetsPath>..\packages\FSharp.Compiler.Tools.4.1.27\tools\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</When>
<When Condition="'$(BuildWith)' == '' AND '$(TargetDotnetProfile)'=='coreclr'">
<!-- Compiling coreclr with Proto, currently always use a .NET Framework/Mono proto -->
<PropertyGroup>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFrameworkOutputDirectory)\bin</OutputPath>
<FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(ProtoFlavour)\bin</FscToolPath>
<FscToolExe>fsc.exe</FscToolExe>
<FSharpTargetsPath>..\Proto\$(ProtoFlavour)\bin\Microsoft.Portable.FSharp.targets</FSharpTargetsPath>
</PropertyGroup>
</When>
<Otherwise>
<!-- Compiling net40 with Proto -->
<PropertyGroup>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFrameworkOutputDirectory)\bin</OutputPath>
<FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(ProtoFlavour)\bin</FscToolPath>
<FscToolExe>fsc.exe</FscToolExe>
<FSharpTargetsPath>..\Proto\$(ProtoFlavour)\bin\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</Otherwise>
</Choose>
<PropertyGroup>
<CompileDependsOn>ValidateBuildTools;$(CompileDependsOn)</CompileDependsOn>
</PropertyGroup>
<Target Name="ValidateBuildTools" Condition="'$(ProjectLanguage)' == 'FSharp'" >
<Message Text="FSharpTargetsPath = $(FSharpTargetsPath)" />
<Message Text="FSharpSourcesRoot = $(FSharpSourcesRoot)" />
<Message Text="FscToolPath = $(FscToolPath)" />
<Message Text="FsiToolPath = $(FsiToolPath)" />
<Message Text="FsLexToolPath = $(FsLexToolPath)" />
<Message Text="FsYaccToolPath = $(FsYaccToolPath)" />
<Message Text="ToolsDir = $(ToolsDir)" />
<Error Text="Expect $(FSharpTargetsPath) to exist" Condition="'!Exists('$(FSharpTargetsPath)')" />
<Error Text="Expect $(FSharpNetCoreLkgPath)\fsc.exe to exist when BUILD_PROTO_WITH_CORECLR_LKG==1" Condition="'$(BUILD_PROTO_WITH_CORECLR_LKG)' == 1 AND !Exists('$(FSharpNetCoreLkgPath)\fsc.exe')" />
<Error Text="Expect $(FscToolPath)\$(FscToolExe) to exist" Condition="!Exists('$(FscToolPath)\$(FscToolExe)')" />
<Error Text="Expect $(DotnetFscCompilerPath) to exist if non-empty" Condition="'$(DotnetFscCompilerPath)' != '' AND !Exists('$(DotnetFscCompilerPath)')" />
<Error Text="Expect $(FsiToolPath)\$(FsiToolExe) to exist" Condition="!Exists('$(FsiToolPath)\$(FsiToolExe)')" />
<Error Text="Expect $(FsLexToolPath)\$(FsLexToolExe) to exist" Condition="!Exists('$(FsLexToolPath)\$(FsLexToolExe)')" />
<Error Text="Expect $(FsYaccToolPath)\$(FsYaccToolExe) to exist" Condition="!Exists('$(FsYaccToolPath)\$(FsYaccToolExe)')" />
</Target>
<Import Condition="'$(ProjectLanguage)' == 'FSharp'" Project="$(FSharpTargetsPath)"/>
<!-- Hook up .NET Core to enable solution refresh of packages -->
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='coreclr'">
<!-- Implicitly needed by packageresolve.targets. Should file a bug for a better error message here -->
<PackagesDir>$(NUGET_PACKAGES)</PackagesDir>
<NuGetToolPath Condition="'$(NuGetToolPath)' == ''">$(FSharpSourcesRoot)\..\.nuget\</NuGetToolPath>
<NuGetConfigCommandLine>-ConfigFile "$(NuGetConfigFile)"</NuGetConfigCommandLine>
<NugetRestoreCommand>"$(NuGetToolPath)NuGet.exe install -OutputDirectory "$(PackagesDir)" -Config "$(NuGetToolPath)..\NuGet.Config"</NugetRestoreCommand>
<DnuRestoreCommand>"$(NuGetToolPath)NuGet.exe" restore -OutputDirectory "$(PackagesDir)" -Config "$(NuGetToolPath)..\NuGet.Config"</DnuRestoreCommand>
<!-- Current version of .NET Core does not support all semantics used in our packages,
so we ignore the pre-calculation in the lock file and calculate asset applicability in the build task -->
<NuGetIngoreLockFile>true</NuGetIngoreLockFile>
</PropertyGroup>
<Import Condition="'$(TargetDotnetProfile)'=='coreclr'" Project="..\Tools\Build.Common.Targets" />
<PropertyGroup>
<RootNamespace></RootNamespace>
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup>
<PackageLicenceUrl Condition="'$(PackageLicenceUrl)' == ''">https://github.com/Microsoft/visualfsharp/blob/master/License.txt</PackageLicenceUrl>
<PackageProjectUrl Condition="'$(PackageProjectUrl)' == ''">https://github.com/Microsoft/visualfsharp</PackageProjectUrl>
<PackageVersion Condition="'$(PackageVersion)' == ''" >$(NuGetPerBuildPreReleaseVersion)</PackageVersion>
<PackageAuthors Condition="'$(PackageAuthors)' == ''" >Microsoft</PackageAuthors>
<PackageTags Condition="'$(PackageTags)' == ''" >Visual F# Compiler FSharp coreclr functional programming</PackageTags>
</PropertyGroup>
<!-- This build step copies files to the output folder while replacing build variables in the text of those file. -->
<PropertyGroup>
<CompileDependsOn>$(CompileDependsOn);CopyAndSubstituteTextFiles</CompileDependsOn>
</PropertyGroup>
<Target
Name="CopyAndSubstituteTextFiles"
Inputs="@(CopyAndSubstituteText)"
Outputs="@(CopyAndSubstituteText->'$(OutDir)%(TargetFilename)')" >
<Exec Command="&quot;$([System.IO.Path]::GetFullPath('$(FsiToolPath)\$(FsiToolExe)'))&quot; --exec &quot;$(MSBuildThisFileDirectory)scripts/subst.fsx&quot; --in:&quot;%(CopyAndSubstituteText.FullPath)&quot; --out:&quot;$(OutDir)%(CopyAndSubstituteText.TargetFilename)&quot; --pattern1:&quot;%(CopyAndSubstituteText.Pattern1)&quot; --replacement1:&quot;%(CopyAndSubstituteText.Replacement1)&quot; --pattern2:&quot;%(CopyAndSubstituteText.Pattern2)&quot; --replacement2:&quot;%(CopyAndSubstituteText.Replacement2)&quot; " Condition="'$(OS)' != 'Unix'" />
<Exec Command="mono $([System.IO.Path]::GetFullPath('$(FsiToolPath)\$(FsiToolExe)')) --exec &quot;$(MSBuildThisFileDirectory)scripts/subst.fsx&quot; --in:&quot;%(CopyAndSubstituteText.FullPath)&quot; --out:&quot;$(OutDir)%(CopyAndSubstituteText.TargetFilename)&quot; --pattern1:&quot;%(CopyAndSubstituteText.Pattern1)&quot; --replacement1:&quot;%(CopyAndSubstituteText.Replacement1)&quot; --pattern2:&quot;%(CopyAndSubstituteText.Pattern2)&quot; --replacement2:&quot;%(CopyAndSubstituteText.Replacement2)&quot; " Condition="'$(OS)' == 'Unix'" />
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(OutDir)%(CopyAndSubstituteText.TargetFilename)">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<Import Project="$(FSharpSourcesRoot)\scripts\fssrgen.targets" Condition="'$(Configuration)' == 'Proto'" />
<Import Project="Microbuild.Settings.targets" Condition="'$(UseMicroBuild)' == 'true'"/>
<Target Name="dotnetrestore" BeforeTargets="Build" Condition=" '$(TargetDotnetProfile)' == 'coreclr' ">
<Exec Command="$(MSBuildThisFileDirectory)..\.nuget\nuget.exe restore -PackagesDirectory $(PackagesDir) -Config $(MSBuildThisFileDirectory)..\NuGet.Config project.json" />
</Target>
<Target Name="dotnetrestore" BeforeTargets="Build" Condition=" '$(DOTNET_PUBLISH)' == 'true' ">
<SetEnvVar Name="NUGET_PACKAGES" Value="$(NUGET_PACKAGES)" />
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe restore &#45;&#45;configfile $(MSBuildThisFileDirectory)..\NuGet.Config project.json"/>
</Target>
<Target Name="dotnetpublish" AfterTargets="Build" Condition=" '$(DOTNET_PUBLISH)' == 'true' ">
<SetEnvVar Name="NUGET_PACKAGES" Value="$(NUGET_PACKAGES)" />
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe &#45;&#45;verbose publish &#45;&#45;no-build project.json -r $(DOTNET_PUBLISH_PLATFORM) -c $(Configuration) -o $(DOTNET_PUBLISH_PATH)"/>
</Target>
<Target Name="dotnetpublishfsccompiler" AfterTargets="CopyFilesToOutputDirectory" Condition=" '$(DOTNET_PUBLISH_FSC)' == 'true' ">
<SetEnvVar Name="NUGET_PACKAGES" Value="$(NUGET_PACKAGES)" />
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe restore DeployCompiler\fsc\project.json"/>
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe &#45;&#45;verbose publish &#45;&#45;no-build DeployCompiler\fsc\project.json -r $(DOTNET_PUBLISH_PLATFORM) -c $(Configuration) -o $(DOTNET_PUBLISH_FSC_PATH)"/>
</Target>
<Target Name="dotnetpublishfsicompiler" AfterTargets="CopyFilesToOutputDirectory" Condition=" '$(DOTNET_PUBLISH_FSI)' == 'true' ">
<SetEnvVar Name="NUGET_PACKAGES" Value="$(NUGET_PACKAGES)" />
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe restore DeployCompiler\fsi\project.json"/>
<Exec Command="$(MSBuildThisFileDirectory)..\Tools\dotnetcli\dotnet.exe &#45;&#45;verbose publish &#45;&#45;no-build DeployCompiler\fsi\project.json -r $(DOTNET_PUBLISH_PLATFORM) -c $(Configuration) -o $(DOTNET_PUBLISH_FSI_PATH)"/>
</Target>
<Target Name="GenerateSourceLink" BeforeTargets="CoreCompile" Condition="'$(UseSourceLink)' == 'true'">
<PropertyGroup>
<SrcRootDirectory>$([System.IO.Directory]::GetParent($(MSBuildThisFileDirectory.TrimEnd("\"))))</SrcRootDirectory>
<SourceLinkRoot>$(SrcRootDirectory.Replace("\", "\\"))</SourceLinkRoot>
</PropertyGroup>
<Exec Command="git config --get remote.origin.url" ConsoleToMsBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="RemoteUri" />
</Exec>
<!-- https://raw.githubusercontent.com/KevinRansom/visualfsharp/98e8c9a2ca09a36ebd024eb424fc050a831053cd/build.cmd -->
<WriteLinesToFile File="$(IntermediateOutputPath)source_link.json" Overwrite="true" Lines='{"documents": { "$(SourceLinkRoot)\\*" : "$(RemoteUri.Replace(".git", "").Replace("github.com", "raw.githubusercontent.com"))/$(GitHeadSha)/*" }}' />
</Target>
<!-- If BuildVersionFilePath not specified then do nothing -->
<Target Name="CleanVersionFile" Condition ="'$(BuildVersionFilePath)' != '' ">
<PropertyGroup>
<BuildVersionFileDir>$([System.IO.Path]::GetDirectoryName($(BuildVersionFilePath)))</BuildVersionFileDir>
</PropertyGroup>
<RemoveDir Condition="Exists('$(BuildVersionFileDir)')" Directories="$(BuildVersionFileDir)" />
</Target>
<!-- If BuildVersionFilePath not specified then do nothing -->
<Target Name="CreateOrUpdateBuildVersionFile" Condition ="'$(BuildVersionFilePath)' != '' ">
<PropertyGroup>
<BuildVersionFileDir>$([System.IO.Path]::GetDirectoryName($(BuildVersionFilePath)))</BuildVersionFileDir>
<PackageVersionMajor Condition="'$(PackageVersionMajor)' == ''" >$(NuGetPerBuildPreReleaseVersion)</PackageVersionMajor>
<PackageVersionMinor Condition="'$(PackageVersionMinor)' != ''" >$([MSBuild]::Add($(PackageVersionMinor), 1))</PackageVersionMinor>
<PackageVersionMinor Condition="'$(PackageVersionMinor)' == ''" >1</PackageVersionMinor>
</PropertyGroup>
<ItemGroup>
<CurrentVersionLines Include="%3C%3Fxml version=%221.0%22 encoding=%22utf-8%22%3F%3E" />
<CurrentVersionLines Include="%3C!-- This is a generated file. $(VersionSeedSourceComment) Seed Date is $(VersionSeedDate). --%3E" />
<CurrentVersionLines Include="%3CProject xmlns=%22http://schemas.microsoft.com/developer/msbuild/2003%22%3E" />
<CurrentVersionLines Include="%3CPropertyGroup%3E" />
<CurrentVersionLines Include="%3CPackageVersionMajor Condition=%22%27%24(PackageVersionMajor)%27==%27%27%22%3E$(NuGetPerBuildPreReleaseVersion)%3C/PackageVersionMajor%3E" />
<CurrentVersionLines Include="%3CPackageVersionMinor Condition=%22%27%24(PackageVersionMinor)%27==%27%27%22%3E$(PackageVersionMinor)%3C/PackageVersionMinor%3E" />
<CurrentVersionLines Include="%3C/PropertyGroup%3E" />
<CurrentVersionLines Include="%3C/Project%3E" />
</ItemGroup>
<!-- Since by default the file will get dropped at the obj dir, make sure that the dir is created already or else WriteLinesToFile will error. -->
<MakeDir Condition="!Exists('$(BuildVersionFileDir)')" Directories="$(BuildVersionFileDir)" />
<WriteLinesToFile
ContinueOnError="WarnAndContinue"
File="$(BuildVersionFilePath)"
Lines="@(CurrentVersionLines)"
Overwrite="true" />
<!-- Delete old BuildVersion.props files -->
<ItemGroup>
<OldBuildVersionFiles Include="$(BuildVersionFilePath)BuildVersions-*.props" Exclude="$(BuildVersionFilePath)%(BuildVersionFileItem.Filename).props" />
</ItemGroup>
<Delete Files="@(OldBuildVersionFiles)" TreatErrorsAsWarnings="true"/>
</Target>
<UsingTask TaskName="FSharpEmbedResourceText"
AssemblyFile="$(FSharpSourcesRoot)\..\Proto\net40\bin\FSharp.Build.dll"
Condition="'$(Configuration)' != 'Proto'" />
<UsingTask TaskName="FSharpEmbedResXSource"
AssemblyFile="$(FSharpSourcesRoot)\..\Proto\net40\bin\FSharp.Build.dll"
Condition="'$(Configuration)' != 'Proto'" />
<UsingTask TaskName="WriteCodeFragment"
AssemblyFile="$(FSharpSourcesRoot)\..\Proto\net40\bin\FSharp.Build.dll"
Condition="'$(Configuration)' != 'Proto'" />
<Target Name="GenerateFSharpTextResources"
BeforeTargets="GetXlfSources;CoreResGen;PrepareForBuild"
Condition="'$(Configuration)' != 'Proto'">
<MakeDir Directories="$(IntermediateOutputPath)" />
<!-- Generate source for all resx files. -->
<FSharpEmbedResXSource EmbeddedResource="@(EmbeddedResource)" IntermediateOutputPath="$(IntermediateOutputPath)" TargetFramework="$(TargetFramework)">
<Output TaskParameter="GeneratedSource" ItemName="_FsGeneratedResXSource" />
</FSharpEmbedResXSource>
<ItemGroup>
<CompileBefore Include="@(_FsGeneratedResXSource)" />
<FileWrites Include="@(_FsGeneratedResXSource)" />
</ItemGroup>
<!-- Generate resx and source for all txt files. -->
<FSharpEmbedResourceText EmbeddedText="@(EmbeddedText)" IntermediateOutputPath="$(IntermediateOutputPath)">
<Output TaskParameter="GeneratedSource" ItemName="_FsGeneratedTxtSource" />
<Output TaskParameter="GeneratedResx" ItemName="_FsGeneratedResx" />
</FSharpEmbedResourceText>
<ItemGroup>
<CompileBefore Include="@(_FsGeneratedTxtSource)" />
<EmbeddedResource Include="@(_FsGeneratedResx)" />
<FileWrites Include="@(_FsGeneratedTxtSource)" />
<FileWrites Include="@(_FsGeneratedResx)" />
</ItemGroup>
</Target>
<Import Project="..\build\targets\GenerateAssemblyAttributes.targets" />
<Import Project="..\build\targets\GenerateInternalsVisibleTo.targets" />
<UsingTask TaskName="ReplaceFileText" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<InputFilename ParameterType="System.String" Required="true" />
<OutputFilename ParameterType="System.String" Required="true" />
<MatchExpression ParameterType="System.String" Required="true" />
<ReplacementText ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Text.RegularExpressions" />
<Code Type="Fragment" Language="cs">
<![CDATA[
File.WriteAllText(
OutputFilename,
Regex.Replace(File.ReadAllText(InputFilename), MatchExpression, ReplacementText)
);
]]>
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="SetEnvVar" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<Name ParameterType="System.String" Required="true" />
<Value ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
Environment.SetEnvironmentVariable(Name, Value);
]]>
</Code>
</Task>
</UsingTask>
</Project>

Просмотреть файл

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MicroBuildCoreVersion>0.2.0</MicroBuildCoreVersion>
</PropertyGroup>
<Import Project="..\packages\MicroBuild.Core.$(MicroBuildCoreVersion)\build\MicroBuild.Core.props" />
<Target Name="GetVsixPackageVersion" Outputs="$(VsixPackageVersion)">
</Target>
<Import Project="..\packages\MicroBuild.Core.$(MicroBuildCoreVersion)\build\MicroBuild.Core.targets" />
</Project>

Просмотреть файл

@ -34,7 +34,6 @@
<TargetDotnetProfile Condition=" $(TargetFramework.StartsWith('netframework')) ">net40</TargetDotnetProfile>
</PropertyGroup>
<Import Project="..\FSharpSource.Profiles.targets" />
<Import Project="$(BuildVersionFilePath)" Condition="Exists('$(BuildVersionFilePath)')" />
<ItemGroup>

Просмотреть файл

@ -0,0 +1,5 @@
<Project>
<Import Project="..\..\FSharp.Profiles.props" />
</Project>

Просмотреть файл

@ -25,7 +25,7 @@
</PropertyGroup>
<PropertyGroup>
<NuspecFile>$(FSharpSourcesRoot)\fsharp\FSharp.Compiler.nuget\Microsoft.FSharp.Compiler.nuspec</NuspecFile>
<NuspecFile>Microsoft.FSharp.Compiler.nuspec</NuspecFile>
<NuspecProperties>licenseUrl=$(PackageLicenceUrl);version=$(PackageVersion);authors=$(PackageAuthors);projectUrl=$(PackageProjectUrl);tags=$(PackageTags)</NuspecProperties>
<NuspecBasePath>$(OutputPath)/$(TargetFramework)</NuspecBasePath>
</PropertyGroup>

Просмотреть файл

@ -1,9 +1,11 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Testing.FSharp.Compiler</id>
<id>Microsoft.FSharp.Compiler</id>
<description>
Test deployable versionthe fsharp compiler fsc.exe. Supported Platforms: - .NET Core (.netstandard1.6)
.NET Core compatible version of the F# compiler fsc.exe.
Supported Platforms: - .NET Core (.netstandard2.0).
Commit hash: $githeadsha$.
</description>
<language>en-US</language>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
@ -13,53 +15,69 @@
<projectUrl>$projectUrl$</projectUrl>
<tags>$tags$</tags>
<dependencies>
<group targetFramework=".NETStandard1.6">
<dependency id="Microsoft.NETCore.Platforms" version="1.0.1" />
<dependency id="NETStandard.Library" version="1.6.0" />
<group targetFramework=".NETStandard2.0">
<dependency id="Microsoft.NETCore.Platforms" version="2.0.0" />
<dependency id="NETStandard.Library" version="2.0.0" />
<dependency id="System.Collections.Immutable" version="1.5.0" />
<dependency id="System.Console" version="4.0.0" />
<dependency id="System.Diagnostics.Process" version="4.1.0" />
<dependency id="System.Diagnostics.TraceSource" version="4.0.0" />
<dependency id="System.Linq.Expressions" version="4.1.0" />
<dependency id="System.Linq.Queryable" version="4.0.1" />
<dependency id="System.Net.Requests" version="4.0.11" />
<dependency id="System.Reflection.Emit" version="4.0.1" />
<dependency id="System.Diagnostics.Process" version="4.3.0" />
<dependency id="System.Diagnostics.TraceSource" version="4.3.0" />
<dependency id="System.Linq.Expressions" version="4.3.0" />
<dependency id="System.Linq.Queryable" version="4.3.0" />
<dependency id="System.Net.Requests" version="4.3.0" />
<dependency id="System.Reflection.Emit" version="4.3.0" />
<dependency id="System.Reflection.Metadata" version="1.6.0" />
<dependency id="System.Runtime.InteropServices" version="4.1.0" />
<dependency id="System.Runtime.Loader" version="4.0.0" />
<dependency id="System.Security.Cryptography.Algorithms" version="4.2.0" />
<dependency id="System.Threading.Tasks.Parallel" version="4.0.1" />
<dependency id="System.Threading.Thread" version="4.0.0" />
<dependency id="System.Threading.ThreadPool" version="4.0.10" />
<dependency id="System.ValueTuple" version="4.3.0" />
<dependency id="System.Runtime.InteropServices" version="4.3.0" />
<dependency id="System.Runtime.Loader" version="4.3.0" />
<dependency id="System.Security.Cryptography.Algorithms" version="4.3.0" />
<dependency id="System.Threading.Tasks.Parallel" version="4.3.0" />
<dependency id="System.Threading.Thread" version="4.3.0" />
<dependency id="System.Threading.ThreadPool" version="4.3.0" />
<dependency id="System.ValueTuple" version="4.4.0" />
</group>
</dependencies>
<contentFiles>
<files include="any\any\default.win32manifest" buildAction="Content" copyToOutput="true" flatten="false" />
<files include="any\any\Microsoft.FSharp.Targets" buildAction="Content" copyToOutput="true" flatten="false" />
<files include="any\any\Microsoft.Portable.FSharp.targets" buildAction="Content" copyToOutput="true" flatten="false" />
<files include="any\any\Microsoft.FSharp.NetSdk.props" buildAction="Content" copyToOutput="true" flatten="false" />
<files include="any\any\Microsoft.FSharp.NetSdk.targets" buildAction="Content" copyToOutput="true" flatten="false" />
<files include="any\any\Microsoft.FSharp.Overrides.NetSdk.targets" buildAction="Content" copyToOutput="true" flatten="false" />
</contentFiles>
</metadata>
<files>
<!--
Why is this like this?
This package is used to deploy the fsharp compiler tools as built product.
We need nuget package to merely deploy the contents of the lib directory.
tools, build and runtime/native make unnecessary copies.
this approach gives a very small deployment. Which is kind of necessary.
-->
<file src="fsc.exe" target="lib\netstandard1.6" />
<file src="fsi.exe" target="lib\netstandard1.6" />
<file src="FSharp.Core.dll" target="lib\netstandard1.6" />
<file src="FSharp.Compiler.Private.dll" target="lib\netstandard1.6" />
<file src="FSharp.Build.dll" target="lib\netstandard1.6" />
<file src="FSharp.Compiler.Interactive.Settings.dll" target="lib\netstandard1.6" />
<file src="default.win32manifest" target="runtimes\any\native" />
<file src="Microsoft.FSharp.Targets" target="runtimes\any\native" />
<file src="Microsoft.Portable.FSharp.Targets" target="runtimes\any\native" />
<file src="Microsoft.FSharp.NetSdk.props" target="runtimes\any\native" />
<file src="Microsoft.FSharp.NetSdk.targets" target="runtimes\any\native" />
<file src="Microsoft.FSharp.Overrides.NetSdk.targets" target="runtimes\any\native" />
<file src="**\FSharp.Core.resources.dll" target="lib\netstandard1.6" />
<file src="**\FSharp.Compiler.Private.resources.dll" target="lib\netstandard1.6" />
<file src="**\FSharp.Compiler.Interactive.Settings.resources.dll" target="lib\netstandard1.6" />
<file src="**\FSharp.Build.resources.dll" target="lib\netstandard1.6" />
<!-- assemblies -->
<file src="fsc.exe" target="lib\netstandard2.0" />
<file src="fsi.exe" target="lib\netstandard2.0" />
<file src="FSharp.Core.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.dll" target="lib\netstandard2.0" />
<file src="FSharp.Build.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Interactive.Settings.dll" target="lib\netstandard2.0" />
<!-- symbols -->
<file src="fsc.pdb" target="lib\netstandard2.0" />
<file src="fsi.pdb" target="lib\netstandard2.0" />
<file src="FSharp.Core.pdb" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.pdb" target="lib\netstandard2.0" />
<file src="FSharp.Build.pdb" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Interactive.Settings.pdb" target="lib\netstandard2.0" />
<!-- additional files -->
<file src="default.win32manifest" target="contentFiles\any\any" />
<file src="Microsoft.FSharp.Targets" target="contentFiles\any\any" />
<file src="Microsoft.Portable.FSharp.Targets" target="contentFiles\any\any" />
<file src="Microsoft.FSharp.NetSdk.props" target="contentFiles\any\any" />
<file src="Microsoft.FSharp.NetSdk.targets" target="contentFiles\any\any" />
<file src="Microsoft.FSharp.Overrides.NetSdk.targets" target="contentFiles\any\any" />
<!-- resources -->
<file src="**\FSharp.Core.resources.dll" target="lib\netstandard2.0" />
<file src="**\FSharp.Compiler.Private.resources.dll" target="lib\netstandard2.0" />
<file src="**\FSharp.Compiler.Interactive.Settings.resources.dll" target="lib\netstandard2.0" />
<file src="**\FSharp.Build.resources.dll" target="lib\netstandard2.0" />
</files>
</package>

Просмотреть файл

@ -25,7 +25,7 @@
<CompileBefore Include="$(FsCoreDir)\prim-types-prelude.fs">
<Link>Primitives/prim-types-prelude.fs</Link>
</CompileBefore>
<Compile Include="$(FsCoreDir)\SR.fs">
<Compile Include="SR.fs">
<Link>Primitives/SR.fs</Link>
</Compile>
<Compile Include="$(FsCoreDir)\prim-types.fsi">

Просмотреть файл

Просмотреть файл

@ -29,7 +29,6 @@
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj" />
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Build\FSharp.Build.fsproj" />
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj" />
</ItemGroup>

Просмотреть файл

@ -22,10 +22,11 @@
<SystemValueTuplePackageVersion>4.4.0</SystemValueTuplePackageVersion>
<!-- other packages -->
<MicrosoftBuildPackageVersion>15.1.548</MicrosoftBuildPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>15.1.548</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildTasksCorePackageVersion>15.1.548</MicrosoftBuildTasksCorePackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>15.1.548</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftBuildOverallPackagesVersion>15.8.166</MicrosoftBuildOverallPackagesVersion>
<MicrosoftBuildPackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildPackageVersion>
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildFrameworkPackageVersion>
<MicrosoftBuildTasksCorePackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildTasksCorePackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildOverallPackagesVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftWin32RegistryPackageVersion>4.3.0</MicrosoftWin32RegistryPackageVersion>
</PropertyGroup>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<!-- empty to prevent directory crawling -->
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<!-- empty to prevent directory crawling -->
</Project>

Просмотреть файл

@ -0,0 +1,32 @@
<Project>
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<ItemGroup>
<Projects Include="fslex\fslex.fsproj" />
<Projects Include="fsyacc\fsyacc.fsproj" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(Projects)" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Rebuild">
<MSBuild Projects="@(Projects)" Targets="Rebuild" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(Projects)" Targets="Clean" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Restore">
<MSBuild Projects="@(Projects)" Targets="Restore" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Publish">
<MSBuild Projects="@(Projects)" Targets="Publish" Properties="Configuration=$(Configuration)" />
</Target>
</Project>

Просмотреть файл

@ -1,69 +1,56 @@
<!--
***********************************************************************************************
FsLexYacc.targets
<Project>
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy. Incorrect changes to this file will make it
impossible to load or build your projects from the command-line or the IDE.
<PropertyGroup>
<DotNetExe Condition=" '$(OS)' == 'Unix' ">dotnet</DotNetExe>
<DotNetExe Condition=" '$(OS)' != 'Unix' ">dotnet.exe</DotNetExe>
<!-- When building from source, `dotnet` is expected to be on the path. -->
<DotNetExePath>$(DotNetExe)</DotNetExePath>
</PropertyGroup>
PowerPack build rules.
<!-- Build FsLex files. -->
<Target Name="CallFsLex"
Inputs="@(FsLex)"
Outputs="@(FsLex->'$(FsLexOutputFolder)%(Filename).fs')"
Condition="'@(FsLex)'!=''"
BeforeTargets="CoreCompile">
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<PropertyGroup>
<FsLexPath>$(MSBuildThisFileDirectory)fslex\bin\Proto\netcoreapp2.0\fslex.dll</FsLexPath>
</PropertyGroup>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CompileDependsOn>CallFsLex;CallFsYacc;$(CompileDependsOn)</CompileDependsOn>
<FsLexToolPath Condition="'$(FsLexToolPath)' == ''">$(MSBuildThisFileDirectory)</FsLexToolPath>
<FsLexToolExe Condition="'$(FsLexToolExe)' == ''">fslex.exe</FsLexToolExe>
<FsYaccToolPath Condition="'$(FsYaccToolPath)' == ''">$(MSBuildThisFileDirectory)</FsYaccToolPath>
<FsYaccToolExe Condition="'$(FsYaccToolExe)' == ''">fsyacc.exe</FsYaccToolExe>
</PropertyGroup>
<!-- Create the output directory -->
<MakeDir Directories="$(FsLexOutputFolder)"/>
<!-- Build FsLex files. -->
<Target
Name="CallFsLex"
Inputs="@(FsLex)"
Outputs="@(FsLex->'$(FsLexOutputFolder)%(Filename).fs')"
Condition="'@(FsLex)'!=''">
<!-- Run the tool -->
<Exec Command="&quot;$(DotNetExePath)&quot; &quot;$(FsLexPath)&quot; -o &quot;$(FsLexOutputFolder)%(FsLex.Filename).fs&quot; %(FsLex.OtherFlags) %(FsLex.Identity)" />
<!-- Create the output directory -->
<MakeDir Directories="$(FsLexOutputFolder)"/>
<!-- Call FsLex -->
<Exec Command="&quot;$(FsLexToolPath)\$(FsLexToolExe)&quot; -o &quot;$(FsLexOutputFolder)%(FsLex.Filename).fs&quot; %(FsLex.OtherFlags) %(FsLex.Identity)" Condition="'$(OS)' != 'Unix'" />
<Exec Command="mono &quot;$(FsLexToolPath)\$(FsLexToolExe)&quot; -o &quot;$(FsLexOutputFolder)%(FsLex.Filename).fs&quot; %(FsLex.OtherFlags) %(FsLex.Identity)" Condition="'$(OS)' == 'Unix'" />
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(FsLexOutputFolder)%(FsLex.Filename).fs">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(FsLexOutputFolder)%(FsLex.Filename).fs">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<!-- Build FsYacc files. -->
<Target
Name="CallFsYacc"
Inputs="@(FsYacc)"
Outputs="@(FsYacc->'$(FsYaccOutputFolder)%(Filename).fs')"
Condition="'@(FsYacc)'!=''">
<!-- Build FsYacc files. -->
<Target Name="CallFsYacc"
Inputs="@(FsYacc)"
Outputs="@(FsYacc->'$(FsYaccOutputFolder)%(Filename).fs')"
Condition="'@(FsYacc)'!=''"
BeforeTargets="CoreCompile">
<!-- Create the output directory -->
<MakeDir Directories="$(FsYaccOutputFolder)"/>
<Exec Command="&quot;$(FsYaccToolPath)\$(FsYaccToolExe)&quot; -o &quot;$(FsYaccOutputFolder)%(FsYacc.Filename).fs&quot; %(FsYacc.OtherFlags) %(FsYacc.Identity)" Condition="'$(OS)' != 'Unix'" />
<Exec Command="mono &quot;$(FsYaccToolPath)\$(FsYaccToolExe)&quot; -o &quot;$(FsYaccOutputFolder)%(FsYacc.Filename).fs&quot; %(FsYacc.OtherFlags) %(FsYacc.Identity)" Condition="'$(OS)' == 'Unix'" />
<PropertyGroup>
<FsYaccPath>$(MSBuildThisFileDirectory)fsyacc\bin\Proto\netcoreapp2.0\fsyacc.dll</FsYaccPath>
</PropertyGroup>
<!-- Create the output directory -->
<MakeDir Directories="$(FsYaccOutputFolder)" />
<!-- Run the tool -->
<Exec Command="&quot;$(DotNetExePath)&quot; &quot;$(FsYaccPath)&quot; -o &quot;$(FsYaccOutputFolder)%(FsYacc.Filename).fs&quot; %(FsYacc.OtherFlags) %(FsYacc.Identity)" />
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(FsYaccOutputFolder)%(FsYacc.Filename).fs">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<!-- Make sure it will get cleaned -->
<CreateItem Include="$(FsYaccOutputFolder)%(FsYacc.Filename).fs">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<ItemGroup>
<AvailableItemName Include="FsLex">
<Visible>false</Visible>
</AvailableItemName>
<AvailableItemName Include="FsYacc">
<Visible>false</Visible>
</AvailableItemName>
</ItemGroup>
</Project>

Просмотреть файл

@ -67,7 +67,8 @@ let sentinel = 255 * 256 + 255
let lineCount = ref 0
let cfprintfn (os: #TextWriter) fmt = Printf.kfprintf (fun () -> incr lineCount; os.WriteLine()) os fmt
let main() =
[<EntryPoint>]
let main(args: string[]) =
try
let filename = (match !input with Some x -> x | None -> failwith "no input given")
let domain = if !unicode then "Unicode" else "Ascii"
@ -216,10 +217,8 @@ let main() =
printLinesIfCodeDefined spec.BottomCode
cfprintfn os "# 3000000 \"%s\"" output;
0
with e ->
eprintf "FSLEX: error FSL000: %s" (match e with Failure s -> s | e -> e.ToString());
exit 1
let result = main()

Просмотреть файл

@ -1,12 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<DefineConstants>INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstant)</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="fslex.fsx" />
<Compile Include="Lexing.fsi" />
<Compile Include="Lexing.fs" />
<Compile Include="Parsing.fsi" />
<Compile Include="Parsing.fs" />
<Compile Include="Arg.fsi" />
<Compile Include="Arg.fs" />
<Compile Include="fslexast.fs" />
<Compile Include="fslexpars.fs" />
<Compile Include="fslexlex.fs" />
<Compile Include="fslex.fs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,3 +0,0 @@
#load "Lexing.fsi" "Lexing.fs" "Parsing.fsi" "Parsing.fs" "Arg.fsi" "Arg.fs" "fslexast.fs" "fslexpars.fs" "fslexlex.fs" "fslex.fs"
let v = FsLexYacc.FsLex.Driver.result

Просмотреть файл

@ -1,12 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<DefineConstants>COMPILED;$(DefineConstant)</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="fssrgen.fsx" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,476 +0,0 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
let PrintErr(filename, line, msg) =
printfn "%s(%d): error : %s" filename line msg
let Err(filename, line, msg) =
PrintErr(filename, line, msg)
printfn "Note that the syntax of each line is one of these three alternatives:"
printfn "# comment"
printfn "ident,\"string\""
printfn "errNum,ident,\"string\""
failwith (sprintf "there were errors in the file '%s'" filename)
let xmlBoilerPlateString = @"<?xml version=""1.0"" encoding=""utf-8""?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name=""resmimetype"">text/microsoft-resx</resheader>
<resheader name=""version"">2.0</resheader>
<resheader name=""reader"">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name=""writer"">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name=""Name1""><value>this is my long string</value><comment>this is a comment</comment></data>
<data name=""Color1"" type=""System.Drawing.Color, System.Drawing"">Blue</data>
<data name=""Bitmap1"" mimetype=""application/x-microsoft.net.object.binary.base64"">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name=""Icon1"" type=""System.Drawing.Icon, System.Drawing"" mimetype=""application/x-microsoft.net.object.bytearray.base64"">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of ""resheader"" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id=""root"" xmlns="""" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
<xsd:import namespace=""http://www.w3.org/XML/1998/namespace"" />
<xsd:element name=""root"" msdata:IsDataSet=""true"">
<xsd:complexType>
<xsd:choice maxOccurs=""unbounded"">
<xsd:element name=""metadata"">
<xsd:complexType>
<xsd:sequence>
<xsd:element name=""value"" type=""xsd:string"" minOccurs=""0"" />
</xsd:sequence>
<xsd:attribute name=""name"" use=""required"" type=""xsd:string"" />
<xsd:attribute name=""type"" type=""xsd:string"" />
<xsd:attribute name=""mimetype"" type=""xsd:string"" />
<xsd:attribute ref=""xml:space"" />
</xsd:complexType>
</xsd:element>
<xsd:element name=""assembly"">
<xsd:complexType>
<xsd:attribute name=""alias"" type=""xsd:string"" />
<xsd:attribute name=""name"" type=""xsd:string"" />
</xsd:complexType>
</xsd:element>
<xsd:element name=""data"">
<xsd:complexType>
<xsd:sequence>
<xsd:element name=""value"" type=""xsd:string"" minOccurs=""0"" msdata:Ordinal=""1"" />
<xsd:element name=""comment"" type=""xsd:string"" minOccurs=""0"" msdata:Ordinal=""2"" />
</xsd:sequence>
<xsd:attribute name=""name"" type=""xsd:string"" use=""required"" msdata:Ordinal=""1"" />
<xsd:attribute name=""type"" type=""xsd:string"" msdata:Ordinal=""3"" />
<xsd:attribute name=""mimetype"" type=""xsd:string"" msdata:Ordinal=""4"" />
<xsd:attribute ref=""xml:space"" />
</xsd:complexType>
</xsd:element>
<xsd:element name=""resheader"">
<xsd:complexType>
<xsd:sequence>
<xsd:element name=""value"" type=""xsd:string"" minOccurs=""0"" msdata:Ordinal=""1"" />
</xsd:sequence>
<xsd:attribute name=""name"" type=""xsd:string"" use=""required"" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name=""resmimetype"">
<value>text/microsoft-resx</value>
</resheader>
<resheader name=""version"">
<value>2.0</value>
</resheader>
<resheader name=""reader"">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name=""writer"">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>"
type HoleType = string
// The kinds of 'holes' we can do
let ComputeHoles filename lineNum (txt:string) : ResizeArray<HoleType> * string =
// takes in a %d%s kind of string, returns array of HoleType and {0}{1} kind of string
let mutable i = 0
let mutable holeNumber = 0
let mutable holes = ResizeArray() // order
let sb = new System.Text.StringBuilder()
let AddHole holeType =
sb.Append(sprintf "{%d}" holeNumber) |> ignore
holeNumber <- holeNumber + 1
holes.Add(holeType)
while i < txt.Length do
if txt.[i] = '%' then
if i+1 = txt.Length then
Err(filename, lineNum, "(at end of string) % must be followed by d, f, s, or %")
else
match txt.[i+1] with
| 'd' -> AddHole "System.Int32"
| 'f' -> AddHole "System.Double"
| 's' -> AddHole "System.String"
| '%' -> sb.Append('%') |> ignore
| c -> Err(filename, lineNum, sprintf "'%%%c' is not a valid sequence, only %%d %%f %%s or %%%%" c)
i <- i + 2
else
match txt.[i] with
| '{' -> sb.Append "{{" |> ignore
| '}' -> sb.Append "}}" |> ignore
| c -> sb.Append c |> ignore
i <- i + 1
//printfn "holes.Length = %d, lineNum = %d" holes.Length //lineNum txt
(holes, sb.ToString())
let Unquote (s : string) =
if s.StartsWith "\"" && s.EndsWith "\"" then s.Substring(1, s.Length - 2)
else failwith "error message string should be quoted"
let ParseLine filename lineNum (txt:string) =
let mutable errNum = None
let identB = new System.Text.StringBuilder()
let mutable i = 0
// parse optional error number
if i < txt.Length && System.Char.IsDigit txt.[i] then
let numB = new System.Text.StringBuilder()
while i < txt.Length && System.Char.IsDigit txt.[i] do
numB.Append txt.[i] |> ignore
i <- i + 1
errNum <- Some(int (numB.ToString()))
if i = txt.Length || not(txt.[i] = ',') then
Err(filename, lineNum, sprintf "After the error number '%d' there should be a comma" errNum.Value)
// Skip the comma
i <- i + 1
// parse short identifier
if i < txt.Length && not(System.Char.IsLetter(txt.[i])) then
Err(filename, lineNum, sprintf "The first character in the short identifier should be a letter, but found '%c'" txt.[i])
while i < txt.Length && System.Char.IsLetterOrDigit txt.[i] do
identB.Append txt.[i] |> ignore
i <- i + 1
let ident = identB.ToString()
if ident.Length = 0 then
Err(filename, lineNum, "Did not find the short identifier")
else
if i = txt.Length || not(txt.[i] = ',') then
Err(filename, lineNum, sprintf "After the identifier '%s' there should be a comma" ident)
else
// Skip the comma
i <- i + 1
if i = txt.Length then
Err(filename, lineNum, sprintf "After the identifier '%s' and comma, there should be the quoted string resource" ident)
else
let str =
try
System.String.Format(Unquote(txt.Substring i)) // Format turns e.g '\n' into that char, but also requires that we 'escape' curlies in the original .txt file, e.g. "{{"
with
e -> Err(filename, lineNum, sprintf "Error calling System.String.Format (note that curly braces must be escaped, and there cannot be trailing space on the line): >>>%s<<< -- %s" (txt.Substring i) e.Message)
let holes, netFormatString = ComputeHoles filename lineNum str
(lineNum, (errNum,ident), str, holes.ToArray(), netFormatString)
let stringBoilerPlatePrefix = @"
open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
open Microsoft.FSharp.Reflection
open System.Reflection
// (namespaces below for specific case of using the tool to compile FSharp.Core itself)
open Microsoft.FSharp.Core
open Microsoft.FSharp.Core.Operators
open Microsoft.FSharp.Text
open Microsoft.FSharp.Collections
open Printf
"
let StringBoilerPlate filename =
@"
// BEGIN BOILERPLATE
static let getCurrentAssembly () =
#if FX_RESHAPED_REFLECTION
typeof<SR>.GetTypeInfo().Assembly
#else
System.Reflection.Assembly.GetExecutingAssembly()
#endif
static let getTypeInfo (t: System.Type) =
#if FX_RESHAPED_REFLECTION
t.GetTypeInfo()
#else
t
#endif
static let resources = lazy (new System.Resources.ResourceManager(""" + filename + @""", getCurrentAssembly()))
static let GetString(name:string) =
let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture)
#if DEBUG
if null = s then
System.Diagnostics.Debug.Assert(false, sprintf ""**RESOURCE ERROR**: Resource token %s does not exist!"" name)
#endif
s
static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) =
FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl)
static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition()
static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer)
static let isFunctionType (ty1:System.Type) =
isNamedType(ty1) && getTypeInfo(ty1).IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC)
static let rec destFunTy (ty:System.Type) =
if isFunctionType ty then
ty, ty.GetGenericArguments()
else
match getTypeInfo(ty).BaseType with
| null -> failwith ""destFunTy: not a function type""
| b -> destFunTy b
static let buildFunctionForOneArgPat (ty: System.Type) impl =
let _,tys = destFunTy ty
let rty = tys.[1]
// PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf ""%x""')
mkFunctionValue tys (fun inp -> impl rty inp)
static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj =
match fmt.[i] with
| '%' -> go args ty (i+1)
| 'd'
| 'f'
| 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1))
| _ -> failwith ""bad format specifier""
// newlines and tabs get converted to strings when read from a resource file
// this will preserve their original intention
static let postProcessString (s : string) =
s.Replace(""\\n"",""\n"").Replace(""\\t"",""\t"").Replace(""\\r"",""\r"").Replace(""\\\"""", ""\"""")
static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T =
let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt
let len = fmt.Length
/// Function to capture the arguments and then run.
let rec capture args ty i =
if i >= len || (fmt.[i] = '%' && i+1 >= len) then
let b = new System.Text.StringBuilder()
b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore
box(b.ToString())
// REVIEW: For these purposes, this should be a nop, but I'm leaving it
// in incase we ever decide to support labels for the error format string
// E.g., ""<name>%s<foo>%d""
elif System.Char.IsSurrogatePair(fmt,i) then
capture args ty (i+2)
else
match fmt.[i] with
| '%' ->
let i = i+1
capture1 fmt i args ty capture
| _ ->
capture args ty (i+1)
(unbox (capture [] (typeof<'T>) 0) : 'T)
static let mutable swallowResourceText = false
static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T =
if swallowResourceText then
sprintf fmt
else
let mutable messageString = GetString(messageID)
messageString <- postProcessString messageString
createMessageString messageString fmt
/// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines).
static member SwallowResourceText with get () = swallowResourceText
and set (b) = swallowResourceText <- b
// END BOILERPLATE
"
let RunMain(filename, outFilename, outXmlFilenameOpt, projectNameOpt) =
try
let justfilename = System.IO.Path.GetFileNameWithoutExtension(filename)
if justfilename |> Seq.exists (fun c -> not(System.Char.IsLetterOrDigit(c))) then
Err(filename, 0, sprintf "The filename '%s' is not allowed; only letters and digits can be used, as the filename also becomes the namespace for the SR class" justfilename)
printfn "fssrgen.fsx: Reading %s" filename
let lines = System.IO.File.ReadAllLines(filename)
|> Array.mapi (fun i s -> i,s) // keep line numbers
|> Array.filter (fun (i,s) -> not(s.StartsWith "#")) // filter out comments
printfn "fssrgen.fsx: Parsing %s" filename
let stringInfos = lines |> Array.map (fun (i,s) -> ParseLine filename i s)
// now we have array of (lineNum, ident, str, holes, netFormatString) // str has %d, netFormatString has {0}
printfn "fssrgen.fsx: Validating %s" filename
// validate that all the idents are unique
let allIdents = new System.Collections.Generic.Dictionary<string,int>()
for (line,(_,ident),_,_,_) in stringInfos do
if allIdents.ContainsKey(ident) then
Err(filename,line,sprintf "Identifier '%s' is already used previously on line %d - each identifier must be unique" ident allIdents.[ident])
allIdents.Add(ident,line)
printfn "fssrgen.fsx: Validating uniqueness of %s" filename
// validate that all the strings themselves are unique
let allStrs = new System.Collections.Generic.Dictionary<string,(int*string)>()
for (line,(_,ident),str,_,_) in stringInfos do
if allStrs.ContainsKey(str) then
let prevLine,prevIdent = allStrs.[str]
Err(filename,line,sprintf "String '%s' already appears on line %d with identifier '%s' - each string must be unique" str prevLine prevIdent)
allStrs.Add(str,(line,ident))
printfn "fssrgen.fsx: Generating %s" outFilename
use outStream = System.IO.File.Create outFilename
use out = new System.IO.StreamWriter(outStream)
fprintfn out "// This is a generated file; the original input is '%s'" filename
fprintfn out "namespace %s" justfilename
if Option.isNone outXmlFilenameOpt then
fprintfn out "type internal SR private() ="
else
fprintfn out "%s" stringBoilerPlatePrefix
fprintfn out "type internal SR private() ="
let theResourceName = match projectNameOpt with Some p -> sprintf "%s.%s" p justfilename | None -> justfilename
fprintfn out "%s" (StringBoilerPlate theResourceName)
printfn "fssrgen.fsx: Generating resource methods for %s" outFilename
// gen each resource method
stringInfos |> Seq.iter (fun (lineNum, (optErrNum,ident), str, holes, netFormatString) ->
let formalArgs = new System.Text.StringBuilder()
let actualArgs = new System.Text.StringBuilder()
let firstTime = ref true
let n = ref 0
formalArgs.Append "(" |> ignore
for hole in holes do
if !firstTime then
firstTime := false
else
formalArgs.Append ", " |> ignore
actualArgs.Append " " |> ignore
formalArgs.Append(sprintf "a%d : %s" !n hole) |> ignore
actualArgs.Append(sprintf "a%d" !n) |> ignore
n := !n + 1
formalArgs.Append ")" |> ignore
fprintfn out " /// %s" str
fprintfn out " /// (Originally from %s:%d)" filename (lineNum+1)
let justPercentsFromFormatString =
(holes |> Array.fold (fun acc holeType ->
acc + match holeType with
| "System.Int32" -> ",,,%d"
| "System.Double" -> ",,,%f"
| "System.String" -> ",,,%s"
| _ -> failwith "unreachable") "") + ",,,"
let errPrefix = match optErrNum with
| None -> ""
| Some n -> sprintf "%d, " n
if Option.isNone outXmlFilenameOpt then
fprintfn out " static member %s%s = (%ssprintf \"%s\" %s)" ident (formalArgs.ToString()) errPrefix str (actualArgs.ToString())
else
fprintfn out " static member %s%s = (%sGetStringFunc(\"%s\",\"%s\") %s)" ident (formalArgs.ToString()) errPrefix ident justPercentsFromFormatString (actualArgs.ToString())
)
if Option.isSome outXmlFilenameOpt then
printfn "fssrgen.fsx: Generating .resx for %s" outFilename
fprintfn out ""
// gen validation method
fprintfn out " /// Call this method once to validate that all known resources are valid; throws if not"
fprintfn out " static member RunStartupValidation() ="
stringInfos |> Seq.iter (fun (lineNum, (optErrNum,ident), str, holes, netFormatString) ->
fprintfn out " ignore(GetString(\"%s\"))" ident
)
fprintfn out " ()" // in case there are 0 strings, we need the generated code to parse
// gen to resx
let xd = new System.Xml.XmlDocument()
xd.LoadXml(xmlBoilerPlateString)
stringInfos |> Seq.iter (fun (lineNum, (optErrNum,ident), str, holes, netFormatString) ->
let xn = xd.CreateElement("data")
xn.SetAttribute("name",ident) |> ignore
xn.SetAttribute("xml:space","preserve") |> ignore
let xnc = xd.CreateElement "value"
xn.AppendChild xnc |> ignore
xnc.AppendChild(xd.CreateTextNode netFormatString) |> ignore
xd.LastChild.AppendChild xn |> ignore
)
use outXmlStream = System.IO.File.Create outXmlFilenameOpt.Value
xd.Save outXmlStream
printfn "fssrgen.fsx: Done %s" outFilename
0
with e ->
PrintErr(filename, 0, sprintf "An exception occurred when processing '%s'\n%s" filename (e.ToString()))
1
#if COMPILED
[<EntryPoint>]
#endif
let Main args =
match args |> List.ofArray with
| [ inputFile; outFile; ] ->
let filename = System.IO.Path.GetFullPath(inputFile)
let outFilename = System.IO.Path.GetFullPath(outFile)
RunMain(filename, outFilename, None, None)
| [ inputFile; outFile; outXml ] ->
let filename = System.IO.Path.GetFullPath inputFile
let outFilename = System.IO.Path.GetFullPath outFile
let outXmlFilename = System.IO.Path.GetFullPath outXml
RunMain(filename, outFilename, Some outXmlFilename, None)
| [ inputFile; outFile; outXml; projectName ] ->
let filename = System.IO.Path.GetFullPath inputFile
let outFilename = System.IO.Path.GetFullPath outFile
let outXmlFilename = System.IO.Path.GetFullPath outXml
RunMain(filename, outFilename, Some outXmlFilename, Some projectName)
| _ ->
printfn "Error: invalid arguments."
printfn "Usage: <INPUTFILE> <OUTPUTFILE> <OUTXMLFILE> <PROJECTNAME>"
1
#if !COMPILED
printfn "fssrgen: args = %A" fsi.CommandLineArgs
Main (fsi.CommandLineArgs |> Seq.skip 1 |> Seq.toArray)
#endif

Просмотреть файл

@ -1,57 +0,0 @@
<!--
***********************************************************************************************
FSharp.SRGen.targets
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy. Incorrect changes to this file will make it
impossible to load or build your projects from the command-line or the IDE.
See Licence.txt file in project root for License details.
Copyright (C) Microsoft Corporation. All Rights Reserved.
***********************************************************************************************
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PrepareForBuildDependsOn>ProcessFsSrGen;$(PrepareForBuildDependsOn)</PrepareForBuildDependsOn>
</PropertyGroup>
<!-- Build FsSrGen files. -->
<Target
Name="CallFsSrGen"
Inputs="@(FsSrGen)"
Outputs="@(FsSrGen->'$(IntermediateOutputPath)%(Filename).fs');@(FsSrGen->'$(IntermediateOutputPath)%(Filename).resx')"
Condition="'@(FsSrGen)'!=''">
<!-- Create the output directory in case it doesn't exist yet -->
<MakeDir Directories="$(IntermediateOutputPath)"/>
<!-- Run the tool -->
<Exec Command="&quot;$([System.IO.Path]::GetFullPath('$(FsiToolPath)\$(FsiToolExe)'))&quot; --exec &quot;$(MSBuildThisFileDirectory)fssrgen.fsx&quot; &quot;%(FsSrGen.FullPath)&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).fs&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).resx&quot; $(FsSrGenProjectName)" Condition="'$(OS)' != 'Unix'" />
<Exec Command="mono $([System.IO.Path]::GetFullPath('$(FsiToolPath)\$(FsiToolExe)')) --exec &quot;$(MSBuildThisFileDirectory)fssrgen.fsx&quot; &quot;%(FsSrGen.FullPath)&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).fs&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).resx&quot; $(FsSrGenProjectName)" Condition="'$(OS)' == 'Unix'" />
</Target>
<!-- Process FsSrGen rules. No 'Inputs' and 'Outputs' means this rule always runs if there is any @FsSrGen, even if up-to-date. -->
<Target Name="ProcessFsSrGen" DependsOnTargets="CallFsSrGen" Condition="'@(FsSrGen)'!=''">
<!-- Make the outputs magically part of the project -->
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).fs">
<Output TaskParameter="Include" ItemName="CompileBefore"/>
</CreateItem>
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).resx"
AdditionalMetadata="ManifestResourceName=%(FsSrGen.Filename)">
<!-- Note AdditionalMetadata above; we need the name in the manifest to be Foo.resources and not e.g. obj.Debug.Foo.resources -->
<Output TaskParameter="Include" ItemName="EmbeddedResource"/>
</CreateItem>
<!-- Add them to the list of things under the IntermediateOutputPath that should be 'clean'ed -->
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).fs">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).resx">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<ItemGroup>
<AvailableItemName Include="FsSrGen">
<Visible>false</Visible>
</AvailableItemName>
</ItemGroup>
</Project>

Просмотреть файл

@ -523,9 +523,11 @@ let main() =
logf (fun oso -> oso.Close())
let result =
try main()
[<EntryPoint>]
let result(args: string[]) =
try
main()
0
with e ->
eprintf "FSYACC: error FSY000: %s" (match e with Failure s -> s | e -> e.Message);
exit 1
eprintf "FSYACC: error FSY000: %s" (match e with Failure s -> s | e -> e.Message);
1

Просмотреть файл

@ -1,12 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<DefineConstants>INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstant)</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="fsyacc.fsx" />
<Compile Include="Lexing.fsi" />
<Compile Include="Lexing.fs" />
<Compile Include="Parsing.fsi" />
<Compile Include="Parsing.fs" />
<Compile Include="Arg.fsi" />
<Compile Include="Arg.fs" />
<Compile Include="fsyaccast.fs" />
<Compile Include="fsyaccpars.fs" />
<Compile Include="fsyacclex.fs" />
<Compile Include="fsyacc.fs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,3 +0,0 @@
#load "Lexing.fsi" "Lexing.fs" "Parsing.fsi" "Parsing.fs" "Arg.fsi" "Arg.fs" "fsyaccast.fs" "fsyaccpars.fs" "fsyacclex.fs" "fsyacc.fs"
let v = FsLexYacc.FsYacc.Driver.result

Просмотреть файл

@ -1,15 +0,0 @@
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<!-- Define all ProjectFiles here -->
<ItemGroup>
<ProjectFiles Include="fsharp\FSharp.Core\FSharp.Core.fsproj"/>
<ProjectFiles Include="fsharp\FSharp.Build-proto\FSharp.Build-proto.fsproj"/>
<ProjectFiles Include="fsharp\Fsc-proto\Fsc-proto.fsproj"/>
</ItemGroup>
<!-- Insert any customizations for targets here -->
<Import Project="root.traversal.targets"/>
</Project>

Просмотреть файл

@ -0,0 +1,11 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<UseStandardResourceNames>false</UseStandardResourceNames>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
<Import Project="..\buildtools\buildtools.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,26 @@
<Project>
<PropertyGroup>
<PackageLicenceUrl Condition="'$(PackageLicenceUrl)' == ''">https://github.com/Microsoft/visualfsharp/blob/master/License.txt</PackageLicenceUrl>
<PackageProjectUrl Condition="'$(PackageProjectUrl)' == ''">https://github.com/Microsoft/visualfsharp</PackageProjectUrl>
<PackageAuthors Condition="'$(PackageAuthors)' == ''" >Microsoft and F# Software Foundation</PackageAuthors>
<PackageOwners Condition="'$(PackageOwners)' == ''" >Microsoft and F# Software Foundation</PackageOwners>
<PackageTags Condition="'$(PackageTags)' == ''" >Visual F# Compiler FSharp functional programming</PackageTags>
<PackageCopyright Condition="'$(PackageCopyright)' == ''" >(C) Microsoft Corporation. All rights reserved.</PackageCopyright>
<!-- can't have &lt; and &gt; which happens when building locally -->
<NormalizedGitHeadSha>$(GitHeadSha)</NormalizedGitHeadSha>
<NormalizedGitHeadSha Condition="'$(NormalizedGitHeadSha)' == '&lt;developer build&gt;'">[developer build]</NormalizedGitHeadSha>
<NuspecProperties>
licenseUrl=$(PackageLicenceUrl);
authors=$(PackageAuthors);
owners=$(PackageOwners);
projectUrl=$(PackageProjectUrl);
copyright=$(PackageCopyright);
tags=$(PackageTags);
githeadsha=$(NormalizedGitHeadSha);
configuration=$(Configuration);
</NuspecProperties>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,21 @@
<Project>
<PropertyGroup>
<NuspecProperties>
$(NuspecProperties);
packageId=$(PackageId);
version=$(PackageVersion);
</NuspecProperties>
</PropertyGroup>
<Target Name="CopyPackageToArtifactsDirectory"
AfterTargets="Pack">
<ItemGroup>
<NugetPackages Include="$(OutputPath)**\$(PackageId).*.nupkg" />
</ItemGroup>
<MakeDir Directories="$(RepoRoot)\artifacts;$(RepoRoot)\$(Configuration)\artifacts" />
<Copy SourceFiles="@(NugetPackages)" DestinationFolder="$(RepoRoot)\artifacts" />
<Copy SourceFiles="@(NugetPackages)" DestinationFolder="$(RepoRoot)\$(Configuration)\artifacts" />
</Target>
</Project>

Просмотреть файл

@ -1,111 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildProjectDirectory)\..\..</FSharpSourcesRoot>
<Configuration Condition=" '$(Configuration)' == '' ">Proto</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.Settings.targets" />
<PropertyGroup>
<OutputType>Library</OutputType>
<AssemblyName>FSharp.Build</AssemblyName>
<AllowCrossTargeting>true</AllowCrossTargeting>
<BuildWith>LKG</BuildWith>
<ProjectGuid>{D8BC791F-C1A9-49DC-9432-0F3090537555}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<FsSrGen Include="..\FSharp.Build\FSBuild.txt">
<Link>FSBuild.txt</Link>
</FsSrGen>
<Compile Include="..\..\utils\CompilerLocationUtils.fs">
<Link>CompilerLocationUtils.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\CreateFSharpManifestResourceName.fs" >
<Link>CreateFSharpManifestResourceName.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\FSharpCommandLineBuilder.fs">
<Link>FSharpCommandLineBuilder.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\Fsc.fs">
<Link>Fsc.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\FSharpEmbedResourceText.fs">
<Link>FSharpEmbedResourceText.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\FSharpEmbedResXSource.fs">
<Link>FSharpEmbedResXSource.fs</Link>
</Compile>
<Compile Include="..\FSharp.Build\WriteCodeFragment.fs">
<Link>WriteCodeFragment.fs</Link>
</Compile>
<None Include="..\FSharp.Build\Microsoft.FSharp.Targets" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.FSharp.Targets</Link>
</None>
<None Include="..\FSharp.Build\Microsoft.Portable.FSharp.Targets" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.Portable.FSharp.Targets</Link>
</None>
<None Include="..\FSharp.Build\Microsoft.FSharp.NetSdk.props" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.FSharp.NetSdk.props</Link>
</None>
<None Include="..\FSharp.Build\Microsoft.FSharp.NetSdk.targets" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.FSharp.NetSdk.targets</Link>
</None>
<None Include="..\FSharp.Build\Microsoft.FSharp.Overrides.NetSdk.targets" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.FSharp.Overrides.NetSdk.targets</Link>
</None>
<None Include="$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Type.Providers.Redist.$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)\content\4.3.0.0\FSharp.Data.TypeProviders.dll" CopyToOutputDirectory="PreserveNewest">
<Link>Microsoft.VisualFSharp.Type.Providers.Redist</Link>
</None>
</ItemGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Numerics" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr' AND '$(MonoPackaging)' != 'true' ">
<Reference Include="Microsoft.Build.Framework">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Framework.$(MicrosoftBuildFrameworkPackageVersion)\lib\net46\Microsoft.Build.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.$(MicrosoftBuildPackageVersion)\lib\net46\Microsoft.Build.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Utilities.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Utilities.Core.$(MicrosoftBuildUtilitiesCorePackageVersion)\lib\net46\Microsoft.Build.Utilities.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.$(MicrosoftBuildTasksCorePackageVersion)\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.$(MicrosoftBuildTasksCorePackageVersion)\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression">
<HintPath>$(FSharpSourcesRoot)\..\packages\System.IO.Compression.$(SystemIoCompressionPackageVersion)\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr' AND '$(MonoPackaging)' == 'true' ">
<Reference Include="Microsoft.Build.Framework, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Framework.14.3.0\lib\net45\Microsoft.Build.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.14.3.0\lib\net45\Microsoft.Build.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Utilities.Core, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Utilities.Core.14.3.0\lib\net45\Microsoft.Build.Utilities.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.14.3.0\lib\net45\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj">
<Project>{DED3BBD7-53F4-428A-8C9F-27968E768605}</Project>
<Name>FSharp.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
</Project>

Просмотреть файл

@ -1,30 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildProjectDirectory)\..\..</FSharpSourcesRoot>
<ProjectLanguage>FSharp</ProjectLanguage>
<OutputType>Library</OutputType>
<TargetFrameworks>net46;netstandard2.0</TargetFrameworks>
<AssemblyName>FSharp.Build</AssemblyName>
<NoWarn>$(NoWarn);45;55;62;75;1204</NoWarn>
<AllowCrossTargeting>true</AllowCrossTargeting>
<OtherFlags>$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1</OtherFlags>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.Settings.targets" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Library</OutputType>
<AssemblyName>FSharp.Build</AssemblyName>
<AllowCrossTargeting>true</AllowCrossTargeting>
<ProjectGuid>{702A7979-BCF9-4C41-853E-3ADFC9897890}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<FilesToLocalize Include="$(OutDir)$(AssemblyName).dll">
<TranslationFile>$(FSharpSourcesRoot)\..\loc\lcl\{Lang}\$(AssemblyName).dll.lcl</TranslationFile>
<LciCommentFile>$(FSharpSourcesRoot)\..\loc\lci\$(AssemblyName).dll.lci</LciCommentFile>
<HasLceComments>false</HasLceComments>
<InProject>false</InProject>
</FilesToLocalize>
<InternalsVisibleTo Include="VisualFSharp.UnitTests" />
<EmbeddedText Include="FSBuild.txt" />
<Compile Include="..\..\utils\CompilerLocationUtils.fs" />
@ -42,54 +30,20 @@
<None Include="Microsoft.FSharp.Overrides.NetSdk.targets" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr'">
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr' AND '$(MonoPackaging)' != 'true' ">
<Reference Include="Microsoft.Build.Framework">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Framework.$(MicrosoftBuildFrameworkPackageVersion)\lib\net46\Microsoft.Build.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.$(MicrosoftBuildPackageVersion)\lib\net46\Microsoft.Build.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Utilities.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Utilities.Core.$(MicrosoftBuildUtilitiesCorePackageVersion)\lib\net46\Microsoft.Build.Utilities.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.$(MicrosoftBuildTasksCorePackageVersion)\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.$(MicrosoftBuildTasksCorePackageVersion)\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression">
<HintPath>$(FSharpSourcesRoot)\..\packages\System.IO.Compression.$(SystemIoCompressionPackageVersion)\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data.TypeProviders">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Type.Providers.Redist.$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)\content\4.3.0.0\FSharp.Data.TypeProviders.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr' AND '$(MonoPackaging)' == 'true' ">
<Reference Include="Microsoft.Build.Framework, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Framework.14.3.0\lib\net45\Microsoft.Build.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.14.3.0\lib\net45\Microsoft.Build.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Utilities.Core, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Utilities.Core.14.3.0\lib\net45\Microsoft.Build.Utilities.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core, Version=$(MonoPackagingMSBuildVersionFull), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.14.3.0\lib\net45\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj">
<Project>{DED3BBD7-53F4-428A-8C9F-27968E768605}</Project>
<Name>FSharp.Core</Name>
</ProjectReference>
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj" />
</ItemGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
<ItemGroup Condition="'$(TargetFramework)' == 'net46'">
<PackageReference Include="Microsoft.VisualFSharp.Type.Providers.Redist" Version="$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCorePackageVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
<PackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -55,7 +55,7 @@ WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and
<Tailcalls Condition="'$(Tailcalls)' == '' ">true</Tailcalls>
</PropertyGroup>
<PropertyGroup Condition="'$(DOTNET_HOST_PATH)' != ''">
<PropertyGroup Condition="'$(DisableAutoSetFscCompilerPath)' != 'true' and '$(DOTNET_HOST_PATH)' != ''">
<FscToolPath Condition="'$(FscToolPath)' == ''">$([System.IO.Path]::GetDirectoryName($(DOTNET_HOST_PATH)))</FscToolPath>
<FscToolExe Condition="'$(FscToolExe)' == ''">$([System.IO.Path]::GetFileName($(DOTNET_HOST_PATH)))</FscToolExe>
<DotnetFscCompilerPath Condition="'$(DotnetFscCompilerPath)' == ''">"$(MSBuildThisFileDirectory)fsc.exe"</DotnetFscCompilerPath>

Просмотреть файл

@ -1,28 +0,0 @@
{
"dependencies": {
"Microsoft.Build": "15.6.85",
"Microsoft.Build.Framework": "15.6.85",
"Microsoft.Build.Tasks.Core": "15.6.85",
"Microsoft.Build.Utilities.Core": "15.6.85",
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.Win32.Registry": {
"version": "4.3.0",
"exclude": "Compile"
},
"System.AppContext": "4.3.0",
"System.Diagnostics.Tools": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0"
},
"runtimes": {
"win7-x86": { },
"win7-x64": { },
"osx.10.11-x64": { },
"ubuntu.14.04-x64": { }
},
"frameworks": {
"netstandard1.6": {
"imports": "portable-net45+win8"
}
}
}

Просмотреть файл

@ -1,19 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildProjectDirectory)\..\..</FSharpSourcesRoot>
<ProjectLanguage>FSharp</ProjectLanguage>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.Settings.targets" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{649FA588-F02E-457C-9FCF-87E46407481E}</ProjectGuid>
<OutputType>Library</OutputType>
<TargetFrameworks>net46;netstandard1.6</TargetFrameworks>
<AssemblyName>FSharp.Compiler.Interactive.Settings</AssemblyName>
<FileAlignment>512</FileAlignment>
<NoWarn>$(NoWarn);45;55;62;75;1182;1204</NoWarn>
<AllowCrossTargeting>true</AllowCrossTargeting>
<OtherFlags>$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1</OtherFlags>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<ItemGroup>
@ -30,19 +26,12 @@
<Compile Include="..\fsiaux.fs" />
</ItemGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
<ItemGroup Condition="'$(TargetDotnetProfile)' == 'coreclr'">
<None Include="project.json" />
</ItemGroup>
<ItemGroup Condition="'$(TargetDotnetProfile)' != 'coreclr'">
<Reference Include="mscorlib" />
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj" >
<Project>{DED3BBD7-53F4-428A-8C9F-27968E768605}</Project>
<Name>FSharp.Core</Name>
</ProjectReference>
<ProjectReference Include="..\FSharp.Core\FSharp.Core.fsproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Reflection.TypeExtensions" Version="$(SystemReflectionTypeExtensionsPackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,18 +0,0 @@
{
"dependencies": {
"NETStandard.Library": "1.6.1",
"System.Linq.Expressions": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Runtime.Loader": "4.3.0",
"System.Threading.Thread": "4.3.0"
},
"runtimes": {
"win7-x86": { },
"win7-x64": { },
"osx.10.11-x64": { },
"ubuntu.14.04-x64": { }
},
"frameworks": {
"netstandard1.6": { }
}
}

Просмотреть файл

@ -1,26 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildProjectDirectory)\..\..</FSharpSourcesRoot>
<ProjectLanguage>FSharp</ProjectLanguage>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.Settings.targets" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Library</OutputType>
<TargetFrameworks>net46;netstandard1.6</TargetFrameworks>
<AssemblyName>FSharp.Compiler.Private</AssemblyName>
<DefineConstants>COMPILER;$(DefineConstants)</DefineConstants>
<NoWarn>$(NoWarn);62;9</NoWarn>
<ProjectGuid>{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}</ProjectGuid>
<NoWarn>$(NoWarn);45;55;62;75;1204</NoWarn>
<AllowCrossTargeting>true</AllowCrossTargeting>
<BaseAddress>0x06800000</BaseAddress>
<OtherFlags>$(OtherFlags) /warnon:1182</OtherFlags>
<DefineConstants>$(DefineConstants);COMPILER</DefineConstants>
<OtherFlags>$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1</OtherFlags>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
<UseAssetTargetFallback>true</UseAssetTargetFallback>
</PropertyGroup>
<!-- References -->
<Import Project="$(FSharpSourcesRoot)\.nuget\NuGet.targets" Condition="Exists('$(FSharpSourcesRoot)\.nuget\NuGet.targets')" />
<PropertyGroup Condition="'$(TargetFramework)' == 'net46' AND '$(OS)' == 'Windows_NT'">
<!-- portable PDBs can't be properly generated for this assembly -->
<DebugType>full</DebugType>
</PropertyGroup>
<Target Name="CopyToBuiltBin" BeforeTargets="BuiltProjectOutputGroup" AfterTargets="CoreCompile">
<ItemGroup>
<BuiltProjectOutputGroupKeyOutput Include="$(FSharpSourcesRoot)\..\$(Configuration)\net40\bin\Microsoft.Build.Framework.dll" />
@ -32,9 +30,7 @@
<BuiltProjectOutputGroupKeyOutput Include="$(FSharpSourcesRoot)\..\$(Configuration)\net40\bin\System.ValueTuple.dll" />
</ItemGroup>
</Target>
<Import Project="$(FSharpSourcesRoot)\.nuget\NuGet.targets" Condition="Exists('$(FSharpSourcesRoot)\.nuget\NuGet.targets')" />
<Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
<Import Project="$(FsLexToolPath)\FsLexYacc.targets" />
<ItemGroup>
<InternalsVisibleTo Include="fsc" />
<InternalsVisibleTo Include="FSharp.Build" />
@ -55,6 +51,7 @@
<InternalsVisibleTo Include="FSharp.Tests.FSharpSuite" />
<InternalsVisibleTo Include="LanguageServiceProfiling" />
</ItemGroup>
<ItemGroup>
<EmbeddedText Include="..\FSComp.txt">
<Link>FSComp.txt</Link>
@ -223,7 +220,7 @@
<Compile Include="..\..\absil\ilmorph.fs">
<Link>AbsIL\ilmorph.fs</Link>
</Compile>
<Compile Include="..\..\absil\ilsign.fs" Condition=" '$(TargetDotnetProfile)'=='coreclr'">
<Compile Include="..\..\absil\ilsign.fs" Condition="'$(TargetFramework)' == 'netstandard1.6'">
<Link>AbsIL\ilsign.fs</Link>
</Compile>
<Compile Include="..\..\absil\ilsupp.fsi">
@ -660,49 +657,41 @@
<Link>Misc/LegacyHostedCompilerForTesting.fs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<PackageNuspec Include="FSharp.Compiler.Private.netcore.nuspec" Condition="'$(TargetDotnetProfile)' == 'coreclr'" />
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetDotnetProfile)' == 'coreclr'">
<None Include="project.json" />
</ItemGroup>
<ItemGroup Condition="'$(TargetDotnetProfile)' != 'coreclr'">
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<ItemGroup Condition="'$(TargetFramework)' == 'net46'">
<Reference Include="ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="System.Reflection.Metadata">
<HintPath>..\..\..\packages\System.Reflection.Metadata.$(SystemReflectionMetadataPackageVersion)\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>..\..\..\packages\System.Collections.Immutable.$(SystemCollectionsImmutablePackageVersion)\lib\netstandard1.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple">
<HintPath>..\..\..\packages\System.ValueTuple.$(SystemValueTuplePackageVersion)\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression">
<HintPath>..\..\..\packages\System.IO.Compression.$(SystemIoCompressionPackageVersion)\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildPackageVersion)" />
<PackageReference Include="System.IO.Compression" Version="$(SystemIoCompressionPackageVersion)" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetDotnetProfile)' != 'coreclr' AND '$(MonoPackaging)' != 'true' ">
<Reference Include="Microsoft.Build.Framework">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Framework.$(MicrosoftBuildFrameworkPackageVersion)\lib\net46\Microsoft.Build.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.$(MicrosoftBuildPackageVersion)\lib\net46\Microsoft.Build.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Utilities.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Utilities.Core.$(MicrosoftBuildUtilitiesCorePackageVersion)\lib\net46\Microsoft.Build.Utilities.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Tasks.Core">
<HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.Build.Tasks.Core.$(MicrosoftBuildTasksCorePackageVersion)\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath>
</Reference>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.6'">
<PackageReference Include="System.Runtime.Loader" Version="$(SystemRuntimeLoaderPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj">
<Project>{DED3BBD7-53F4-428A-8C9F-27968E768605}</Project>
<Name>FSharp.Core</Name>
</ProjectReference>
<PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutablePackageVersion)" />
<PackageReference Include="System.Diagnostics.Process" Version="$(SystemDiagnosticsProcessPackageVersion)" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="$(SystemDiagnosticsTraceSourcePackageVersion)" />
<PackageReference Include="System.Linq.Expressions" Version="$(SystemLinqExpressionsPackageVersion)" />
<PackageReference Include="System.Linq.Queryable" Version="$(SystemLinqExpressionsPackageVersion)" />
<PackageReference Include="System.Net.Requests" Version="$(SystemNetRequestsPackageVersion)" />
<PackageReference Include="System.Reflection.Emit" Version="$(SystemReflectionEmitPackageVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataPackageVersion)" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="$(SystemReflectionTypeExtensionsPackageVersion)" />
<PackageReference Include="System.Runtime" Version="$(SystemRuntimePackageVersion)" />
<PackageReference Include="System.Runtime.InteropServices" Version="$(SystemRuntimeInteropServicesPackageVersion)" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="$(SystemSecurityCryptographyAlgorithmsPackageVersion)" />
<PackageReference Include="System.Threading.Tasks.Parallel" Version="$(SystemThreadingTasksParallelPackageVersion)" />
<PackageReference Include="System.Threading.Thread" Version="$(SystemThreadingThreadPackageVersion)" />
<PackageReference Include="System.Threading.ThreadPool" Version="$(SystemThreadingThreadPoolPackageVersion)" />
<PackageReference Include="System.ValueTuple" Version="$(SystemValueTuplePackageVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,34 +0,0 @@
{
"dependencies": {
"NETStandard.Library": "1.6.1",
"System.Collections.Immutable": "1.5.0",
"System.Diagnostics.Process": "4.3.0",
"System.Diagnostics.TraceSource": "4.3.0",
"System.Linq.Expressions": "4.3.0",
"System.Linq.Queryable": "4.3.0",
"System.Net.Requests": "4.3.0",
"System.Reflection.Emit": "4.3.0",
"System.Reflection.Metadata": "1.6.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Runtime.Loader": "4.3.0",
"System.Security.Cryptography.Algorithms": "4.3.0",
"System.Threading.Tasks.Parallel": "4.3.0",
"System.Threading.Thread": "4.3.0",
"System.Threading.ThreadPool": "4.3.0",
"System.ValueTuple": "4.3.0"
},
"runtimes": {
"win7-x86": { },
"win7-x64": { },
"osx.10.11-x64": { },
"ubuntu.14.04-x64": { }
},
"frameworks": {
"netstandard1.6": {
"imports": "portable-net45+win8"
}
}
}

Просмотреть файл

@ -1,42 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<FSharpSourcesRoot>$(MSBuildProjectDirectory)\..\..</FSharpSourcesRoot>
<ProjectLanguage>FSharp</ProjectLanguage>
<TargetFramework>net46</TargetFramework>
<AssemblyName>FSharp.Compiler.Server.Shared</AssemblyName>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.Settings.targets" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{d5870cf0-ed51-4cbc-b3d7-6f56da84ac06}</ProjectGuid>
<OutputType>Library</OutputType>
<AssemblyName>FSharp.Compiler.Server.Shared</AssemblyName>
<TargetFrameworkVersion Condition="'$(TargetDotnetProfile)' != 'coreclr'">v4.6</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="fsi" />
<InternalsVisibleTo Include="fsiAnyCpu" />
<InternalsVisibleTo Include="FSharp.VS.FSI" />
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.fs" />
<Compile Include="FSharpInteractiveServer.fs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetDotnetProfile)' == 'coreclr'">
<None Include="project.json" />
<ItemGroup>
<ProjectReference Include="..\FSharp.Core\FSharp.Core.fsproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetDotnetProfile)' != 'coreclr'">
<Reference Include="mscorlib" />
<Reference Include="System" />
<ItemGroup>
<Reference Include="System.Runtime.Remoting" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj">
<Project>{DED3BBD7-53F4-428A-8C9F-27968E768605}</Project>
<Name>FSharp.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(FSharpSourcesRoot)\FSharpSource.targets" />
</Project>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше